讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。
Zero Knowledge Rollups
A zero-knowledge rollup is a Layer 2 blockchain solution that performs computations and storage off-chain while funds are held in a smart contract.
As demand on the Ethereum network started to rise with the NFT and yield farming crazes that began towards the end of 2020, the need for 长期看Zk Rollup faster processing speeds and cheaper transactions increased. The solution came in the form of Layer 2 blockchains and additional developments like zero-knowledge rollups.
What Are Zero-Knowledge Rollups?
Simply put, zero-knowledge rollups or zk-rollups is a Layer 2 scalability solution that allows blockchains to validate transactions faster while also ensuring that gas fees remain minimal. Zk-rollups 长期看Zk Rollup manage to perform better than traditional Layer 1 blockchains like 长期看Zk Rollup Ethereum because they combine on and off-chain processes.
While the Ethereum mainnet explicitly utilizes on-chain activities to process transactions and validate blocks, Layer 2 zk-rollup solutions introduce off-chain functionalities as well. One of the main components that allow zk-rollups to successfully validate transactions faster 长期看Zk Rollup than Layer 1 blockchains are Merkle Trees.
Merkle Trees are an 长期看Zk Rollup important mathematical structure that allow blockchains to ensure that no one can fake data in the on-chain records of a zk-rollup. Usually, a zk-rollup consists of two Merkle Trees which are both 长期看Zk Rollup stored on a smart contract, or in other words, on-chain. One 长期看Zk Rollup tree is dedicated to storing accounts, while the other stores all balances. Any other type of data generated and used by the zk-rollup is stored off-chain.
One of the reasons why zk-rollups manage to perform significantly better than Layer 1 counterparts is the off-chain storage of data. Merkle Trees only consist of the most important 长期看Zk Rollup data relevant to the smart contract and are accessed and requested to output information much more infrequently than in Layer 1 solutions. This saves huge amounts of processing power and time for 长期看Zk Rollup the blockchain. Consequently, as less of the blockchain’s capacity is utilized for transaction validation, gas fees decrease, making Layer 2 solutions, especially zk-rollups, a preferred solution for small-time traders.
Zk-rollups are becoming increasingly popular both among developers who are looking to boost usability, and 长期看Zk Rollup among investors and traders looking for faster and cheaper transaction processing. Solutions like Zcash are gaining traction among investors because of their use of zk-rollups. As blockchain technology continues to develop, performance and pricing become better. Layer 2 solutions and zk-rollups are only the beginning of the next era of blockchain technology and advanced cryptocurrency systems.
ZK Rollup 简介
如果将以上 Action 换成转账交易 transaction,把 系统中的账户集合看作是一个状态机,那么整个过程也就是链上交易执行的过程了。交易的执行,使得整个链上的全局状态发生变化。链上的全局状态也就是各个账户的状态集合,将所有账户的状态组成一棵 Merkle 树,树的叶子节点是账户状态,树的根可以直接用来表示状态集合。因此,上述的 PRE_STATE 和 POST_STATE 也就是全局账户状态树的根。
账户状态模型
刚才我们提到链上的整个系统中的账户状态,可由一棵 Merkle 树来管理。Merkle 树的叶子节点,即用户的状态信息。同样,链下扩容方案 zk Rollup 也可以用类似的 Merkle 树来组织其账户状态。
最简单的账户状态可以包含:账户的 public key,nonce 和 balance。而叶子节点在 Merkle 树中是有唯一位置的,因此位置的索引信息可间接引用这个账户信息。
如果我们用3个字节来表示这个索引信息的话,那么这棵 Merkle 树总共可以支持 2^24 = 16,777,216 个账户。这对于一般的系统来说已经足够。因此,以太坊为例,账户地址可以由 address 的 20个字节 转为 Merkle 树的叶子节点索引 长期看Zk Rollup 3 个字节。这样账户地址就被“压缩”了。
除了对账户地址进行压缩,我们也可以对转账金额数据进行压缩。例如,在以太坊上金额用256位的大整型来表示,但是实际使用过程中几乎很少用到超大金额和超小的金额。因此如果我们就假设系统中转账的最小单位是 0.001 ETH,并且用 4 个字节来表示转账金额的话,我们就可以支持 0.001 ~ 4,294,967.295 ETH 的转账,这对于一般的系统来说也已经够了。但然如果还不够可以适当再增加字节来表示金额,或者引入浮点数表示方式。
手续费与转账金额类似,实际手续费会在一定的范围之内浮动,因此我们也可以为手续费设定一个最小单位,例如:0.001 ETH。然后用 1 长期看Zk Rollup 个字节来表示 0.001 ~ 0.255 ETH 的手续费。这里的手续费也就是 transactor 向 relayer 支付的手续费。
同样,我们假设在正常使用环境下一个账户的转账次数不会达到上万次,因此用2个字节来表示账户的 nonce 也差不多够了,因为 2 个字节 可以表示的范围达到 0~65535。
最后签名字段不能压缩,以以太坊为例,签名(r, s, v) 总共需要 65 个字节。但实际的zk Rollup 系统中使用 EdDSA的较多。
因此,一个 transaction 的格式大体如下:
以上 transaction 各字段的长度仅作参考,在实现具体系统的时候需要根据实际情况调整字段长度,以防止发生字段溢出的情况,但原则上还是能省则省。因为交易数据越少,在相同存储容量的前提下,所能容纳的交易数也就越多。
证明和验证
了解了状态迁移函数和账户状态模型后,我们再来了解下 relayer 收集 transaction 后做了些什么。
我们刚才提到在 zk Rollup 的系统里,所有用户的账户信息由一棵 Merkle 树管理。而 Merkle 树的根被记录在了链上的智能合约里,这个根的值也代表着整个系统当前所有账户的状态。当有用户发起转账 transaction 时,这个状态就要发生改变。但改变必须依照规则进行。
- 首先,必须要确保 transaction 的合法性:
转出账户是否有足够的钱支付转账金额和手续费;
转出账户的nonce是否正确;
转账transaction的签名是否正确;
- 接着,relayer 执行该转账 transaction,修改Merkle 树中的转出账户和转入账户的叶子节点,然后重新计算新的 长期看Zk Rollup Merkle 树的根;
- 重复第二步,relayer 会按照先后顺序一次性处理多个 transaction,然后将最后计算得到的 Merkle 树的根作为新的状态提交到链上合约中。
但上述流程存在问题:如果仅提交状态树的根到合约,那么用户如何相信新的状态根是如实地根据上述逻辑计算出来的。万一 relayer 作恶,故意调大 transaction 的手续费呢?
解决这个问题的一个方法是,要求 relayer 提交状态树的根到合约时,同时也将所有 transaction 提交到合约,这样任何人都可以根据这些 transaction 来验证 relayer 在计算新的状态树时,有没有作弊。但这等于时将所有链下的数据搬回了链上,没有实现 layer 2 扩容的目的。
利用零知识证明就可以很好地解决这个问题。zk Rollup 中的 zk 也就是 zero-knowledge 的缩写。relayer 在收集了一系列的 transactions 后,需要用预先定义好的 ZK circuits 来生成一个 PROOF:
确保每个交易 T[1], T[2], . T[n] 中的 nonce, value, fee 长期看Zk Rollup 等值都没有问题,且 signature 正确。
确保状态迁移过程没有问题,即 STF(PRE_STATE, T[1], T[2], . T[n]) = POST_STATE
然后将这个 PROOF 长期看Zk Rollup 与 POST_STATE, t[1], t[2], . t[n] 一起提交到链上合约。其中 t[1], t[2], . t[n]是 transaction 的简化信息,不包含 nonce 和 signature。所以 t[i] 比 T[i] 更小。
然后智能合约只需要验证这个 PROOF 是否正确。如果 PROOF 正确且合约中保存的状态与 长期看Zk Rollup PRE_STATE 相等,那么新的状态 POST_STATE 将会被记录到合约中,替换原有状态。
由于 relayer 必须生成 zkSNARK 的 PROOF,然后才能向合约提交,因此如果 relayer 作恶 修改用户的 transaction,那么 PROOF 将无法被验证通过。
另外,由于提交到链上的交易 t[1], t[2], . t[n] 是不包含 nonce 和 signature 的,因此上链的数据将会变得更小(上例中每个transaction 仅会有11个字节上链)。
此时,relayer 由于证明的限制,已经无法修改用户的 transaction。但是 恶意的 relayer 依然可以拒绝为某个 transactor 服务,不搜集该 transactor 的 tranaction。为了防止这种行为,合约上必须支持 on-chain withdrawal,也就是任何一个 transactor 都可以从链上将自己的 token 提走。
目前的应用
目前一个典型的 zk Rollup 应用场景是去中心化的交易所,其代表是 Loopring DEX Protocol (v3)。有兴趣的小伙伴可以深入研究一下。
此外,开源的 zk Rollup 框架还有:
zk Rollup 是一种新型的 Layer 2 扩容方案,该技术的核心思想是: 1. 将主链作为存储媒介,而非共识引擎 2. 将交易压缩,并在链下达成状态共识 3. 用零知识证明保证链下状态共识的安全性
目前,zk Rollup 最典型的应用场景是去中心化的交易所。PPIO 也在积极探索 zk Rollup 技术,并尝试将其应用到 去中心化的带宽和存储交易领域中去。
什么是ZK-Rollup
西京刀客 于 2020-11-27 18:43:17 发布 2385 长期看Zk Rollup 收藏 2
ZK-Rollup
ZKSwap 官网和白皮书:https://zkswap.pro/zh
ZKSwap App:https://zkswap.app/zh
ZKSwap 测试网教程:https://zkswap.app/docs/tutorial-zh.pdf
ZKSwap Layer2 浏览器:https://zkswap.info/zh
[推荐]ZKSwap 设计规范:https://github.com/l2labs/zkswap-spec
区块链公链自诞生以来,虽然大大降低了信任的门槛,但一直面临着一个效率问题:即 TPS 不高。例如比特币每秒仅支持7笔交易,而目前的以太坊也仅支持每秒 15 笔左右的交易。这样的 TPS 很支持大型应用。因此业界很多技术人员尝试为区块链扩容。目前扩容方案主要有两类:
Layer 1 扩容方案,即直接增加链上的交易处理能力,这种方式也被称为链上扩容。常见的技术方案有:Sharding 和 DAG;
Layer 长期看Zk Rollup 2 扩容方案,即将链上的相当一部分工作量转移到链下来完成。常见的技术有:State Channel, Plasma, Truebit 和 最近比较火的 zk Rollup。
区块链扩容受到Vitalik提出的不可能三角的限制,不可能三角是指区块链系统设计无法同时兼顾可扩展性,去中心化和安全性,三者只能取其二。 这是一个很让人失望的结论,但我们必须知道,一切事物都有自己的边界,公链不应该做所有的事情,公链应该做它该做的事情:“公链是以最高效率达成共识的工具,能够以最低成本来构建信任”长期看Zk Rollup 。作为共识的工具,信任的引擎,公链不应该为了可扩展性放弃去中心化与安全性。那么公链的TPS这么低,该怎么使用呢?我们是否可以将大量的工作放到链下去解决,仅仅将最重要的数据提交到区块链主链上,让所有节点都能够验证这些链下的工作都是准确可靠的呢?社会的发展带来的是更精细化的分工,区块链的技术发展也是如此,在底层区块链(Layer1)上构建一个扩展层(Layer2),Layer1来保证安全和去中心化,绝对可靠、可信;它能做到全球共识,并作为“加密法院”,通过智能合约设计的规则进行仲裁,以经济激励的形式将信任传递到Layer2 上,而Layer2追求极致的性能,它只能做到局部共识,但是能够满足各类商业场景的需求。
什么是 Rollup?
Rollup 是一种扩展方案:用主链上的单个合约来保管所有的资金,并保存一条指向 “侧链” 状态的简洁密码学承诺(通常来说就是一棵由账户、账户余额等状态组成的默克尔树)。 侧链的状态是由用户以及链下运营者来维护的,不会占用 长期看Zk Rollup Layer-1 的存储空间(这种对存储空间的节约才是可扩展性优势的最大来源)。
什么是ZK-Rollup
ZKSwap 是一套基于自动化做市商(AMM,Automated Market Maker)的代币 Swap 协议。
通过 ZK-Rollup 技术在 Layer-2 实现了 uniswap 的全套功能,同时提供无限可扩展性和隐私性。
ZKSwap 为流动性提供者和交易者提供超高吞吐量的 Swap 基础设施,且交易无需任何 Gas 费用。
zkRollup就是基于零知识证明的二层扩容方案(layer2), zkRollup方案起源于18年下半年,由Barry Whitehat和Vitalik先后提出。Rollup顾名思义有“卷起”和“汇总”的意思,将大量的交易“卷起/汇总”打包成一个交易,zkRollup的原理一句话就可以讲清楚:链下进行复杂的计算和证明的生成,链上进行证明的校验并存储部分数据保证数据可用性。
觀點|以太坊Layer 2賽道分析:中短期Optimistic Rollup,長期Zk Rollup
對於以太坊和公鏈之爭來說,Layer 长期看Zk Rollup 2 的落地實施,可以部分緩解以太坊的高費用和慢速度,這也會部分地降低其他公鏈的吸引力。隨著以太坊擴展的到來,再加上 EIP1559 的實施,ETH 將會迎來今年最重要的變化。它會對今年的公鏈大棋局產生極其重要的影響。
(前情提要: 礦工號召大反攻!「愚人節」遷移算力「51%持續51小時」,武力逼宮以太坊 EIP-1559 )
(事件背景: V神:以太坊 Rollups「快來了」!無須分片就可擴容百倍,最高達4,000TPS )
以 太坊的擁堵無需贅述,大家深有感觸。以太坊生態正在緊鑼密鼓地進行 Layer 2 的落地探索。
Layer 2 有狀態通道、側鏈、Plasma、 Optimistic Rollups 、 Zk Rollup 等等,目前看,最有希望走出來的是 Optimistic Rollups 和 Zk Rollup 的技術方案,此處簡寫為 OP 和 ZK 。
短期 OP 、長期 ZK
從筆者的觀察,短期和中期看 Optimistic Rollups ,長期看 Zk Rollup 。為什麼?
Optimistic Rollups Vs Zk Rollup
Optimistc 採用的 Optimistic Rollups 方案短期內更容易落地,其重要的原因之一是具有更強的可移植性。
而 Zk Rollup 目前還無法完全兼容 EVM。
Optimistic Rollups 的方案也有一個大的缺點,就是它需要解決欺詐證明的問題。這導致它的提款週期長達一週。用戶從 Layer 2 交易所裡面將其資金提取到 Layer 1 长期看Zk Rollup ,如果需要等待一個星期,相信很少有人有這個耐心等待。
而 Zk Rollup 沒有這個顧慮,它通過數學可靠性證明來解決這個問題,可以及時提取到 Layer 1 。Zk Rollup 技術在安全性上基本接近 Layer 1 长期看Zk Rollup 的水平,同時存入和提取也可以根據用戶需要即時進行,這是它的優勢。
但 Optimistic Rollups 方案為什麼短期內還會是 Layer 2 的最重要方案?因為其缺點並非沒有解決方案。
有些項目可以幫用戶直接將其 Layer 2 上代幣即時提取到 Layer 1 ,用戶支付一定的手續費即可,而這些項目l負責剩餘的事情。
例如,MakerDAO 社群提出了 Optimism DAI Bridge 的解決方案,可以解決 Optimistic Rollups 需要一週提現時間的問題。
由此,MakerDAO 會發行 长期看Zk Rollup 长期看Zk Rollup fDAI 代表對 Layer 1 DAI 的申領,fDAI 通過 Maker Oracle 對照 CTC 進行驗證。
(OP timism DAI Bridge,MakerDAO)
除了 MakerDAO,還有其他項目也會提供快速提現服務。因此,從落地的角度,從邏輯上看,短期內 OP 更適合,因為它有更強的可移植性,且提取週期長的問題也有解決方案。
長期來看, ZK 的安全性和提取週期上都佔優,隨著它完全支持EVM,它未來被採用的概率越來越大。
短期 OP
Optimistic 正在被 DeFi 的龍頭採用,這使得它在短期和中期都會是 Layer 2 最重要的落地方案之一。
採用 Optimistic Rollups 技術方案的 Optimistic 已經啓動測試網,預計 3 月份發佈。目前 Synthetic 會採用其方案。如果 Synthetic 實踐的效果好,會引入一大批的 DeFi 跟隨者。
整個 DeFi 的龍頭 Uniswap 據說也要使用 长期看Zk Rollup Optimistic 項目的方案,如果最終使用,其對整個 DeFi 項目採用 Layer 2 方案更具決定性的意義。不過按照 Uniswap 的風格,它會相對穩健,它推出 Optimism Layer 2 方案的時間不會太快。同時,目前 V3 是 Uniswap 的重點,這可能會延緩它採用 Layer 2 的進程。
而 Sushiswap 風格更為激進,它可能會早於 Uniswap 推出 Layer 2 的解決方案。據說 Sushiswap 正在跟 Matter labs 的 长期看Zk Rollup Zksync 探索 Layer 2 的落地方案,但最終還沒有定論。如果 Optimistic 的方案證明可行,也有可能轉向 Optimistic 的方案。
如果 Synthetic 、 Uniswap 都採用 Optimistic 項目的方案,那麼,其他的 DeFi 可能會跟進,最終形成 Optimistic 為主的短中期 Layer 2 局面。
目前 Optimist、 Offchain Labs(Arbitrum)、Fuel Network、 Cartesi 都在積極佈局這個技術方向的落地探索。
長期 ZK
Zk Rollup 在安全性和提取時間上都有優勢,一旦其實現對 EVM 的完全兼容,它有機會獲得越來越多 长期看Zk Rollup DeFi 的青睞。
不過,如果 Optimistic 方案在實踐上證明可行,這也會對 ZK 的採用形成一定的衝擊,至少會延緩它的採用進程。
但長期看,也許在未來幾年時間內,隨著更多 DeFi 項目採用 Zk Rollup 的技術,慢慢會形成一種態勢,最後實現二層的 长期看Zk Rollup Zk Rollup 互通,它容納的交易量高於 Layer 1 ,從而形成龐大的 Layer 2 生態。
這也是未來會有一兩家非常強大的 Layer 2 項目的原因。
目前 Matter Labs 的 ZK sync、Loopring、Starware、Aztec 等都在積極佈局 Zk Rollup 技術。
此外,甚至還有專門為擴展 NFT 交易的 Layer 2 項目,如 Immutable。
Layer 2 是巨無霸的大賽道
在筆者看來,Layer 2 賽道僅次於 BTC 、公鏈(ETH 等)、去中心化穩定幣,位居第四的賽道。
在 Layer 2 競爭塵埃落定之後,大約會誕生一到兩家巨無霸,它會成為整個 Layer 2 的解決方案,且從根本上解決 DeFi 的互通問題。
這樣的局面意味著,未來的 Layer 2 會成就價值極高的項目,甚至有可能接近於 Layer 1 ,且會高於絕大多數的公鏈,如果未來 Layer 2 誕生千億美元級別的項目,應該不用感到意外。
以太坊 L2 和 EIP1559 长期看Zk Rollup 长期看Zk Rollup 會扭轉公鏈競爭態勢
一旦 Layer 2 的 DeFi 啓動,大家會發現在 Layer 2 上交易費用很便宜,交易速度很快。
這會極大提升 DeFi 的用戶量和交易量,尤其是 DEX,隨著交易量和用戶量的提升,也會提升對流動性提供者的吸引力,這導致用戶和流動性提供者進一步向 Layer 2 遷移。
在演化的過程中, Layer 1 和 Layer 2 會形成 DeFi 长期看Zk Rollup 的分層,會形成一定的割裂,但最終來說, Layer 1 和 Layer 2 會形成均衡的態勢。
最終來說, Layer 2 的生態容量更大,但 Layer 1 依然很重要,它承載的是 Layer 2 的安全,還有各種高價值的結算, Layer 1 是最終的結算層。
對於以太坊和公鏈之爭來說,Layer 2 的落地實施,可以部分緩解以太坊的高費用和慢速度,這也會部分地降低其他公鏈的吸引力。
隨著以太坊擴展的到來,再加上 EIP1559 的實施,ETH 將會迎來今年最重要的變化。
新手科普|初識 Layer2 第二層網路解決方案,能解決以太坊燃眉之急?
以太坊|Vitalik 寫下 2020 總結:加密產業已做好準備,為公共財調解發揮關鍵作用
以太坊有救?改革「ETH手續費市場機制」的 EIP 1559,今年 7月「倫敦硬分叉」將推出
讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。