Predictions to Protocol

Given we can predict Smart Contract behavior, how can we put this capability to use making Ethereum cheaper?

Basically instead of sending Ethereum transactions to Smart Contracts, we will send them to the inbox address (0x00000000000000000000000000000000000face7). This address is a standard

In our mint example from earlier we were sending a transaction to the Smart Contract to mint id 99. On an Ethereum protocol level this means we sent a transaction with certain calldata to the Smart Contract in question.

This calldata can be computed in Solidity:

abi.encodeWithSignature("mint(uint256)", 99)
// 0xa0712d680000000000000000000000000000000000000000000000000000000000000063

As we discussed, this calldata + the history of transactions before yours is enough to determine Smart Contract state with certainty, whether or not the Ethereum validators are actually executing Smart Contract logic in response to the transaction.

What exactly changes if we send this transaction to the null address instead? Let's assume we can somehow add to the payload the address of the minter contract (as that information was stored in the "to" of the mint transaction and is therefore lost here).

The null address transaction will be cheaper, and yet it will contain the exact same information we already showed can be used to predict the outcome of the smart contract interaction!

This is the idea behind the Facet Protocol.

So far we've looked at the motivation behind Facet and have considered the argument that building a system that enabled the elimination of Smart Contracts would be both possible and practical.

Next we will turn to the Facet project itself, which is an implementation of such a system.

FAQs

Is Facet Decentralized?

Any results that are computed from shared initial conditions using shared rules are decentralized.

This is because you do not need to rely on anyone to compute these results for you, as you have the exact same knowledge and capabilities as anyone you'd want to ask.

If you happened to get results from a third party, you could verify that they were correct by simply repeating the calculations yourself.

These steps might not be practical at a given time, especially as this approach is new, but this can be improved over time—it is not a fundamental aspect of the approach.

An analogy might be Etherscan, which is the most popular and sophisticated platform for learning "what the blockchain says." Anyone can verify Etherscan's data, but almost no one does. It would be better if there were other options, but either way it doesn't reflect on whether the Ethereum protocol is decentralized.

Is Facet a Layer 2?

As Facet is merely a different way of using Ethereum, it is certainly not an L2, as L2s are separate chains.

Layer 2s are interesting technologies, but when it comes to the question of "Scaling Ethereum" L2s are a complete dead end.

Why? As discussed above, the only important and special thing we need blockchains to do is to sequence transactions, and L2s have no decentralized consensus mechanism. Instead, a single person (or a small multisig, which amounts to the same thing) is in charge of all transaction sequencing, including the decision of whether to sequence new transactions at all or whether to shut down.

Layer 2s "Scale Ethereum" only at the cost of sacrificing everything that makes Ethereum special.

Last updated