V神对Rollups的想法及以太坊1.0和2.0中的第2层解决方案相关的数据可用性问题思考

Vitalik最近提出了他对Rollups的想法以及与Ethereum1.0和2.0中的第2层解决方案相关的数据可用性问题。他的演讲包含了一些引人入胜的结构,可能会进一步从团队中进行迭代。这是一个至关重要的研究领域,因为对于希望增加用户群的项目来说,仍然非常需要信任最小化的区块链扩展机制。如果你有时间我建议听完整的演讲。

以前的研究

本次演讲所依据的基本概念首先出现在Vitalik于2018年8月发表的文章中,将可用性引擎availability engines归功于Justin Drake。2018年9月,一个扩大该主题的ETHresearch帖子得到了重要讨论。在2019年1月,EF研究人员和Matter Labs之间的合作在Rinkeby测试网上产生了一个名为Ignis的概念证明。这是团队的原始帖子和Trustnodes访谈/演示。

以下是Alex Gluchowski和Kent Barton在ETHDenver 2019上的精彩演讲,详细介绍了Rollup机制:零知识缩放Scaling With Zero Knowledge。对于SNARK和STARK之间的差异也有很好的探索。

最后,由于EF资助,看起来Matter Labs继续通过snark进行扩展工作,请查看此处的公告以及更多资源。

我在下面输入了Vitalik演讲的粗略记录,试图捕捉每个部分的精髓。希望人们觉得这很有用。

背景/MASTERCOIN

这是一种新的L2结构,与可扩展性(plasma/state channels)的L2不同,它使用BC作为数据存储而非计算的场所。计算可以用zk-snarks完成。

  • 一些历史:将Mastercoin视为BTC之上的元协议。为解释tx定义一组不同的规则。BTC是数据存储,但不是状态执行。特殊tx可以用flag表示。

  • Mastercoin的缺点:客户端不够轻(需要BTC区块链和Mastercoin节点)。MC协议中的活动不会影响BTC链,这限制了整体功能。

  • 现在我们有ETH 1.0,很快我们将获得ETH 2.0,我们能做类似于Mastercoin的事吗?

ZK ROLLUP

ZK汇总(not ignis, not ignis plasma)可以在今天提高30倍的可扩展性,将来会更高。工作原理:Onchain合约只存储一个值:merkle树的merkle根。

  • 用户发送txs,由一个叫做中继者的特殊actor调用并设置zKsnark。发布以前的状态,新状态,其中包括捆绑在一起的交易。

  • 这与Plasma相似吗?(两者都是持有merkle根的合约)不同之处在于Plasma需要复杂的退出游戏/退出期以便处理恶意操作员的可能性(数据可用性)。

  • zK Rollup没有数据可用性问题,因为所有交易都发布到链,没有签名。

  • 每个发布13个字节X每个字节68个gas=884个gas,当前简单tx的当前成本为21k

  • zKsnark证明了tx的有效性,而不是让ETH主链验证每个签名交易。计算和存储被移除。Merkle root留在链上。这避免了central actor/relayer。因为数据是在链上发布的,所以任何人都可以验证。

  • 这可以通过不包括nonce来改进,删除2个字节(每个字节11个字节每字节X gas气体= 748个gas)

  • 注意:即时存款和取款。提款:coin从他们的merkle分支转移到主链,然后是merkle root更新。存款将是相反的,但另外为用户提供帐户ID。可能会有很多漂浮在周围。

  • 这种结构可以相对安全地将简单付款从15 tx/s增加到500 tx/s

  • 斯坦福1.x研讨会(youtube视频)的一个结果是,与其他业务相比,数据价格过高。尽管存在对状态的担忧,但向块大小添加1kb并不会使事情变得更糟。在Istanbul可以减少简单tx的gas成本,从而将ETH1.x的吞吐量提高到1000 tx/sec以上。

进一步采取行动

Rollup应该能够支持更复杂的状态转换,包括Uniswap,高性能交换,多个token,隐私保护计算,ENS等,所有这些都使用SNARK + publish tree details范例。

ZK ZK ROLLUP(Bose–Einstein condensate)

  • 基本思路:采用ZK汇总但内置迷你版zcash。(关于zCash的入门:用户发布txs,SNARKs说“我有一个有效的支出证书,用于该状态的一些coin哈希。这是一个新的coin哈希”

  • zCash,续,用户有加密S,coin哈希:h(s+1),支付证书:h(s+2)。SNARK证明支付证书属于现有coin,但不属于哪一枚。验证功能还应检查尚未显示支出证书。

  • 转发者不会发布tx,它会发布收据(105字节X 68 gas=每 tx 7140 gas)。在这里我们放置一个SNARK来验证包含的每个单独的tx是否附加了SNARK(一级递归)。验证SNARKs onchain,它需要500k gas。

BEACON CHAIN - 第1阶段

  • 如果我们想做更多的事情怎么办?输入ETH 2.0的Beacon Chain第1阶段。作为仅数据链的分片链意味着2.8 MB/秒的数据可用性。

  • 每个zK zK汇总是105字节/意味着27k隐私保留交易/秒,如果完全消耗2.8 MB。如果我们不关心隐私,则27k增加10倍。

  • get rekt scamcoins LOL VB 甚至无法选择哪个是TPS声称的最差。

  • 障碍是这些系统依赖于数据和计算(虽然数量很少)。ETH 2.0(阶段1)没有计算但有大量数据,而ETH 1.0有计算:让我们桥接两者。

ETH2在ETH1轻客户端

  • ETH 2.0研究团队花了很多时间使2.0体系结构轻松客户端友好。

  • 当持久委员会切换时,每9天需要80kb的merkle分支(也可以在9天内分摊),每个头部加500字节。

  • 在ETH1客户端需要BLS-12-381预编译。 ETH 1链可以是挂钩到2.0链的计算层,要求在2.0链上发布用于汇总模式的数据。

其他用于可扩展数据可用性的引擎

Plasma具有更频繁的承诺,Dapps存储链上的消息,具有独立(“主权”)状态转换功能的区块链协议搭载在以太坊上用于数据可用性。

加快跨境交易

  • 当前分片设计的弱点:分片之间的通信有延迟(等待交联,~6分钟)

  • 解决此延迟的粗略建议是允许一个分片看到另一个分片的根的机制。这可能在大多数时间都有效。

  • 快速探索用户何时想要在分片之间转移token:他们可以将tx发布到带有root的智能合约(包含预期的token转移),以及保证金。

  • “碎片的merkle root是0x12345,如果这个说法错了,我同意失去100 ETH(押金)”。

  • 在存储令牌余额的注册表的上下文中,发布100个ETH存款的用户(在等待x-shard交易通过时)然后将其余额更新为条件状态:如果状态根声明是正确的,我有x+转移amt ,如果不正确我只有原始金额(减去没收的ETH保证金)。

  • 将其视为SC内部的量子叠加(存储两种状态/两种可能性)。只有当合约通过交联才能知道原始碎片的状态根时才解决。

  • 然后可以在用户之间传递这种叠加,而不需要他们知道(钱包会显示乐观的值,直到约6分钟后才会发送交联)。

一般用途隐私

ZEXE:基于UTXO的系统,可以保护隐私。

第2层计算的好处

  • 从哲学上讲,第1层不需要过于复杂来优化属性,块时间,x-shard通信,x-shard同步消息支持,隐私等。

  • 从理论上讲,ETH 2.0阶段3可能永远是足够的,不需要超级二次分片。

  • 例外情况是增加分片或更新加密。

  • 其他区块链已经提出了这个主张,但实际情况是,一旦你拥有可扩展的数据可用性和足够的表现力,至少要验证zKSnarks和状态转换(功率和复杂性的最低阈值),你可以在顶部建立所有必要的L2。

  • L1可能变得越来越难以改变,但如果它们处于可扩展数据可用性之上(2.8 mb/sec),这对计算L2来说是好的。

问题交流

问:L2内容是否排除了使用完整语言不适用于zKsnarks?

TC的数学定义与加密社区的含义有所不同。数学:TC意味着计算机。这是如此笼统,你不能告诉计算何时停止(Snark需要事先知道)。

加密:使用TC意味着表达足以使应用程序具有复杂的内部状态(plasma,makerdao,uniswap,这些L2的验证引擎)BTC不能做这些事情,ETH可以。ZEXE是基于UTXO的模型,但也可以。

TC是错误的词,但是你可以做一些足够表达的事情来构建zKsnarks中的应用程序。

问:我们是否应该担心熊市期间30%的哈希率损失?

这是一个问题,但不是真正需要担心的事情。ETC(以太坊经典)遭到攻击,但只有3%的ETH链哈希值。如果它成为一个重要的问题,那么第0阶段可以用作1.0链POW客户端的终结机制。然后,51%的攻击只允许审查块,而不是恢复块。

问:基础层和应用层之间的去中心化程度总会存在竞争。数据可用性和SNARK总是mean集中化?[部分听不见]

这个新的L2类非常有趣,不需要解决数据可用性问题。集中化可以减少。比较Plasma和Rollup:plasma数据可用性问题意味着需要有一个actor,如果恶意,他可以浪费用户2周的coin锁定时间。如果转发者消失,Rollup没有数据可用性问题,另一个可以迅速取代他们的位置。可能的伤害减少,像Rollup这样的L2是解决方案的一部分。

问:在进行跨域通信时,你是否正在考虑两阶段提交协议[听不清]?

合约yanking有助于解决火车和酒店问题。(与不同分片上的2个对象进行交互)ETH链是否应支持L1上的同步?不,它引入了太多的复杂性。

现在,在两个交联之间,你可以计算分片中的状态转换,作为分片和信标链中数据的函数。不依赖于其他分片中发生的事情。

具有同步交叉分片调用会破坏此不变量,使状态计算游戏变得更加复杂,尽管你可以实现类似Rollup的L2,这将有助于支持同步交叉分片调用。

问:“第三方”L2解决方案(Celer)与其他以太坊L2解决方案之间的关系是什么?

Celer是一个提供自己的数据可用性解决方案的L2,Plasma也是这样做的。Rollup执行计算offchain并在链上处理数据可用性。有不同的权衡。

youtube视频

google幻灯片

汇智网原创翻译,转载请标明出处。这里是transcript可扩展的以太坊区块链作为数据层

本文来源: momoshui 文章作者: 佚名
    下一篇

文末附有防御措施~