区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > Pol币 > 正文

CRYP:zkRollup 相关讨论两则_DigiDinar

作者:

时间:

第一则:

链接:https://twitter.com/SomsenRuben/status/1349437071686062083

@StopAndDecrypt:

有没有比特币爱好者来解释下 zkrollup?

我不指望以太坊的开发者会诚实地讲清楚其中的权衡,也不指望以太坊的粉丝真的明白它是怎么工作的。

(这是个严肃的问题哦)

@SomsenRuben:

用比特币的术语来说,就是一个大区块方案 —— 每个人都要下载额外的数据。在交易进入区块之前,一个中间人先使用一个 SNARK 证据来 聚合/压缩 所有的见证数据(witness,比如签名)(当前的 SNARK 需要使用受信任的启动设置),并发布新状态的 UTXO 集合承诺(也是用上述的 SNARK 证据来证明的)。

每个人都验证这个 SNARK,证明区块的有效性和 UTXO 集合承诺的正确性。没人必须生成 UTXO 集合,因为 SNARK 已经证明过了,只要你想,你就能生成出来。如果那个中间人失踪了,你只需使用 UTXO 集合承诺证明自己的状态即可动用资金。

简而言之,好处是你可以节约见证数据和计算量(都外包给了 SNARK 证据)。zkrollup 只是应用了我们一直知道的 SNARK 能做的事,可能差别只在于它用在了单独的一个 UTXO 集合上。

亦见我写的 SNARK 文章:SNARK 与区块链的未来。(译者注:下文有附。非常清楚地说明了 SNARK 能做的事,以及为什么 zkrollup 要把不含见证数据的交易数据发布出来。)

第二则(很长,请耐心):

链接:https://twitter.com/SomsenRuben/status/1420299197979504642

(略去两人对二层网络兴起会不会降低对一层区块空间需求的讨论)

@AdrianoFeria:

侧链不能提供与 L1 同样的安全性。Statechain 不是完全免信任的。我还没研究 Chaumian banks。

Plasm Network部署Matter Labs的ZKRollup Solidity合约:3月19日消息,Plasm Network创始人渡边雄太宣布团队已经成功部署Matter Labs的ZKRollup Solidity合约。[2021/3/19 19:00:23]

@bergealex4:

(侧链)当然不能,它从来也没说自己能。

你没法跨层复制 L1 的安全性。

“你没法跨层复制 L1 的安全性。”

这就是 ZK-Rollup 能做到的事。

好吧,即使我们接受这个前提,光凭这一点也不能让 ETH 优于 BTC。

就凭这一点,以太坊就有了一种扩容机制,可以保留 L1 的安全性,同时无需付出 开启/关闭 通道的开销,也不必承担闪电网络内在的数据可得性风险。

我们没法靠推特来讨论哪个系统在整体上更优。

无论如何,zk-rollup 是一个大进步,并且提供了比支付通道更大的好处。

ZK-rollup 和支付通道是不同维度的(orthogonal)。zk-rollup 就像扩大的区块(extention block) —— 非见证数据放到链上,并由每一个人(通过 SNARK,便宜地)验证。我可以理解为什么你们管它叫 “L2”,但从技术上来说,它其实不是。它只是做了非交互的见证数据聚合(NIWA)。看我的文章 《SNARK 与区块链的未来》。

它是个 L2,因为 SNARK 的计算是委托给另一个网络的。L1 只用来存储证明,结果是它提高了 L1 的吞吐量大约 100 倍。据我了解,它就相当于无损压缩。

“L2” 只是个标签。关键是我们同意这个过程里面 SNARK 做了什么 —— 非交互的见证数据聚合,这个也可以用在主链上(就是完全用在 L1 上,由矿工来做 NIWA),或者用在链中链上(就像 zk-rollup 一样,但它就是 “扩大的区块”)。

在比特币网络中,见证数据只占区块的 50%(跟以太坊不同),所以你最多只能获得 2 倍的效率提升(从区块空间的角度来看),而且这是假设了完美的 SNARK 技术;这个扩容效果很一般。即使运用了它,支付通道仍显然是有好处的。

Aztec公开为Reddit设计的扩容方案zkReddit,超过需求的4.6倍:8月3日消息,基于以太坊的隐私解决方案Aztec发布为Reddit设计的扩容解决方案zkReddit,超过Reddit要求吞吐量的4.6倍。

Aztec表示该方案兼容所有的钱包,符合各类和隐私相关的监管要求,下一个版本中将会实现144倍的吞吐量。但Aztec也承认该方案因为优先考虑吞吐量,所以存在一些权衡,包括延迟较高(32-rollup方案需要3分钟结算)以及客户端的计算隐私交易的证明生成时间需要最高至12至40秒。(Medium)[2020/8/3]

在 rollup 基础上再运行支付通道就不可能吗?

当然可以,这就是为什么我说他们不是同一个维度的。

(略)

是不是可以断言,它(zk-rollup)提高了 L1 的吞吐量,代价是增加了额外的计算量(在以太坊的情形下,由于当前的规范要求,验证者没法这么做)?而且,即使证据的提供者崩溃了,资金也仍然可以取回。

我那篇文章提出的 NIWA 概念解释了这种直觉。任何人都可以收集所有的见证数据(包括签名在内、证明交易合法性的数据)并 压缩/聚合 成一个 SNARK 证据。只需某人付出多一点,结果有益所有人。

资金总是可以取回的,证据的提供者也总是可以替换的。

我理解这些,但理想情况下,SNARK 的计算应该作为一项服务,由一个去中心化的网络来提供。这就是以太坊生态里面正在发生的事,而且我看不出为什么类似的东西对比特币来说就不可取。

它总有可取之处,但你过高地估计了它的好处(扩容效果最多只有 2 倍),也低估了它的代价(其数学原理未经考验、不使用受信任的启动设置就很低效,以及矿工的中心化)。

我确实相信有一天 SNARK 会成熟,会变得很有意义,但现在还没到时候。

普遍共识是,zkrollup 在以太坊上的扩容效果是 100 倍(这个信息在多个信息源中是一致的)。

为什么它对比特币就没有这样的效果呢?

我能想到的两个原因:

相比比特币,以太坊中的 witness 数据大得多,验证起来也更昂贵 —— 所以 SNARK 能更好地缓解以太坊的低效率。

Loopring首席技术官:zkRollup拥有以太坊层级的安全性:金色财经报道,在今日OKEx矿池与以太坊中国社区主办的ETH 2.0 AMA中,Loopring首席技术官Steve Guo表示,zkRollup是一种用于以太坊的可扩展性方案,通常是被定义为Layer 2的解决方案。它能处理更多交易,更快速并且成本更低。它在链下批量执行所有计算,并且只向以太坊提交一个小的零知识证明(不能是伪造的证明)进行验证。由于以太坊会验证这些证明,并且存储足够的数据来准确判断链下账户的状态,因此zkRollup拥有以太坊层级的安全性。零知识证明框架目前有好多种,路印协议最终选定了zkSnark作为背后的零知识证明框架,主要是因为zkSnark的证明数据大小是目前最小的,这就意味着链上成本能做到最低,同时生成证明所必须的链下计算成本也不高,技术框架本身也已经过ZCash多年的实践考验过的。整个方案的关键点就在于:区块链上只是负责存储数据和验证零知识证明,其余的计算处理都是通过在链下更改Merkle树的方式来实现,从而极大的减小对区块链资源的消耗,提升区块链的整体性能。又因为链下部分有链上验证的辅助,所以也能确保链下处理资产的安全性和正确性。从而达到在不牺牲区块链带来的安全前提下,提升区块链的整体性能。[2020/6/17]

地址重用进一步减少了非见证数据 —— 对比特币来说,这种隐私上的牺牲也是不太可能被接受的。

我的主张是很容易推理的:

SNARK 只能减少见证数据

比特币的见证数据大约占区块的 50%

只要你理解这些,你就不需要 “相信我是个专家”,但 100 倍的说法,实在是很难推理出来。

我没有在任何地方看到有人挑战这个 100 倍的说法。我假设 zkrollup 的技术设计可能稍微不同于你用比特币来举的例子,以及/或者 跟 UTXO 或比特币脚本的限制有关。

我不会那么快就开始假设。“别信任,自己验证”。

总的来说,我也建议你不要为某种主张辩护,除非你有非常强的信心。谦虚一些,http://www.paulgraham.com/identity.html

所以我也欢迎对这个说法的技术上的挑战呀。基于一个事实:它已经被许多著名的开发者引用,也广为流传,也没有被挑战,偏向这个陈述是合理的。Rollup 已经快集成好了,证据就在眼前。

公告 | 路印上线基于zkRollup的最新一代去中心化交易平台网页版:路印上线基于zkRollup的最新一代去中心化交易平台的网页版,该版本基于路印协议3.1.1,定位为公测Beta1。(路印Loopring)[2020/2/28]

你需要务实地遵守这个 “别信任,自己验证” 的信条。相信某些东西,而不是自己验证每一件事,是有理由的。比如:

相信 SHA-256 运作良好

相信公钥密码学

为客户端创建二进制未见得编译器是有效的

我只不过给了一种你(应该)可以验证的,比特币无法靠 SNARK 实现两倍以上扩容,的证明。

从这个角度看,说以太坊可以实现 100 倍扩容的主张至少可以开始怀疑。

如果这还不叫 “验证”,那我也不知道什么是。

我一直没法完全消化这一点,但这篇文章看起来与你用比特币来描述的情形完全不同。你有什么评论吗?https://medium.com/interdax/ethereum-l2-optimistic-and-zk-rollups-dffa58870c93

文章里列举了许多扩容方案,但就我所知,除了 zk-rollup,其它方案都已经被以太坊社区抛弃了。

但相比之下,我更了解比特币。如果你对我的文章有什么疑问,我很乐于帮你解答。这也会间接帮你了解以太坊。

Vitalik 刚刚发布了这篇文章,我还没来得及看,但它似乎讲解了许多技术设计上的细节,以及各种类型的交易能压缩多少数据的细节。《Rollup 不完全指南》

好文章。所以我的两个理由都是对的,但现在我更理解这个 100 倍是怎么来的了。在以太坊中,空间和计算量都要消耗 gas,但前者的 gas 成本更低。因为 SNARK 将计算量降到了接近 0,所以所有的 gas 都可以用来发布数据。缺点是什么?区块变得更大。

区块是变得更大了,但这是我知道的对存储空间最有效率的用法。

另外,这篇文章也证明了,一笔普通的交易可因此节约 10 倍空间。所以,这说明 rollup 比你用比特币来描述的情形有 5 倍的效率优势。这可不小了。

动态 | 路印协议在以太坊主网启动采用zkRollup对以太坊进行扩容的DEX:路印协议LOOPRING宣布启动Loopring v3上的首个DEX,同时也是首个采用zkRollup对以太坊主网进行扩容的项目。[2019/12/23]

你忘了第二个代价,地址重用,这是个很严重的隐私降级。你也可以为比特币引入这样的反向升级来节约区块空间,以前也有人提议过,但大家以很好的理由拒绝了。

我看不出地址重用怎么就是专属于 rollup 的问题,而且这个问题也可以通过专门设计的提高隐私性的智能合约来缓解。而且,钱包就不能每次收银都使用一个新地址、模拟 UTXO 的隐私性吗?

关键在于地址重用就是他们缩小交易体积的办法呀。如果你为每一笔交易都使用一个新地址(以及找零地址),那 zk-rollup 的交易体积会大得多。

(这场讨论中还有其它旁生的讨论,在此不附)

(译者注:不知道读者还记不记得 zk-rollup 的扩容效果是怎么论证出来的。简单来说,它是假设一笔普通交易在主链上发生要消耗 X 单位 gas,而在 zk-rollup 上发生只需消耗 Y 单位 gas,所以扩容效果是 X/Y。换言之,所有的论证都基于不同操作在以太坊上的 gas 定价,但是,gas 并不是一种真实的资源,它只是一种虚拟的单位并假设了不同的资源的代价可以化约到一个指标。假如你现在把 calldata 的 gas 定价下调一倍,zk-rollup 的扩容效果就可以提高一倍(EIP-4488 和 4490 正有这样的意思)。这不是有点儿戏吗?相反,Somsen 对 SNARK 扩容效果的论证更接近于技术本来的面目,它就是节约见证数据(以及理想情况下,节约验证计算量)而已。

另外,zk-rollup 也确实有地址重用的问题(见这篇文章)。Adriano 所谓的模拟 UTXO,每次都使用一个新地址的办法,不是不行,但在以太坊的世界里不是一个良好实践,因为所有的历史地址都会留在状态中,变成节点的负担,这就是所谓的状态爆炸问题。

下面,是 Somsen 的文章)

作者:Ruben Somsen

来源:https://medium.com/@RubenSomsen/snarks-and-the-future-of-blockchains-55b82012452b

SNARK(succinct non-interactive argument of knowledge,简洁的非交互式知识证明)常被认为是 “解决” 扩容问题的灵丹妙药。虽然 SNARK 可以提供难以想象的好处,但我们也要知道 —— SNARK 无法解决区块链当前面临的带宽约束问题。

本文希望能通过(相对)简要地介绍 SNRAK 能为区块链做什么和不能做什么,来揭开 SNARK 的神秘面纱。我们会先谈谈,为什么它与区块链有关的功能可以被简洁地归纳为 “非交互式见证数据压缩(NIWA)”。只要你知道比特币是怎么运行的,你就能理解这篇文章。

应当指出的是,SNARK 在很大程度上仍然处于活跃的研究阶段。许多 SNARK 的变种,要么效率不足以至于无法证明复杂的语句(statement),要么证明的体积非常大,大到不切实际,要么需要一个受信任的启动设置(trused setup)。也就是说,虽然这几年我们看到了许多进展,预计未来数十年我们还将看到更多。本文的写作对这些进展有预期,即使它们今天看来可能不实用。

SNARK 是一种技术,让你可以在给定一个规则集和一个起始状态时,高效地验证一个结果。导致这个结果的输入是不公开的(“零知识性”)。听起来一头雾水?我们拿象棋举一个简单的例子的好了。

象棋案例

规则:象棋规则

起始状态:棋盘的起始局面 A

结果:棋盘的新局面 B

证明棋局从局面 A 到局面 B 是有效转换的传统方法是公开每一个步骤并检查每一步是不是都有效。SNARK 也同样能用来检查状态转换的有效性,但效果更好:

步骤不必公开(隐私性、节约数据)

验证在计算上更高效

但有一个问题 —— 创建 SNARK 的计算成本很高。不过,在一个许多人都想验证同一个结果的系统(比如区块链)中,使用这种技术可能仍是值得的。只需要一个人花力气来创建 SNARK,就能提高所有人的验证效率。

区块链案例

规则:全节点软件

起始状态:时间点 A 的区块头和 UXTO 集合哈希值

结果:时间点 B 的区块头和 UTXO 集合

类似于我们上面提到的象棋,验证状态转换有效性的常规方法是:从时间点 A 的 UTXO 集合(所有未花费的交易)开始,接收截至 B 点所有的区块并更新 UTXO 集合。有了 SNARK,那就不需要这些数据来证明有效性了。实际上,如果时间点 A 被设为创世区块(空的 UTXO 集合),而时间点 B 被设成现在,那么无需接收任何历史数据就能验证整条链。

重要的是,你需要 B 点的整个 UTXO 集合,而关于 A 点你只需要知道 UTXO 集合的哈希值。虽然这个数据不是证明有效性严格必需的,但我们也关心 可得性。如果你总是只能拿到 UTXO 集合的哈希值,那即使你知道一个有效的状态存在,你也不能知道那个状态究竟是什么。也就是说你没法花费任何资金,因为你没有数据来证明某个 UTXO 属于当前的集合。如果以象棋为类比,那就是你知道了一个新局面的哈希值,但你并不知道那个局面到底是怎么样的,所以也没法继续玩这个游戏。

记住,无论是谁来创建 SNARK(假设是矿工)都要具备这个数据(结果 UTXO 集合)(因为这是创建 SNARK 必需的),但他们可能会选择扣住数据,不发给你。

为了保证每个人都会花费自己的钱,更新 UTXO 集合所需的所有数据都必须与每个区块一起传播。你还是要知道哪些 UTXO 被花费了(即输入)、哪些 UTXO 新产生了(输出)。这就是所谓的 “非见证数据”。

状态转换的有效性可以靠一个 SNARK 来验证,因此 SNARK 可以取代所有的见证数据(脚本、签名),而且几乎不占用带宽。输入和输出之间的关联将被抹消 —— 一个区块看起来就像一笔很大的 coinjoin 交易一样。大部分数据都是非见证数据。

所以,与大众的想象相反,SNARK 无法解决轻客户端或者非联盟侧链背后的根本问题,因为你必须下载非见证数据。如果非见证数据丢失,全节点有能力拒绝一个有效的 SNARK;但如果一个轻客户端疏忽于下载非见证数据,它可能会错误地认为一个数据丢失的链是有效的。即使非见证数据的一小块被矿工扣住了,其他人也就没法在有效的 SNARK 上创建新区块 —— 最终它会变成一个许可型系统。

用于区块链的 SNARK 最好的总结可能是,它可以启用一种功能:非交互的见证聚合(NIWA)。

我在这里使用 “见证” 一词是比较随意的。在比特币中,见证数据是放在交易中、用来证明具体的 UTXO 是否能够合法创建出来的数据。但随着时间推移,这个 UTXO(非见证数据)也会变成自身的见证数据,在它被花费的时候。假设 1 btc 从 Alice 转给了 Bob 又转给了 Carol,Bob 的交易就是从 Alice 到 Carol 的转账的见证数据。同样地,创世块以来的所有支付交易,都是当前 UTXO 集合的见证数据s。

同样要指出的是,一个 SNARK 自身就是一个见证数据。如果每一笔交易都由一个 SNARK 来验证,我们也可以将这些 SNARK 都聚合(NIWA)在一起、为区块生成单个的 SNARK。而且,因为输出在花费时会变成见证数据,我们甚至可以在交易池中取出未上链确认、但已经被花费的输出,并聚合它们。Alice 转给 Bob 再转给 Carol 会变成 Alice 转给 Carol,实现非交互的交易合并(transaction cut-through)。当带有许多链外交易分支的单个 UTXO 被强制上链时(比如闪电网络通道工厂),这种功能特别有用。

我们已经用 NIWA 概念总结了 SNARK 为区块链提供的核心功能。任何见证数据都可以被一个 SNARK 非交互式地聚合在一起。而剩下的非见证数据就是对系统状态(UTXO 集合)的直接反映。虽然 SNARK 可以实现一些神奇的功能,比如直接下载一个 UTXO 集合和一个 SNARK 就从创世状态跳跃到最新状态、非交互式地将未上链交易的序列聚合为单笔交易,但我们还是需要为每一个新区块发布所有的非见证数据,以使所有的全节点都能更新他们的 UTXO 集合。因此,SNARK 无法解决区块链面临的带宽根本约束。

感谢 Sanket Kanjalkar 富有教益的讨论和评论。

- NIWA 在行动。SNARK 消耗 witness,但自身也是一个 witness。所以 SNARK 可以吞吃 SNARK -

标签:NFTNARCRYPCRYFYZNFT币DigiDinarNo BS CryptoCryptoCoinPay

Pol币热门资讯
区块链:噬血者瓜分元宇宙_元宇宙概念是什么意思时间空间

“Me——ta——verse。”嘴唇与牙齿摩擦几下,似咬非咬间轻快吐出四个音节:Me——ta——verse。读的时候最好下巴还要抬高,会更有味道。这是林杨在和我们聊起元宇宙时的形态.

区块链:新闻周刊 | 中国区块链专利申请量位居全球第一_ACE

金色周刊是金色财经推出的一档每周区块链行业总结栏目,内容涵盖一周重点新闻、矿业信息、项目动态、技术进展等行业动态。本文是其中的新闻周刊,带您一览本周区块链行业大事.

区块链:全面解析NFT发展简史、价值及未来_区块链存证平台法院

导语 今年被称为 NFT 的“元年”,Uniswap一双袜子卖16万美元,推特创始人五个单词拍出250万美元.

ASH:以太坊社区的研究者们如何看待 MEV?_Bitcoin Vcash

EthSign 创始人闫欣、HashKey 研究员曹一新、以太坊研究者姚翔、DODO CEO 雷达熊分别从各自角度分享对 MEV 的看法.

ETH:详解以太坊 2.0 质押协议 Lido 业务机制、生态进展与经济模型_区块链域名是什么意思

Lido 是一个以太坊 2.0 质押服务平台,用户可质押任意数量 ETH,并 1:1 获得质押代币 stETH,参与 DeFi 市场其他服务.

TET:P2E 经济:Web3 游戏的基础层协议_eth官网查询地址

游戏中的玩家留存率是最重要的东西。尽管如此,游戏发行商还是以牺牲玩家价值和福利为代价来优化公司利润。他们之所以能够做到这一点,是因为他们拥有端到端所有权,并控制着游戏的开发、发行和管理.