此刻正在阅读这篇文章的你一定已经听说过optimisticrollup了吧。它是一个前途无量的新型扩容方案,在2019年的DevCon上引发了热烈讨论。目前已经有很多文章解释了该技术的工作原理,却没有一篇文章来解释其背后的?原因。这就导致有很多团队都在尝试用自己的方式来实现optimisticrollup,这种各自为政的开发模式通常不利于整个加密货币经济系统的安全性。
本文聚焦于那个被大众忽略的问题:解释optimisticrollup为何能以安全且可持续的方式实现扩容,同时又能保持去中心化的特性。
何为OptimisticRollup?
我在2019年6月撰写了?optimisticrollup?的首个最小可行规范,为我早些时候与?Mikerah?合著的论文《构建可扩展的去中心化支付系统》提供了一个具体的参数化高级规范。该规范旨在实现区块链发展史上的第一条具有免许可性和可扩展性的免信任型侧链。
-我说的“rollup”不是可以吃的这种-optimisticrollup的运作方式如下:任何人都可以在无需许可地提交一个侧链区块,将整个区块作为有待验证的调用数据发布到链上,并交纳保证金。一个新的侧链区块只能链接到侧链的末端,由链上合约进行追踪。一段较长的时间过后,侧链区块会被确定下来,之后就会退还保证金。从侧链中取款回到主链上的操作要在侧链上发起,只需提供对一个已确定的侧链区块的非交互式包含证明即可。如果一个侧链区块是无效的,且还没有得到最终确认,只要提交我来解释下:为什么要这么设计OptimisticRollup?
事实证明,optimisticrollup和之前的扩容方案之间存在一些细微差异,使前者成为了最有前途的短期至中期扩容方案,让后者成为了历史。这一节会介绍这些重要差异背后的成因。
稳定币crvUSD科普创新清算机制LLAMMA,可在抵押品价格下跌时逐步替换为稳定币:1月17日消息,Curve官方科普其稳定币crvUSD创新的清算机制LLAMMA,解释了LLAMMA通过AMM的特性进行针对债务人更友善的清算方式,让抵押品在价格下跌时逐渐转移成稳定币,让原本要清偿的债务有一定程度的稳定币可以偿还,同时在价格回稳时再逐渐把稳定币换回抵押品,而不是直接的触发清算导致债务人的亏损。
此前报道,2022年11月23日,去中心化交易平台CurveFinance开发者发布Curve即将推出的去中心化Stablecoin“crvUSD”的官方代码和白皮书。[2023/1/17 11:17:13]
合并共识
optimisticrollup最突出的一个特点是
合并共识。合并共识是一种可在链上验证的共识协议。但什么是去中心化共识协议呢?
去中心化共识协议包含以下几个相互独立的功能:
分叉选择规则
区块有效性函数
领导者选举算法
抗女巫机制
上述功能保障了区块链的经济?
安全性?:操纵历史是要付出代价的。(注意:为了简单起见,这里我忽略了一些事实,例如,
一些去中心化共识协议是无领导者的)。
在optimisticrollup方案中,侧链是不会出现分叉的,因此不需要分叉选择规则。区块有效性是在链下计算的,而且可以在链上用错误性证明来证明其不正确性。剩下还有领导者选举和抗女巫攻击的问题需要解决。
我所提出的规范提议采用“先到先得”机制,即在任一高度上,延长侧链长度的首笔交易会被采纳。领导者选举是隐式的,而且事后才会见出分晓,而抗女巫攻击是通过主链实现的。如此简单的领导者选举规则为何能起到作用?因为以太坊区块链已经提供了安全性。只有出现以下三种情况之时,才能将侧链上的某个区块变成孤块:1)该区块是无效的;2)该区块的某个祖先区块是无效的;3)以太坊区块链发生重组。因此,有效的区块也具备与以太坊同等程度的确定性和安全性!因此,我们不需要复杂的领导者选举算法,或是成本高昂的抗女巫攻击机制来保障安全性。侧链无需付出额外的成本即可获得安全性,因此我们可以极大地简化系统参数的设置。
TRON数字钱包科普资料《波场钱包的现在过去与未来》已上线:据最新消息显示,由TokenPocket联合波场TRON官方,以及 TokenPocket 社区志愿者共同撰写的《波场钱包的现在过去与未来》已正式上线。《波场钱包的现在过去与未来》又称为波场钱包小白书,详细介绍了当前TRON钱包与TRON生态密切结合的实例,是目前市面上最为详细的TRON数字钱包科普资料。波场钱包作为波场公链生态中极为重要的入口,是波场生态的重要构成要素。波场钱包从一开始只提供权限管理、转账收款、节点投票等基础功能,到如今不仅可以为用户提供法币交易、闪兑和去中心化交易所等方便快捷的交易服务,还能让用户直接在钱包上体验波场上DApp,挖矿、DeFi、Staking等资产增值服务。详情见原文链接。[2020/8/20]
但是,如果我们想要一种能提前知道领导者的方案,该怎么改造呢?一个建议是,可以在链上运行PoS+RANDAO来进行领导者选举。这种情况下,并不需要纳入另一种代币,否则还会产生负面影响。正如比特币白皮书中所言:
如果一个贪婪的攻击者所拥有的CPU算力超过了所有诚实节点的算力之和,他就能选择发动双花攻击,或是生成新的代币。他理应发现遵守规则对自己最有利,因为相比于破坏整个系统以及伪造个人资产来说,遵守规则能让他获得比其它矿工加起来都多的区块奖励。
正如中本聪所说,原生代币的全部意义就是激励“诚实的大多数”来保护整个系统。在optimisticrollup中没有所谓“诚实的大多数”,也没有独立于主链的安全性概念,因此完全没必要再纳入一种原生代币,否则非但不会有任何助益,比起仅使用以太币来说更不方便。
要注意的是,只要是完全在链上运行的领导者选举机制都可以采用,不仅限于我在本文推荐的那些。例如,烧毁证明就是其中之一。
optimisticrollup虽然与延迟状态执行和影子链等提议有诸多类似之处,但是一大关键的区别在于合并共识的概念。optimisticrollup的共识协议是完全在链上的智能合约之内运行的;因此,它不会影响到主链的共识规则,也不需要得到其支持。相较之下,延迟状态执行和影子链实行的是链上自动状态转换,需要得到主链共识协议和协议内奖惩机制的明确支持。
人大附中物理老师李永乐科普拜占庭将军问题和区块链:5月14日,人大附中物理老师、科普视频网红李永乐在其公众号发布视频《拜占庭将军问题是什么?区块链如何防范恶意节点?》。李永乐老师在视频中对拜占庭将军问题和区块链进行了讲解,他表示,拜占庭将军问题本质上指的是,在分布式计算机网络中,如果存在故障和恶意节点,是否能够保持正常节点的网络一致性问题。在近40年的时间里,人们提出了许多方案解决这一问题,称为拜占庭容错法。例如兰波特自己提出了口头协议、书面协议法,后来有人提出了实用拜占庭容错PBFT算法,在2008年,中本聪发明比特币后,人们又设想了通过区块链的方法解决这一问题。区块链通过算力证明来保持账本的一致性,也就是必须计算数学题,才能得到记账的权力,其他人对这个记账结果进行验证,如果是对的,就认可你的结果。与拜占庭问题比起来,就增加了叛徒的成本。[2020/5/14]
可持续扩容
现在我们已经明白optimisticrollup是如何通过合并共识实现免许可性及其背后的原因了,那么它是如何实现可持续扩容的呢?
在撰写本文之时,未压缩的以太坊状态大小在45GB左右。不同于历史数据,状态是不能够被删除的——必须由全节点完整地保存下来,以便验证新区块中的新交易。更糟糕的是,为了验证交易,必须对状态进行很多次随机访问,因此需要将状态存储在RAM——大多数消费级硬件都达不到这个条件——或一个快速的NVMe固态硬盘上。状态增长是以太坊遇到的最大的扩容瓶颈。
我们当然可以为状态大小设定一个硬性上限,这样就可以不用担心状态增长问题了,真正的解决方案是实行状态租赁机制,持续向状态的使用者收取费用。然而,在以太坊上部署该机制比想象中更为困难,已经被无限期推迟了。
有一个很实用的解决方案,可以通过减缓状态增长的速度来解决这一问题。zkrollup?推广使用的:将侧链交易数据作为调用数据发布到主链上,然后使用有效性证明或错误性证明来确保该数据的正确性。结果证明,存储历史数据的成本比存储状态要低得多。之后,可以通过主链来确保数据可用性,追踪rollup链的区块头,处理存取款,并验证有效性证明/错误性证明,这些都不需要大量使用状态。通过减缓状态增长,扩容就可以实现长期可持续性。Vitalik之前写过一篇很好的文章,总结了如何将链上数据可用性运用到zkrollup和optimisticrollup上。
声音 | 浪潮集团云南分公司总经理:云南区块链产业发展需从“科普”到“专精”不断深化:据昆明日报消息,浪潮集团云南分公司总经理郑昕表示,云南区块链产业发展需从“科普”到“专精”不断深化。下一步,浪潮将继续加大云南农业产业高质量发展体系建设力度,重点以普洱茶等云南优势产业为切入点,打造云南“绿色、有机农产品高地”的品牌形象,并在此基础上,开展基于区块链的供应链金融服务,解决中小企业贷款难、贷款贵问题。[2019/11/11]
要注意的是,虽然有人指出影子链是完全等同于optimisticrollup的,这显然是不对的。
现在,我的想法是创建一条完整的“影子链”,把计算放到链下进行,但是会在生成100个区块之后向主链提交状态转换的承诺。预言机可以将新的区块添加到这条链的末端,其中每个区块内都包含一个由交易组成的列表和一个由这些交易引发的状态转换?,...]?组成的列表。一个区块生成之后,会有一个长达100个区块的挑战期,在此期间都没有遭到挑战的话,状态转换会被自动应用到主链上。
除了未被明确定义,影子链还会自动在链上执行状态转换,不会促进状态增长。optimisticrollup不会执行任何状态转换,除非有用户为此付费。
非交互性FTW
对于optimisticrollup来说,非交互型错误性证明非常重要。为什么?
非交互型错误性证明之所以如此重要,是因为要避免?PlasmaCash?存在的缺陷之一,即,针对无效历史的交互型退出挑战机制。这种交互型多步骤挑战机制导致PlasmaCash?对链拥堵攻击的抵御能力较低。所谓的链拥堵攻击指的是攻击者为了窃取Plasma合约内的全部资金,向主链发送大量“退出”交易。只需要一个非交互型错误性证明就可以将任意数量的无效optimisticrollup区块变成孤块,使系统更能抵御链拥堵攻击。注:由于optimisticrollup使用了错误性证明,如果主链不具备抗审查性的话,依然存在资金遭窃的风险。
金色财经独家分析 监管机构、媒体、业界提示风险 区块链科普道阻且长:新华社今日发文表示,近来“区块链”类案件频发,不法分子以“投资虚拟货币周期短、收益高、风险低”为借口,取用户信任并诱使其转账进行投资。无独有偶,同日消息,腾讯手机管家安全专家也提醒此类风险,并从技术上提出防建议。在美国,监管机构警示加密货币欺诈现象普遍承诺高收益而不披露潜在风险。金色财经独家分析,不法分子假借新技术之名进行,一方面是抓住民众趋利的心理,一方面反映出区块链科普的欠缺。区块链是新兴科技和底层技术并有改变社会生产关系的潜力,应该进行系统性的科普教育,当前,部分大学已经开始设置了区块链课程,但对于普通民众仍然有科普的需求,人们应该了解到系统和正确的知识,不仅要了解区块链的好,也要明确局限和弊端,以在高收益的诱惑下,保持清醒客观。[2018/4/11]
在optimisticrollup中,提款也是通过非交互型的方式处理的:先是在侧链上发起提款,然后针对主链上一个已得到最终确定的区块生成非交互型包含证明,再利用这个证明来完成提款。然而,这就要求侧链具有免许可性,因此需要的是合并共识,而非一个类似于Plasma的运营方。
相比交互型验证游戏来说,非交互型错误性证明更有优势。交互型验证游戏所需的时间比较长。鉴于optimisticrollup是不会产生分叉的,攻击者可以生成一个无效的区块,利用验证游戏造成侧链停摆,从而对系统发动DoS攻击。有了非交互型错误性证明,就可以立即证实欺诈行为。
交易延迟问题
Optimisticrollup并不会降低交易延迟。每一个侧链区块都需要被提交到主链上,因此出块时间不会低于主链。除了使用足额质押的状态通道之外,
暂无其他安全且免信任的方式可以减低这种延迟。
不过,你不一定要等到侧链区块得到最终确定之后才接受它的交易。由于optimisticrollup不会产生分叉,成功上链的有效区块必然会得到最终确认,而且该区块的所有数据均可获得,用户可以执行客户端验证,立即接受该区块内的交易。
乍看之下,取款延迟似乎也是个问题,但事实并非如此。通常情况下,用户不需要等待其提款得到最终确认。事实上,较长时间的挑战期主要是为了确保加密货币经济安全性,一般来说都不会用得上。一种能够立即取款的简单方法是,在主链或另一条链上与流动性提供者进行原子交换?。
-Optimisticrollup可以让你在无需支付gas费用的情况下实现即时交易!-
数据可用性挑战
我
一开始的论文提出了解决数据可用性问题的三种方法:
始终将所有数据都发布到链上
利用数据可用性挑战,只在必要之时将数据发布到链上
利用数据可用性证明
数据可用性挑战似乎是个比较简单靠谱的解决方案。遗憾的是,如果是由被攻击方来负担挑战费用的话,他们就会蒙受损失;如果是由攻击方来负担挑战费用的话,整个系统就会每时每刻将所有数据都发布到链上。因此,在设计规范之时,optimisticrollup的选择是始终将所有数据都发布到链上,并以高效率低成本的方式来实现。不过后来,在?
optimisticrollup上使用数据可用性证明也变得可行了。
进一步改进
我已经基于
最小规范的初始版本撰写了性能改进方案,并总结如下。请注意,重点围绕的是基于UTXO的支付,而非一般的智能合约执行。
以太坊1.0上的多线程数据可用性?——数据验证和其它预处理步骤都是纯函数,因为它们根本不涉及任何状态。因此,这些步骤都是可以并行的。按照这种方式来使用以太坊将极大减少状态的使用和增长,如果使用的是四核计算机,那么数据可用性吞吐量可以增加四倍。我的计划是通过几个EIP来实现这一点,第一个就是?EIP-2242:交易Postdata。
无需将中间状态序列化的UTXO链紧凑型错误性证明?——针对以太坊智能合约的通用型错误性证明成本很高。在UTXO数据模型内,每个UTXO最多只能创建并消耗一次,每个交易都会完整描述状态转换。区块生产者可以将元数据添加到每个输入上,声明这个输入是由一个特定的输出生成的。如果这种声明有错,则这种错误性是可以通过非交互的方式来证明的。我在另一篇文章中重新分析了BIP-141中提到的错误性证明机制。
使用默克尔累加器的无状态查询平行交易验证——状态查询是非常昂贵的。无状态客户端就是通过消除对状态的使用来降低成本。但我们可以搞简单一点:只需免去状态查询即可。“见证数据”是不会立即过期的,其有效性会持续几个区块。这些“见证数据”必须根据最新几个区块的状态转换进行比较,而状态转换可以在UTXO数据模型中通过无状态计算得出。
链上非交互型数据可用性证明——如果自始至终都将数据上链的话,会带来巨大的成本,还会导致optimisticrollup只能实现线性扩展。我们可以将共识节点进行可用性检查的能力通过一个FFI函数表示出来,就可以在无需进行分片的情况下获得二次方的可扩展性。这是?通过停摆实现免信任型双向桥侧链——使用错误性证明的双向桥侧链必须一直保持在线,这点对用户来说可能有些不便。虽然瞭望塔不适用于PlasmaCash?,但它可以应用到optimisticrollup上。但是,我们可以做得更好:可以在侧链运行一段时间后完全停摆,然后向用户提供一个较长的窗口期,以便用户提交错误性证明来决定有效的区块。这段用户必须在线的窗口期是已知且有限的。等窗口期结束之后,才允许取款。如果用户想要早一点取款的话,可以与流动性提供者进行原子交换。
构建OptimisticRollup的团队
自从几个月之前第一版OptimisticRollup最小化规范撰写完成以来,我欣然发现很多开发团队都开始构建OptimisticRollup的实现了,其中经历了很多波折和修改。下面是一张不完全列表,列举了我们目前看到的正在构建OptimisticRollup的开发团队。
Fuel?——聚焦于稳定币支付的UTXO数据模型。可以用来进行任意的ERC-20代币或ETH转账,或是进行原子交换,未来还可以用来进行“断言”脚本撰写。该模型即将上线长期公共测试网。
PlasmaGroup?——在?OVM?环境下的通用型类EVM智能合约,已经在Devcon5上宣布与Uniswap达成合作。
Arbitrum?——使用了交互型验证游戏机制的通用型智能合约。除此之外,新的?Arbitrumrollup?设计与optimisticrollup大致相同。
InterstateNetwork?——使用错误性证明的通用型类EVM智能合约。
SKALE?——使用?BLSsignature?聚合的Optimisticrollup。
NutBerry?——使用了交互型验证游戏机制的通用型类EVM智能合约。
IDEX?——为IDEX交易所构建了“优化型OptimisticRollup”。
结论
随着各种各样的optimisticrollup实现项目上线,接下来的一年以太坊将发生巨大改变,其吞吐量将得到大幅提高,并在数据可用性方面进一步实现可持续扩容。
我在本文中没有将optimisticrollup与zkrollup进行对比。如果你对此感兴趣的话,可以看一下?AlexGluchowski?写的这篇文章。
感谢?MikerahQuintyne-Collins、JamesPrestwich、RobertDrost?和?JosephChow?的审校。
(完)
原文链接:?https://medium.com/@adlerjohn/the-why-s-of-optimistic-rollup-7c6a22cbb61a作者:?JohnAdler翻译&校对:?闵敏&阿剑
来源:以太坊爱好者,原题《科普|OptimisticRollup为什么要这么设计?》
本文来自?Forbes,原文作者:JasonBrettOdaily星球日报译者|Moni 上周四.
1900/1/1 0:00:00源起武汉的疫情,让无数国人神伤,每天不断增加的确诊与疑似数字,沉重的让人难以呼吸。全国人民经历了一次难以忘记的春节,无数医护人员夜以继日的奋战,无数爱心人士捐赠的物资流水一样运往了武汉、湖北.
1900/1/1 0:00:00作者:白士泮,马荣宝编者注:原标题为《展望“一带一路”的中新金融合作》。原文刊登于新加坡《联合早报》。新加坡是“一带一路”沿线重要支点国家,中新双向投资在“一带一路”合作发挥着引领作用.
1900/1/1 0:00:00来源:澎湃新闻作者:秦源自比特币于2008年诞生已来,在略超10年的时间里,数字货币快速渗透到人们的日常交流中.
1900/1/1 0:00:00写在前面:本文作者为EOS创始人DanielLarimer。他在文章中分析了传统互联网中的数据库等基础架构和设计的缺陷并指出区块链是最好的解决方案:诸如EOSIO之类的区块链开放式框架使得开发者.
1900/1/1 0:00:00来源:DappTotal编者注:原标题为《2019年度DeFi行业研究报告》如果说2018年是DeFi的萌芽初期,那么过去的2019年可以称的上是DeFi元年.
1900/1/1 0:00:00