-
Notifications
You must be signed in to change notification settings - Fork 561
Edit pass: Lineth Stack evaluation docs #1714
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 6 commits
a0f302d
88e4e2d
7ae89eb
f7bcc64
72a4f0b
f0ce163
4436cde
1f077e2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,82 +1,43 @@ | ||
| --- | ||
| title: Compliance | ||
| description: >- | ||
| Protocol evidence operators can use in a compliance program, and what Lineth | ||
| does not claim | ||
| How to use a Lineth deployment's protocol evidence in your own compliance | ||
| program | ||
| sidebar_position: 1 | ||
| image: /img/socialCards/compliance.jpg | ||
| --- | ||
|
|
||
| import GlossaryTerm from '@theme/GlossaryTerm'; | ||
|
|
||
| This page describes what protocol evidence a <GlossaryTerm term="Lineth" /> deployment produces that operators can use in their own compliance | ||
| program, and what Lineth does not claim. | ||
| This page describes how to use a <GlossaryTerm term="Lineth" /> deployment's protocol evidence in your own | ||
|
Check warning on line 12 in docs/stack/evaluate/compliance.mdx
|
||
| compliance program. | ||
| <GlossaryTerm term="Operator">Operators</GlossaryTerm> design the program and map its controls to their own obligations. | ||
| Lineth does not certify a deployment against a regulatory framework. | ||
|
|
||
| This page does **not** include: | ||
| For protocol guarantees, operator-controlled surfaces, cryptographic primitives, and assurance evidence, | ||
| see [Security and assurance](./security.mdx). | ||
|
|
||
| - Mapping to specific regulatory frameworks. | ||
| - A certification or attestation that a deployment is compliant. | ||
| - Data retention or deletion product features. Operators implement retention and | ||
| disclosure against their own policy using the deployment's data availability | ||
| and access controls. | ||
| ## Deployment evidence | ||
|
|
||
| ## zk-SNARK proofs are not a compliance program | ||
|
|
||
| <GlossaryTerm term="zk-SNARK" /> proofs verify state-transition correctness. They do not by themselves | ||
| provide a complete compliance program. A compliance program needs controls, | ||
| evidence, retention, disclosure, and ownership that go beyond proof | ||
| verification. | ||
|
|
||
| ## Protocol evidence a deployment produces | ||
|
|
||
| A Lineth deployment produces the following evidence that operators can use in a | ||
| compliance design: | ||
| A Lineth deployment produces evidence you can cite in your compliance program: | ||
|
|
||
| - State commitments posted to the <GlossaryTerm term="Finalization layer">finalization layer</GlossaryTerm> | ||
| - zk-SNARK proof verification records on the finalization layer | ||
| - <GlossaryTerm term="zk-SNARK" /> proof verification records on the finalization layer | ||
| - Finalization records on the finalization layer | ||
| - Transaction history retained by the deployment's data availability model | ||
|
|
||
| What participants can verify depends on the deployment model. For the trust and | ||
| verification boundaries, see | ||
| [Trust model](./trust-model.mdx). For where data is | ||
| stored and who can see it, see [Privacy and data visibility](./validium.mdx). | ||
|
|
||
| ## Operator-owned compliance controls | ||
|
|
||
| <GlossaryTerm term="Operator">Operators</GlossaryTerm> are responsible for the controls a compliance program requires. Lineth | ||
| provides mechanisms operators can configure, but does not own the program: | ||
|
|
||
| - Access policy: [RBAC](../deployment/access-control.mdx) on RPC endpoints and API surfaces controls | ||
| who can read or submit | ||
| - Data availability arrangement: operators choose where transaction data is | ||
| stored and who can reconstruct it; see | ||
| [Data availability and finalization](../deployment/data-availability-finalization.mdx) | ||
| - [Key management](../deployment/key-management.mdx): remote signing backed by | ||
| HSM or KMS via [Web3Signer](../../protocol/architecture/index.mdx#web3signer) | ||
| - Governance and upgrade authority: multisig, governance contract, or timelock | ||
| for privileged roles; see [Security and assurance](./security.mdx) | ||
| - External integrations: operators connect external compliance, monitoring, and | ||
| logging systems to their deployment | ||
| What participants can reconstruct or verify from that evidence depends on the | ||
| [deployment model](./deployment-models.mdx). | ||
| See [Trust model](./trust-model.mdx) for trust and verification boundaries. | ||
|
|
||
| ## What Lineth does not claim | ||
| ## Retention and disclosure | ||
|
|
||
| - Lineth does not certify a deployment as compliant with any specific | ||
| regulation. | ||
| - Lineth does not publish a control-to-framework mapping. | ||
| - <GlossaryTerm term="Validium">Private validium</GlossaryTerm> (offchain data) and | ||
| [access control](../deployment/access-control.mdx) (RPC gating) are not | ||
| cryptographic private execution or ZK privacy. Do not infer regulatory | ||
| compliance from them. | ||
| - Lineth does not own data retention or disclosure policy. Operators implement | ||
| it. | ||
| Operators implement retention and disclosure against their own policy, using the deployment's | ||
| [data availability](../deployment/data-availability-finalization.mdx) and | ||
| [access control](../deployment/access-control.mdx) configuration. | ||
| They connect their own compliance, monitoring, and logging systems to the deployment. | ||
|
|
||
| ## Where to go next | ||
| ## See also | ||
|
|
||
| | Question | Page | | ||
| | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------- | | ||
| | What can each component do, and what can participants verify? | [Trust model](./trust-model.mdx) | | ||
| | Who can see what data? | [Privacy and data visibility](./validium.mdx) | | ||
| | What is protocol versus operator, and what evidence exists? | [Security and assurance](./security.mdx) | | ||
| | How is access to RPC and APIs controlled? | [Access control](../deployment/access-control.mdx) | | ||
| | How do data availability and finalization choices interact? | [Data availability and finalization](../deployment/data-availability-finalization.mdx) | | ||
| - [Security and assurance](./security.mdx): Protocol guarantees and published assurance evidence. | ||
| - [Trust model](./trust-model.mdx): What each component can do, and what participants can verify. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,103 +1,128 @@ | ||
| --- | ||
| title: Deployment models | ||
| description: >- | ||
| How to compare Lineth public and private validium deployment models and their | ||
| trade-offs | ||
| sidebar_position: 2 | ||
| description: Compare rollups and validiums, and their trade-offs | ||
| image: /img/socialCards/deployment-models.jpg | ||
| --- | ||
|
|
||
| import GlossaryTerm from '@theme/GlossaryTerm'; | ||
|
|
||
| <GlossaryTerm term="Lineth" /> supports two deployment models: **public deployments**, such as | ||
| [Linea Mainnet](/network), with onchain data availability and open access; and **private validium deployments**, | ||
| with offchain data availability and controlled access. | ||
| <GlossaryTerm term="Lineth" /> supports two deployment models: **rollups**, in which transaction data is | ||
| posted to the <GlossaryTerm term="Finalization layer">finalization layer</GlossaryTerm>, and | ||
| **validiums**, in which only state commitments and proofs are posted to the finalization layer. | ||
| A validium can be **public** or **private**, depending on who can read that network's transaction data. | ||
|
|
||
| Consider these questions when choosing a deployment model: | ||
|
|
||
| - [Privacy](validium.mdx) requirements: Should transaction data remain private to authorized participants? | ||
| - Privacy requirements: Should transaction data remain visible only to authorized participants? | ||
| - Regulatory and [compliance](./compliance.mdx) obligations: What controls does your program | ||
| require, and who owns them? | ||
| - [Data availability](../deployment/data-availability-finalization.mdx) guarantees: How important is onchain data availability for | ||
| your participants? | ||
| - [Data availability](../deployment/data-availability-finalization.mdx) guarantees: Do participants | ||
| need to be able to reconstruct history from the finalization layer? | ||
| - Network topology: Do you need a private network with controlled membership? | ||
| - [Access control](../deployment/access-control.mdx): Do you need role-based access control (RBAC) on RPC endpoints and | ||
| APIs? | ||
| - [Access control](../deployment/access-control.mdx): Do you need role-based access control (RBAC) | ||
| on RPC endpoints and APIs? | ||
|
|
||
| The following table compares how characteristics differ between public deployments and private validium deployments. | ||
| The following table compares how characteristics differ between rollups and validiums. | ||
| Choose the deployment model that aligns with your requirements. | ||
|
|
||
| | Characteristic | Public deployments | Private validium | | ||
| | --- | --- | --- | | ||
| | Data availability | Transaction data is posted onchain via EIP-4844 blobs | Transaction data can be stored offchain in a private node set | | ||
| | Access control | Public RPC endpoint | RPC endpoints protected by RBAC | | ||
| | What is posted to the <GlossaryTerm term="Finalization layer">finalization layer</GlossaryTerm> | State commitments, proofs, and transaction data | State commitments and proofs; transaction details stay offchain | | ||
| | Who can reconstruct history | Anyone with the blob data, while it is retained | Participants the operator authorizes through DA access and RBAC | | ||
| | Network topology | Open access | Controlled node membership | | ||
| | Characteristic | Rollup | Public validium | Private validium | | ||
| | --- | --- | --- | --- | | ||
| | Transaction data | Posted to the finalization layer via EIP-4844 blobs | Stored by the Lineth network's nodes | Stored by the Lineth network's nodes | | ||
| | What is posted to the finalization layer | State commitments, proofs, and transaction data | State commitments and proofs only | State commitments and proofs only | | ||
| | Access and topology | Open RPC access | Open RPC access | Restricted node set and RBAC permissions on RPC | | ||
| | Who can reconstruct history | Anyone with blob data, while it is retained | Anyone who can reach the network's nodes | Authorized participants only | | ||
|
|
||
| The following sections provide more details about use cases and security considerations for each model. | ||
| The following sections provide more details about each model. | ||
|
|
||
| ## Public deployments | ||
| ## Rollups | ||
|
|
||
| Public deployments such as Linea Mainnet are open networks with onchain data availability. | ||
| Transaction data is posted as EIP-4844 blobs, so state commitments, proofs, and transaction data all appear on | ||
| the finalization layer. | ||
| Anyone with the blob data can reconstruct history while those blobs are retained. | ||
| In a rollup, the <GlossaryTerm term="Coordinator">coordinator</GlossaryTerm> posts | ||
|
Check warning on line 39 in docs/stack/evaluate/deployment-models.mdx
|
||
| transaction data to the finalization layer (for example, using | ||
| [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) blobs on Ethereum). | ||
| State commitments, proofs, and transaction data appear on the finalization layer. | ||
| Anyone who can read that data can reconstruct history while it remains available. | ||
| RPC access is public, and node membership is not restricted. | ||
|
|
||
| ### Use cases | ||
|
|
||
| - Networks requiring maximum transparency | ||
| - Applications that require maximum transparency | ||
| - Applications that benefit from onchain data availability | ||
| - Networks that prioritize open access over transaction privacy | ||
| - Applications that prioritize open access over transaction privacy | ||
|
|
||
| ### Security considerations | ||
|
|
||
| - Validator topology: if the deployment uses a | ||
| [multi-validator QBFT design](../deployment/distributed-sequencing.mdx), at least 4 | ||
| Maru validators are required to tolerate one faulty validator | ||
| - [Key management](../deployment/key-management.mdx): remote | ||
| signing backed by a hardware security module (HSM) or key management service | ||
| (KMS) | ||
| The following operator choices affect how you secure a rollup: | ||
|
|
||
| ## Private validium | ||
| - Validator topology: If the deployment uses a | ||
| [multi-validator QBFT design](../deployment/distributed-sequencing.mdx), at least 4 Maru validators | ||
| are required to tolerate one faulty validator. | ||
| - [Key management](../deployment/key-management.mdx): Remote signing backed by a hardware security | ||
| module (HSM) or key management service (KMS) | ||
|
|
||
| A private validium keeps transaction data offchain, using <GlossaryTerm term="zk-SNARK" /> proofs | ||
| to support state-transition correctness and finalization. | ||
| RPC endpoints are protected by [access control](../deployment/access-control.mdx), and node membership is controlled. | ||
| ## Validiums | ||
|
|
||
| Whether this model | ||
| suits a regulated environment depends on the operator's own compliance, privacy, | ||
| and access-control design; Lineth does not certify a deployment as compliant. | ||
| In a validium, the <GlossaryTerm term="Coordinator">coordinator</GlossaryTerm> submits state | ||
|
Check warning on line 64 in docs/stack/evaluate/deployment-models.mdx
|
||
| commitments and proofs to the finalization layer. | ||
| Transaction data is not posted there. | ||
| Typically that data lives on the validium's <GlossaryTerm term="Archive node">archive nodes</GlossaryTerm>. | ||
|
|
||
| ### Use cases | ||
| ### Public validiums | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not 100% sure of this, but I'm assuming Linea does not accept type 3 blob transactions, correct? If so may require some updates. Rollups. The table cell "Posted to the finalization layer via EIP-4844 blobs" and the sentence "for example, using EIP-4844 blobs on Ethereum" both leave Linea open. Say that blob posting works only when the finalization layer is Ethereum, because Linea does not accept type 3 blob transactions? Public validiums. The Linea Mainnet use case is currently mentioned as a cost choice. It is also the open-access model for an L3? Transaction data should stay on the network's nodes because it cannot be written to Linea as blobs.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Changed instances to say the rollups post data as blobs (not just an example). Will refrain from naming Ethereum as only option for rollup, since #1716 updates the "Finalization layer" page to note that Ethereum is typically used, but any network that can run the system contracts and accepts EIP-4844 blobs can theoretically be used.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Elaborated that the public validium model is used by public L3s finalizing to Linea. The use case bullet is slightly tweaked to say: "Applications that need the lower finalization cost and faster settlement on Linea Mainnet, while keeping open access" -> which essentially covers the "open-access L3 model," since the main benefit of running an L3 instead of an L2 is cheap and fast finalization. |
||
|
|
||
| - Workflows where transaction data should not be public | ||
| - Multi-party workflows where participants should not see all transaction | ||
| details | ||
| - Operators who accept the validium trade-off: state-transition correctness is | ||
| proven onchain, but data reconstruction without the operator depends on the | ||
| deployment's data availability arrangement | ||
| A public validium makes the Lineth network's data publicly readable. | ||
| RPC access is open, so anyone who can reach a node can reconstruct history from the network. | ||
|
|
||
| Operators with regulatory or compliance obligations are responsible for | ||
| designing their own compliance program. See | ||
| [Compliance](./compliance.mdx) for what protocol evidence exists and | ||
| what is not claimed. | ||
| #### Use cases | ||
|
|
||
| ### Security considerations | ||
| - Applications that need the lower finalization cost on Linea Mainnet, while keeping open access | ||
| - Applications that do not require transaction data on the finalization layer | ||
|
|
||
| #### Security considerations | ||
|
|
||
| The following operator choices affect how you secure a public validium: | ||
|
|
||
| - Validator topology: If the deployment uses a | ||
| [multi-validator QBFT design](../deployment/distributed-sequencing.mdx), at least 4 Maru validators | ||
| are required to tolerate one faulty validator. | ||
| - [Key management](../deployment/key-management.mdx): Remote signing backed by a hardware security | ||
| module (HSM) or key management service (KMS) | ||
|
|
||
| ### Private validiums | ||
|
|
||
| A private validium keeps transaction data in a restricted node set and | ||
| [controls RPC access](../deployment/access-control.mdx). | ||
| Authorized participants who can reach those nodes can reconstruct history. | ||
| A third party without that access cannot. | ||
|
|
||
|
alexandratran marked this conversation as resolved.
|
||
| :::warning Private validium is not cryptographic privacy | ||
| A private validium does not make transactions cryptographically private. | ||
| Anyone authorized to see the offchain data can read the transactions. | ||
| The zk-SNARK proofs confirm that state transitions are correct; they do not hide that data. | ||
| ::: | ||
|
|
||
| #### Use cases | ||
|
|
||
| - Applications where transaction data should not be public | ||
| - Multi-party workflows where participants should not see all transaction details | ||
| - Applications that accept the private validium trade-off: state-transition correctness is proven onchain, but | ||
| reconstructing history requires authorized access to the operator's offchain data | ||
|
|
||
| #### Security considerations | ||
|
|
||
| The following operator choices affect how you secure a private validium: | ||
|
|
||
| - Validator topology: If the deployment uses a | ||
| [multi-validator QBFT design](../deployment/distributed-sequencing.mdx), at least 4 Maru validators | ||
| are required to tolerate one faulty validator. | ||
| - [Access control](../deployment/access-control.mdx): RBAC permissions on JSON-RPC, APIs, and tooling | ||
| - [Key management](../deployment/key-management.mdx): Remote signing backed by a hardware security | ||
| module (HSM) or key management service (KMS) | ||
| - Network isolation: Private network topology with controlled peering | ||
|
|
||
| - Validator topology: at least 4 Maru validators are required for a | ||
| [QBFT design](../deployment/distributed-sequencing.mdx) that tolerates one faulty | ||
| validator | ||
| - [Access control](../deployment/access-control.mdx): RBAC on RPC endpoints and API portal | ||
| - [Key management](../deployment/key-management.mdx): remote | ||
| signing backed by a hardware security module (HSM) or key management service | ||
| (KMS) | ||
| - Network isolation: private network topology with controlled peering | ||
| For an illustrative topology, see the | ||
| [example private validium architecture](../deployment/index.mdx#example-architecture). | ||
|
|
||
| ## See also | ||
|
|
||
| - [Trust model](./trust-model.mdx): Trust assumptions for each deployment model | ||
| - [Privacy and data visibility](./validium.mdx): What a private validium publishes and who can see it | ||
| - [Trust model](./trust-model.mdx): Trust assumptions for each deployment model, and what participants can verify | ||
| - [Data availability and finalization](../deployment/data-availability-finalization.mdx): Where transaction | ||
| data is stored in each deployment model, and where proofs settle | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We ask questions here, but the answer is in the table below, but it's not mapped identically, so the user needs to infer.
So in the table, perhaps "Transaction data" should be "Privacy requirements", or vice versa? Or we find an alternate way to answer the questions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Decided to simplify to just the table, with questions in the first column.