38

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

 5 years ago
source link: https://www.jinse.com/blockchain/334356.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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完成。

FJrmumI.jpg!web

  • 一些历史:将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根。

zYJJnmU.jpg!web

  • 用户发送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分钟)

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

MzuqMry.jpg!web

  • 快速探索用户何时想要在分片之间转移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可扩展的以太坊区块链作为数据层


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK