Succinct 백서

Succinct

원문

bitpro가 원문에서 글자만 모은 내용이에요. 표·그림·수식은 빠지거나 깨질 수 있어요. 전체 4쪽 중 3쪽

l to partic- ipate in the auction outright can form proving pools in which they can collectively bid for request slots, akin to mining pools in Bitcoin. We introduce the notion of proving pools, which are composed of many provers who jointly pool their capacity to bid in the proof contest mechanism. Pools allow provers with home setups to start generating proofs without having having to learn how to bid in auctions, by allowing for permissionless, bidding-free coordination. This allows the network to bootstrap a global distributed proving cluster that can be joined by anyone. Proving pools can serve as a counterweight to the potentially centralizing effects of specialized hardware and economies of scale. We depict the network with proving pools in Figure 7. Permissionless proving pools. Because members of proving pools do not nec- essarily have to participate in bidding, pools can themselves be permissionless and require minimal sophistication for home provers to join. Pool operators have an op- portunity use free market forces to aggregate proving capacity across the world and earn fees. Pool fees can be paid out in a fashion similar to Bitcoin mining pools, by querying pool members for capacity and paying them a fraction of fees based on the share of the total capacity they provide. The distributed, global nature of proving pools is a key hallmark of the network. Pools can be competitive. Proving pools have the additional benefit that they do not require the large upfront capital costs incurred by hardware teams to get started. Pools can set incentives to cause proving capacity to come online during times of high demand and go offline when there are relatively few proofs. Pools also do not face recurring operational costs such as utilities and rent if pools are primarily composed of home provers. Pools can search for capacity in low cost of electricity areas. Therefore, it is expected that well-run proving pools can remain competitive with hardware teams and optimize their operations, incentivized by the prospect of earning fees. This is similar to how mining pools in proof-of-work cryptocurrencies remain competitive. 17 Figure 7: Proving pools can dramatically expand the network’s capacity and enable home provers to join without bidding. Proof delegation. Pooling also allows for delegation of proving capacity to multi- ple pools. This means that provers with home setups can express their risk preferences by participating in pools that bid more or less aggressively in the mechanism. Pools can coordinate proving capacity depending on their needs. This model resembles dele- gation found in proof-of-stake currencies and especially in decentralized staking pools; it is expected that instruments to pool the risk of proving will arise with the emergence of global proving pools. 4 Network Architecture Having introduced the proof contest mechanism, we now turn to the question of how to implement the network in practice via an application-specific blockchain. We first illus- trate the desired properties of the network and how proof contests can be realized, and demonstrate that the implementation necessitates an application-specific blockchain. Next, we describe the architecture and how users and provers can participate; the architecture is depicted in Figure 8. 4.1 Implementation Requirements Any implementation of the proof contest mechanism for a network that assigns proof requests to provers should satisfy the following: 1. Low latency : The implementation needs to coordinate payments, bidding, and proof fulfillment. It is therefore essential that the system be low latency and high throughput. 18 Figure 8: Succinct Network architecture. 2. Censorship resistance : The implementation should afford downstream appli- cations censorship resistance guarantees for their requests. 3. Liveness: For some applications, delayed proofs can cause meaningful economic damage. The implementation should reliably, and with high liveness coordinate proof requests and fulfillment. For these reasons, we choose to coordinate users and provers via an application- specific blockchain as opposed to a system that runs on trusted intermediaries to coordinate proofs. The blockchain serves to provide censorship resistance and de- centralization required for downstream applications. Users submit requests to and provers bid and fulfill proofs on the blockchain. The blockchain is codesigned with SP1 to make fulfilling and verifying proofs seamless and to prevent spamming and other griefing vectors. It can be implemented as a modern layer 1 or rollup and is designed for progressive decentralization; the implementation details are outside the scope of this whitepaper. Permissionless participation and payments mean that any- one can bridge funds directly to the blockchain and begin requesting proofs, making for a desirable user experience. 4.1.1 Performance The blockchain is designed to be performant and to minimize excess latency in proof fulfillment. With short blocktimes, proof contests can be conducted quickly for each request. Bidding can take place in a short, preassigned window. The blockchain also benefits from ephemeral data storage, where data associated with proof requests can be temporarily stored. 4.1.2 Consensus The blockchain is designed for progressive decentralization, whereby requests can be given robust censorship resistance and liveness guarantees via nodes that operate the 19 network and come to consensus on requests, bids, and proof fulfillment. If imple- mented as a modern layer 1, this is done by having a decentralized validator set for the blockchain. If implemented as a rollup, this means having a decentralized sequencing layer that can come to agreement on the ordering of requests. 4.2 Participation There are two main parties in the network: users, who submit proof requests, and provers, who fulfill proofs. There are third parties called relayers who provide services that enhance the user experience, such as simulating program execution. We describe how users and provers participate (the role of relayers is described in Appendix A). 4.2.1 Users: Submitting Requests Users submit proof requests to the network by inputting a program, inputs stdin, a max_cycles parameter, the maximum fee fj, the deadline, and a vkey. The program and inputs are the data required by the prover to generate the proof. We provide additional details about how programs and inputs are stored in Appendix A. The quantity max_cycles is the maximum number of RISC-V cycles that the user expects the proof to consume and the fee fj is the maximum amount that the user wants to pay for the request. The fee can be independently set by the user or via suggestion from a functionality similar to gas estimation endpoints in Ethereum. Upon sending the request, the user’s fee is held in escrow to prevent griefing vectors. Finally, the vkey is a key that is used by the verifier to check the correctness of the proof and is generated during an initial setup phase. A unique proof_id is created for every submitted request. Proof requests can be sent to the network via standardized RPC endpoints. From the user’s point of view, the network is a high liveness, competitive interface for proof requests. Once completed proofs have been submitted by provers, users can relay them to their destination chains directly from the network. 4.2.2 Provers: Bidding and Fulfilling Proofs Provers can permissionlessly participate in the network by simply plugging in their hardware and running node software which allows them to bid for requests. Provers may have capacity limits and operating costs to generate proofs, as shown in Figure 8, but these may not be revealed to the network; the bidding process helps elicit this information. Bidding and fulfilling requests happen on the application-specific blockchain. Provers begin by seeing proof requests that have been submitted and fetching program and input data. Bidding. Provers then bid for the right to complete requests in a proof contest that computes a clearing price and assignment. Proof contests are conducted onchain, after the request is visible. The bidding window is fixed ahead of time for transparency. The blockchain is designed to have short blocktimes to enable bidding at timescales much smaller than proof generation times. 20 Figure 9: The network scales decentralized applications via server-side proving and enables ubiquitous privacy via client-side proving. Fulfilling proofs. Once the assigned prover is finished completing their proof, they can fulfill it on the application-specific blockchain. The prover inputs the proof_id, the program, stdin, and proof information. The vkey submitted alongside the proof request allows a verifier to check that the proof was generated correctly. SP1 allows for three types of proofs to be generated: CORE, COMPRESSED, and GROTH16/PLONK. CORE proofs have size proportional to the program’s execution, whereas COMPRESSED proofs have constant size but are more expensive to generate. GROTH16 and PLONK proofs are the most expensive to generate and have the benefit of being highly compressed; they can be verified onchain. Due to the variable and large proof sizes of CORE proofs, the network allows requesters to request COMPRESSED and GROTH16/PLONK proofs. 5 Proving the World’s Software The network has significant implications for accelerating verifiability on the Internet. Verifiability means that applications can outsource expensive computation and busi- ness logic without relying on trusted intermediaries, and users can receive guarantees that sensitive information will remain private and that the execution of the computa- tion is correct. The aggregation of proving capacity under one permissionless, global network means that decentralized systems can face shared standards and scale with minimal overhead. This drives down prices and enhances the user experience, creating tailwinds for applications that use ZK. There are two main modalities through which a user can interact with the network: as a standalone server-side prover, or mixed with client-side proving, as depicted in Figure 9. Server-side proving is useful for applications that require specialized prover nodes to outsource computation, such as public blockchains and rollups. Client-side proving is useful for privacy applications that can hold user information private to generate a large proof that can then be compressed via the network. We now describe several applications that can be built using or enhanced by the network. 1. Rollups. The rollup-centric roadmap of Ethereum is increasingly shifting to using ZK technology for transaction verification, compared to the heavy use of 21 fraud proof technology in the past. As transaction demand for ZK rollups rises due to their low costs and ease of use, the number of proofs demanded will cor- respondingly increase rapidly. Rollups can use the network for proofs that are delivered with competitive prices and high reliability. This enables all decentral- ized systems to scale their throughput without sacrificing their verifiability. 2. Oracles and bridges. Other components of decentralized systems that can use the network include oracles and bridges. ZK oracles can trustlessly provide blockchains with inputs from external data feeds, and ZK bridges can enable interoperability between all blockchains. Crucially, a decentralized prover set is important for these applications as they cannot rely on a single point of failure. 3. Identity and authentication. The zero-knowledge property ensures that pri- vate user inputs can be incorporated into proofs without being revealed to anyone else. This is essential for applications that require privacy, such as identity and authentication, in which user inputs might involve sensitive identifying informa- tion. To make sure that these inputs remain private during the proving process, client side proving can be used in tandem with the network. 4. Credit scoring and auditing. Currently, businesses that perform credit scor- ing, notarization, or auditing have high operational costs and have to manage complex, legacy databases. Applications that use the network could massively reduce the costs in these operations by leveraging ZK proving to provide proofs as audits. 5. V erifiable inference. AI applications can use the network to prove the output of an AI model on a given set of queries to an end user. The network enables applications to receive a large quantity of proofs required for high throughput inference applications. 6. Coprocessors. Blockchains can use the network to have coprocessors that of- fload heavy computation to off-chain actors. This can allow blockchains to access historical data, compute fees with high-fidelity economic models, and allow third parties to query blockchains trustlessly. 7. Outsourced cloud computing. The network can be used as a generalized out- sourced computing layer. Users can send programs to provers that they would ordinarily run in cloud servers, if not for the trust assumptions and loss of veri- fiability that these servers bring. 6 Conclusion We propose the Succinct Network, a protocol for coordinating a decentralized set of provers to satisfy user requests for ZK proof generation via a competitive auction called proof contests to create a global-scale distributed proving cluster. The network is co- designed and integrated with SP1, a zkVM that allows for the proving of arbitrary deterministic Rust programs. Proof contests balance cost competition and prover de- centralization to allocate requests to provers and are settled on an application-specific blockchain that is specially designed to coordinate users and provers. The network 22 allows for permissionless entry as a prover and induces free market competition. It enables a broad infrastructure buildout for proof generation akin to other cryptoeco- nomic systems, and ensures that applications from blockchain scaling to privacy have access to robust, competitive proving. By using incentives to dramatically expand the proving capacity of the world, the network leads to low cost, low latency ZK proof generation for all. 7 Acknowledgments We would like to thank Tarun Chitra, Ciamac Moallemi, Dave White, and Max Resnick for valuable feedback on this paper. References [Nak08] Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system . 2008. url: https://bitcoin.org/bitcoin.pdf. [But13] Vitalik Buterin. Ethereum whitepaper. 2013. url: https://ethereum. org/en/whitepaper/. [BS+13] Eli Ben-Sasson, Alessandro Chiesa, Daniel Genkin, Eran Tromer, and Madars Virza. “SNARKs for C: Verifying program executions succinctly and in zero knowledge” . In: Annual Cryptology Confer- ence. Springer. 2013, pp. 90–108. [BS+14] Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer, and Madars Virza. “Succinct {Non-Interactive} zero knowledge for a von neumann ar- chitecture” . In:23rd USENIX Security Symposium (USENIX Secu- rity 14) . 2014, pp. 781–796. [Dra24] Justin Drake. [AMA] We are EF Research (Pt. 12: 05 Septem- ber, 2024) . 2024. url: https://www.reddit.com/r/ethereum/ comments/1f81ntr/comment/llmfi28/?utm_source=share&utm_ medium=web3x&utm_name=web3xcss&utm_term=1&utm_content= share_button. [GMR85] Shafi Goldwasser, Silvio Micali, and Charles Rackoff. “The knowl- edge complexity of interactive proof-systems” . In: Proceedings of the Seventeenth Annual ACM Symposium on Theory of Computing . 1985, pp. 291–304. [Halo20] The Zcash Team. Halo2. https : / / github . com / zcash / halo2. 2020. [Plonky22] PolygonZero. Plonky2. 2022. url: https://github.com/0xPolygonZero/ plonky2. 23 [Plonky23] Polygon. Plonky3. 2023. url: https : / / github . com / Plonky3 / Plonky3. [SP124] Succinct Labs. Introducing SP1: A performant, open-source, contributor- friendly zkVM . Feb. 2024. url: https : / / blog . succinct . xyz / introducing-sp1/. [Ben17] Juan Benet. Filecoin: A Decentralized Storage Network . Protocol Labs. 2017. url: https://filecoin.io/filecoin.pdf. [Wu23] Howard Wu. The Aleo Whitepaper . https://hackmd.io/@aleo/ HJRwnnhM6. Oct. 2023. [KB23] Assimakis Kattis and Joseph Bonneau. “Proof of necessary work: succinct state verification with fairness guarantees” . In: Interna- tional Conference on Financial Cryptography and Data Security . Springer. 2023, pp. 18–35. [BTT80] James Buchanan, Robert Tollison, and Gordon Tullock. “Toward a theory of the rent-seeking society” . In: Texas A&M University economics series (1980). [LS20] Jacob D Leshno and Philipp Strack. “Bitcoin: An axiomatic ap- proach and an impossibility theorem” . In: American Economic Re- view: Insights 2.3 (2020), pp. 269–286. [BGR24] Maryam Bahrani, Pranav Garimidi, and Tim Roughgarden. “Cen- tralization in block building and proposer-builder separation” . In: arXiv preprint arXiv:2401.12120 (2024). [NGR24] Michael Neuder, Pranav Garimidi, and Tim Roughgarden. On block- space distribution mechanisms . https : / / ethresear . ch / t / on - block-space-distribution-mechanisms/19764/1 . June 2024. A Network Architecture A.1 Data Storage In practice, the program and input data can be very large in size and therefore difficult to store on a blockchain. To account for this, the network makes use of external ephemeral storage where request data can be stored. The artifact ids of the relevant data in ephemeral storage can be used as a proof of data availability and to query the program and stdin required for proving. With the emergence of large scale, onchain data storage , over time, all data required to generate a proof can be trustlessly transferred from requesters to all the provers. 24 A.2 Relayers Relayers are third parties involved in the network to improve the user experience and to give provers additional information they may need to fulfill proofs. Simulating programs. Relayers simulate programs to compute public_values, which are public inputs associated to the request. This simulation step prevents a prover from spending resources on invalid or misconfigured requests. Further, the upper bound on the cycle count, max_cycles, inputted by the user may be overly pessimistic. Relayers execute the program to compute exact cycle counts sj before provers to ensure that the amount of work taken up by the proof does not exceed the maximum cycle count. The presence of the relayer prevents several attack vectors that cause delays and inefficiencies in proving, such as a prover realizing partway through proving that a given request is not possible to fulfill or that the realized cycle count is higher than expected. Relayer payments. Since relayers provide a commodity service for all the requests that enter the network, they are paid a flat fee for posting the results of simulation and cycle counts to the network. In practice, program simulation is a small fraction of the cost of generating a proof. Therefore, permissionless entry into the relayer role combined with a flat fee ensures that provers have access to the information they need and that the network progresses on proof fulfillment. To ensure that relayers truthfully report the results of the simulation step and the cycle counts, they stake collateral. Since provers also go through the simulation step while proving, it is simple to check that a relayer misreported their outputs. B Prover Competition The proof contest mechanism incentivizes provers to compete on the bids that they submit to the auction. In the setting where these bids provide rebates to users over time, we can compute the effective price the user receives by f −∑mk=1 b∗k. To illustrate how this price deviates from a model in which there is a competitive auction between the provers with no preference for decentralization, we compare proof contests to a second price reverse auction. In this auction, the provers simply compete to lower the price of the user’s trade as much as possible; the lowest bidding prover wins at the second lo
프로젝트로 돌아가기