Introduction to Facet
How does Facet differ from traditional Layer 2 solutions?
>

Facet is the only Ethereum Layer 2 that scales Ethereum without adding any dependencies or trust assumtions. This allows us to offer these compelling features.

  1. 100% Uptime: As long as Ethereum is operational, Facet is as well.
  2. Censorship Resistance: No one can be excluded from using Facet.
  3. Credible Neutrality: Facet's protocol cannot discriminate for or against any specific person.
  4. No Privileged Keys: No multi-sig or "security council" has the power to upgrade the Facet protocol.
  5. Synchronous Finality: Facet users have the ability to achieve finality on their transactions at the same speed they could do so via an L1 transaction directly.
But aren't other L2s already "progressively decentralizing?"
>

Many Layer 2 solutions claim they are "progressively decentralizing." However, several factors make it unlikely that these solutions will ever fully achieve true decentralization.

To decentralize for parity with Facet - an L2 rollup would need to:

  1. Abandon centralized transaction sequencing, and
  2. Revoke privileged keys (multi-sigs) on enshrined bridges/smart contracts

Rollups may justify centralized sequencers for high transaction throughput, low latency, and optimized performance - but the real reasons are likely "control" and "revenue." The expectation that existing entities will sacrifice network control and revenue to decentralize their sequencing is hard to fathom. Even with initial intentions to decentralize, control and revenue create significant inertia and resistance to change - not to mention the significant technical, governance and community buy-in challenges associated with such a change.

Eliminating privileged keys from existing L2 protocols is perhaps even more difficult to imagine, requiring that all protocol upgrades and changes be managed via consensus (and thus, hard forks). Simply stated, existing entities (often private companies) are in no way incentivized to take such a risk. Not to mention the potential legal ramifications involved with revoking permissions to protocols with millions (or billions) of total value locked (TVL).

While many Layer 2 solutions promise to "progressively decentralize," the reality is that they face substantial technical, economic, and governance challenges in achieving true decentralization. Facet's approach, which emphasizes decentralization from the outset by eliminating centralized sequencers and privileged keys, offers a more secure, trustless, and genuinely decentralized alternative. This commitment to decentralization ensures that Facet aligns with the core principles of blockchain technology and provides a robust foundation for long-term growth and security.

How does the recent release of Facet (v2) differ from what was already launched in 2023 (v1)?
>

Facet has been significantly upgraded (v2) from what was originally launched in winter 2023 (v1). From an end-user perspective - the upgrade will be relatively seamless - we do not expect users to notice a material difference.

Meanwhile, developers will be delighted with the below feature updates:

  1. Contract deployment is now permissionless! In Facet v1 contracts had to be allowlisted for deployment, given the need to protect the network from spam attacks. That barrier has been removed.
  2. Facet is now an EVM-compatible blockchain! Not only can anyone deploy a contract, but anyone can copy-paste an existing Ethereum contract over to Facet!
  3. The v1 environment required developers to write Facet smart contracts in a custom language - Rubidity. We've removed that requirement. Facet's EVM-compatibility allows for smart contracts to be written in Solidity, Ethereum's native programming language.
  4. Developers accustomed to the Ethereum ecosystem will find it easy to build on Facet, as the same tools and workflows apply. This includes standard Ethereum testnets for testing and popular IDEs like Remix and Visual Studio Code.
I've heard Facet described as a "Based Sovereign Rollup" - what is that?
>

A "based rollup" is a type of layer 2 blockchain that leverages the L1 (in our case, Ethereum) for transaction sequencing (as opposed to a centralized sequencer). "More concretely, a based rollup is one where the next L1 proposer may, in collaboration with L1 searchers and builders, permissionlessly include the next rollup block as part of the next L1 block." - Justin Drake

A "sovereign rollup" is a type of L2 blockchain that (1) publishes its transactions to another blockchain (in our case, Ethereum), typically for sequencing and data availability, and (2) manages its own settlement (e.g. does not use a bridge with the data availability to settle the chain). This departs from typical L2s that enshrine a set of smart contract bridges (with privileged keys) into the protocol that serve to settle the rollup chain.

Facet's combined use of both paradigms above make it Ethereum's first (and only) "based sovereign rollup."

How does Facet guarantee 100% uptime?
>

Facet guarantees 100% uptime by directly using Ethereum's network for transaction initiation and finality. Anyone can send Facet transactions directly to Ethereum with no intermediaries. Since every Facet transaction is inherently an Ethereum transaction, Facet remains fully functional as long as Ethereum is operational.

Facet also has no privileged party responsible for broadcasting the state of the protocol, and whose ceasing to function could limit access to Facet state. Rather Facet state is equally available to anyone through the open source Facet Node software.

Moreover, even if every Facet Node in the world were to go down, any single party could still compute the state on their own using their own Facet Node. This ensures that the system's integrity and functionality can be maintained independently, providing an additional layer of reliability. This direct dependence on Ethereum’s robust and widely trusted network, coupled with the ability for independent state computation, ensures continuous service availability with no downtimes associated with Facet's operations.

Security & Decentralization
How does Facet maintain security and decentralization?
>
  1. Transaction Security through Based Sequencing: Facet leverages Ethereum's existing consensus mechanism to order and finalize all transactions, ensuring they are securely recorded on the immutable L1 ledger. This eliminates any central points of control or exploitation, making the transaction history tamper-proof and transparent.
  2. Deterministic Processing for Scalability: With a secured and immutable transaction history in place, Facet processes transactions deterministically. This means that anyone running a Facet Node can independently verify and execute transactions, allowing the network to scale without sacrificing security or decentralization.
  3. Immutable Protocol with No Hidden Control: Facet has no privileged keys or upgradeable contracts, eliminating the risks associated with centralized control or unexpected changes. Any upgrades to the protocol require social consensus, similar to Ethereum’s hard fork process, ensuring that changes are transparent and community-driven.
What if a FacetVM acts maliciously by reporting an invalid state?
>

Facet's security model is based on the innate, objective reality that is derived from (1) immutable transaction history and (2) deterministic computation. Facet nodes don’t create that objective reality - they merely report it.

If two people agree on the state of Ethereum, they will also agree on the state of Facet.

  1. On-Chain Transactions: Every Facet transaction is an Ethereum transaction that is sequenced and finalized by Ethereum’s consensus mechanism. This means that the immutable integrity of the transaction history is maintained, irrespective of the number of Facet Nodes computing the state. Thus, the foundational data (inputs) that Facet operates on is always secure and decentralized.
  2. Deterministic State Computation: The key to Facet’s security lies in deterministic state computation. Facet Nodes operate deterministically, meaning that given the same inputs (i.e. transactions), every Facet Node will always produce the same output (i.e. state). This deterministic nature ensures that the state is an objective reality, independent of how many Facet Nodes are computing it.

While having multiple Facet Nodes might create a perception of increased security because they would independently compute and align on the same state, the actual security of Facet does not rely on the number of Facet Nodes. This contrasts with proof-of-stake operating models, where more validators equate to greater security. With Facet, anyone can independently verify the correctness of the state by running the Facet Node themselves.

Even if you do act on incorrect Facet state data it is unlikely to cost you money because the transactions you send will be conditional. For example, if someone reports to you that an asset you hold is worth 10x what it’s actually worth, and you decide to sell on the basis of that knowledge, your transaction will include a slippage value that will cause the transaction to revert.

The concept of an "honest operator" is central to Facet's security model. As long as there is at least one honest operator running a Facet Node, it is difficult for any malicious party to alter the state without being detected. This honest operator can independently verify the state and call out any discrepancies, maintaining the integrity of the system.

And of course - you yourself can run the Facet Node and be that “honest operator.”

"Be the [honest] FacetVM state validator you want to see in the world."

Facet Compute Token (FCT)
Is there a native Facet Token?
>

The Facet Compute Token (FCT) serves as the native gas token within Facet, essential for paying gas fees for transactions and computational operations within the network.

How is FCT different from typical Layer 2 gas tokens?
>

When a new Layer 2 launches, it's natural to consider aspects like tokenomics, pre-mines, token supply, and token offerings. However, the Facet Compute Token (FCT) operates quite differently from typical L2 gas tokens:

  1. No Pre-Mine or Token Offering:Unlike other tokens, FCT is not pre-mined, and there are no initial token offerings. Facet is designed to prioritize decentralization and fairness. The FCT you use is generated as you interact with the network, directly tied to the Ethereum gas you spend (see How Does Gas Work on Facet V2?).
  2. FCT is not an investment vehicle: It's strictly used to power transactions within the Facet Protocol. When you send an Ethereum transaction that includes a Facet payload, the ETH you spend on L1 gas is converted into FCT, which is then used as Facet gas to execute the Facet transaction. You cannot convert FCT back to ETH.
  3. No Accumulation Needed: Users don't need to worry about accumulating FCT. It's designed to be a seamless part of your transaction experience on Facet. Users will typically initiate Facet transactions via DApps on Ethereum (paying gas in L1 Ether) - without actively managing an FCT balance. It is possible that some L1 Ethereum transactions may result in FCT credits earned that exceed the FCT gas needed for Facet execution. In that case, you will be credited with an FCT balance. The FCT balance cannot be converted back to ETH as there is no enshrined two-way bridge. The only enshrined utility for FCT is for gas fee payments on Facet.
Will there be a token airdrop reward for using Facet?
>

Facet is focused on delivering the most decentralized and secure solution for scaling Ethereum. Our priority is providing real value through technology, not through speculative incentives or rewards.

At this time, there are no plans for a token airdrop reward.

How is FCT used for gas payments?
>

FCT is used to pay for gas fees when executing transactions on the Facet network. This includes transferring tokens, interacting with smart contracts, and other network operations. The gas fee amount is determined by the complexity and resource requirements of the transaction.

Gas is created on Facet via an "echo" mechanism; when ETH is spent on Facet transactions on L1, an FCT credit proportionate to (or "echoing") the ETH gas expense is credited to that account and sequentially burned by the protocol in the processing of the Facet transaction. Thus, a user's FCT balance is utilized passively by the protocol through the regular process of executing L1 Ethereum transactions.

Where does the ETH spent on L1 gas go?
>

The primary approach for creating FCT involves sending regular ETH TXs via L1 - the ETH you spend on L1 gas is partially converted to FCT, specifically from the portion of the gas fee known as the 'base fee.' This base is burned as part of Ethereum's fee mechanism (see EIP-1559), and it simultaneously generates FCT on Facet.

The 'priority fee' which you can adjust to incentivize faster TX processing, is paid directly to the validator and is not used for FCT generation. This ensures only legitimate TX costs contribute to FCT creation, preventing potential exploitation where a validator could artificially inflate FCT by setting an excessively high priority fee in a self-serving TX.

In most cases, users won't need to manage their FCT balance directly, as Facet handles these conversions and then burns the required FCT for TX processing in the background.

Will I need to manage an FCT balance?
>

In most cases, users won't need to actively manage their FCT balance; it will be handled in the background. Users will typically initiate Facet transactions via DApps on Ethereum, and Facet will credit and burn the necessary FCT behind the scenes.

Given the passive utilization of FCT, while you may not actively manage your FCT balance, some transactions may result in FCT credits earned that exceed the FCT gas needed for Facet execution. In that case, you will be credited with an FCT balance. The FCT balance cannot be converted back to ETH due to the one-way mechanism. The only enshrined utility for FCT is for gas fee payments on Facet.

What is the total supply of FCT?
>

Given FCT is passively generated and consumed by the protocol based on the ETH gas (base fees) spent on Ethereum L1 transactions, the supply of FCT is not fixed and is effectively capped only by the total supply of ETH.

Given FCT is passively consumed by the protocol in tandem with it's generation above, FCT supply will always be less than the sum of all FTC generated.

How do I redeem FCT for ETH?
>

Facet does not enshrine a two-way bridge to redeem FCT for ETH. The only enshrined protocol utility for FCT is for gas payments within Facet.

Of course, the free market may build other utilities for FCT.

Can I send FCT to another wallet?
>

Yes, you can send FCT to another wallet. This process is similar to transferring any other token within the Facet network. The market may build other utilities for FCT, but the only enshrined protocol utility for FCT is for gas payments within Facet.

Advanced Topics
How does Facet relate to Ethscriptions?
>

Facet v1 was originally built atop the Ethscriptions Protocol - a standardized approach for creating and indexing on-chain digital artifacts by embedding an asset’s uniform resource identifier (URI) within the transaction’s calldata field. This proved an efficient way to put data (such as images, even tokens) on-chain without a smart contract. Facet v1 leveraged Ethscriptions not to represent a “digital artifact” but rather to represent a command to a Facet smart contract.

Fast forward to v2 - the concept remains the same - but Facet has evolved beyond encoding Facet payloads as Ethscriptions to a more standardized and efficient way of encoding EVM transactions. This change is designed to empower developers with familiar tools and streamline the development process. While Ethscriptions provided the inspiration for a unique approach, transitioning to a binary format (RLP-encoded EVM transactions) ensures better compatibility, efficiency, and cost-effectiveness.

Meanwhile, the Ethscriptions protocol remains open-source, allowing anyone to continue its development and use.

With the release of Facet v2, what happens to all the transaction history of Facet v1?
>

All history and state from Facet V1 has been migrated to V2 automatically.

How might the potential pruning of calldata and/or blob data impact Facet?
>

The potential pruning of calldata and blob data, as proposed in certain Ethereum Improvement Proposals (EIPs), poses considerations for the Ethereum ecosystem, including Facet and Layer 2 solutions. However, it’s important to clarify that these prunings do not threaten Facet's operation.

This is because of two factors:

  1. Even if the Ethereum protocol allows nodes to prune calldata and blob data, this data remains immutable and cannot be forged. As long as one person has this historical data it can be verified as authentic and used by everyone else.
  2. There is great demand for historical Ethereum data that extends far beyond Facet. Layer 2s obviously have an interest in validating their history, but even more people are interested in validating the history of Ethereum itself, and you can’t do this without the data Facet needs to operate.

Even today, most people, operating according to this principle, get their Ethereum data from a third party provider instead of a node they themselves operate. This is a secure practice today because all such data can be verified, and it will remain a secure practice even when data is pruned.

Pruning would only become an issue for Facet if (2) was no longer true, but such a massive loss of Ethereum historical data would indicate a much larger systemic failure beyond just impacting Facet.

What are the plans for future upgrades and features in Facet?
>

Ongoing protocol development will focus on improving scalability and efficiency:

  1. Transaction Batching: While Facet’s initial version supports one-to-one transaction posting, future versions will support batching (to blob) to allow multiple Facet transactions to be included within a single Ethereum transaction, reducing costs and increasing efficiency. To support batching, Facet may rely on existing Layer 2 infrastructure, hitchhiking on their infrastructure to post batches to Ethereum. As with two-way asset bridging, batching is not enshrined within the protocol - the free market will determine the “best” infrastructure for batching Facet transactions. Users will be able to easily switch away from batch posters known to maliciously sequence transactions (e.g. censor, sandwich, etc.).
  2. Pre-Confirmations: While challenging without a centralized sequencer, Facet aims to provide a decentralized alternative, enhancing user experience with faster transaction confirmations.
What are the requirements to become a Facet Node operator?
>

Anyone will be able to run a Facet Node - the specific hardware requirements will be shared soon when the software becomes available via GitHub.

This open access encourages independent verification of Facet state and allows developers to directly leverage Facet's capabilities.

Stay Connected
facet-logofacet-logofacet-logo
background
© Facet Blockchain Technologies, LLC