最近,我们在推特上看到了关于数据可用性及其重要性的讨论。毫无疑问,L2解决方案正在赋予以太坊能够成为全球超级计算机的力量。然而,我们不能否认的事实是,就算使用L2,但由于数量的限制,我们也无法实现我们的预期。其中第一个也是最重要的问题是「数据可用性问题(DA)」。因此,在本系列中,我们将深入了解DA是什么,以及如何通过数据抽样和欺诈证明来解决它。
为了完全理解DA证明的概念我们需要知道的有:
欺诈和数据可用性证明DA背景下的ReedSolomon代码Merkle树构造的二维ReedSolomon代码错误生成的扩展数据的欺诈证明在这篇文章中,我们将讨论什么是数据可用性,为什么它对我们很重要,以及解决这个问题的潜在方案是什么。我们还将讨论在检测到L2上的恶意交易时,节点应如何提交欺诈证明。
加密货币平台每天都在受到大量的关注。但这种大规模的采用依然伴随着现有区块链的可扩展性限制。有可能解决该问题的方案是通过改进硬件规格来简单地增加链上吞吐量。但是这样做的话,就会损害去中心化,因为如果需要大型硬件,那么能够参与的节点会非常少。因此,大多数节点将运行轻客户端,并依赖于完整节点来验证区块链状态。在大多数节点不诚实的情况下,这种依赖并不十分靠谱。这就是为什么L1把链下解决方案作为实现可扩展性的最佳替代方案的主要原因。
当我们谈论像Rollup这样的链下解决方案时,我们常常倾向于忽略一个事实,就是即使使用Rollup,我们也不能实现无限的吞吐量。想过为什么吗?
1inch社区将100万USDC分配至AAVE V3上借贷池赚取收益的提案已获通过:金色财经报道,据Snapshot数据显示,1inch社区将100万USDC分配至AAVE V3上借贷池赚取收益的提案已获通过,该提案计划将国库中的100万USDC资产,分配至AAVE V3上借贷池以产生被动收益,最终赞成票比例达到62%,反对票比例为37.83%,弃权票占比0.16%。[2023/5/30 11:48:31]
这是因为Rollup是一种链下计算解决方案,它在链下执行状态计算。为了完成区块,他们确实需要将状态和callData发布到基础层,如以太坊。因此,即使我们制作了sequencer,一个超级计算机来产生无限区块,但由于基础层的网络和存储限制,我们无法最终确定它们。
所以当我们认识到Rollup本身不能实现无限的吞吐量时,我们就会有另一个问题,那就是如果中心化sequencer本身不诚实怎么办?他计算出了一个错误的状态了呢?L1如何拒绝这些交易?现在当遇到这种情况时,我们在基础层上有完整的节点,这些节点会监控状态,在检测到错误的交易时,它们可以提交欺诈证明,以标记区块无效。
这是否意味着所有负责监控Rollup活动的L1节点都需要下载整个sequencer数据呢??答案是肯定的,情况正是如此。也就是说即使提出了链下解决方案,我们仍然需要完整节点,并提高我们的硬件需求。
在此基础上,就算我们设法运行一个强大的节点来监控交易,这仍然不能保证sequencer不会试图通过隐瞒数据来作弊。因为即使1%的数据不可用,也没有节点可以重建状态,因此没有人可以在定义的时间内提交欺诈证明,使区块有效。这就是我们定义的「数据可用性问题」。
Upbit、Bithumb、Coinone等韩国加密交易所将下架Paycoin(PCI):3月31日消息,Upbit、Bithumb、Coinone等韩国加密交易所通过官网宣布将于当地时间4月14日15:00(北京时间4月14日14:00)下架Paycoin(PCI)。Upbit 表示,“直至投资警告期限届满之日,Paycoin方未能解决投资警告所指出的原因,例如未发行实名存取款账户名称及未能完成虚拟资产经营者变更报告。因此,使用PCI的境内支付业务被判定为实质上已暂停。从业绩和方向来看,投资者投资此项目会有较大风险,因此我们决定终止交易支持。”
据悉,Paycoin是韩国大型支付公司Danal子公司Danal Fintech旗下加密货币支付平台。[2023/3/31 13:37:20]
但没有必要恐慌,因为以太坊已经提出了另一个聪明的解决方案来解决这个问题,即「数据可用性抽样」。那么什么是数据可用性抽样呢?它允许我们在不需要节点下载整个数据的情况下确保数据可用性。这是实现可扩展性的重大突破。
所以我们有两个概念:
sequencer试图用错误的交易来作弊,同时不保存任何数据。sequencer试图用错误的交易来作弊,并且还保留了一定比例的数据,以便节点可能无法重建区块来提供欺诈证明。现在我们想证明在共识节点中在不诚实的大多数的影响下,轻节点不会接受带有无效交易的区块。
作为第一个概念的例子,我们假设一个场景,恶意的sequencer试图通过在区块中包含错误的交易来进行,但不保存任何数据。
数据:以太坊鲸鱼一周内积累4.22亿美元SHIB:金色财经报道,根据鲸鱼调查平台WhaleStats的数据,自1月17日以来,排名前1,000的ETH鲸鱼已经积累了价值4.22亿美元的SHIB资产。SHIB的增持狂潮使其成为前1,000名ETH巨鲸持有最多的数字资产,不包括ETH和稳定币USDT和USDC。在撰写本文时,投资者群体中的SHIB持股现在总计5.84亿美元。[2023/1/23 11:26:43]
在OptimisticRollup的情况下,为了证明该区块是无效的,节点需要重构一个区块并为它提交一个欺诈证明。
Rollup区块结构
当涉及到支持欺诈证明的生成和有效性时,区块结构非常重要。现在假设高度为i的区块头h_i包含以下信息。
先前的Blockhash哈希(prevHash_i)涉及区块交易的数据MerkleRoot(dataRoot_i)Merkle树中表示的叶数(dataLength_i)Rollup状态的Merkle树(stateRoot_i)网络可能需要的其他任意数据(additionalData_i)在以太坊等基于账户的模型中,键值对是账户地址和余额。
首先,我们定义一个转换函数,它在执行转换时不需要整个状态树,而只需要对交易读取或写入的状态树部分的Merkle证明,这通常被称为「StateWitness」。这些Merkle证明有效地表示了为具有公共根的同一状态树的子树。函数可以定义为:
Coinbase与支付服务商Primer合作,允许商家将加密货币作为标准支付方式:金色财经报道,Coinbase 旗下的商业平台 Coinbase Commerce 与支付服务商 Primer 合作,使用 Primer 的商家可以将加密货币支付添加到他们的结账页面作为标准支付方式。
据悉,Primer 是一个无代码自动化支付平台,此前与比特币基础设施支付公司 OpenNode 合作,允许商家在全球范围内实现一键式比特币支付方式。 (finextra)[2022/10/20 16:31:37]
t→Rollup交易w→Merkle交易证明树w由状态树中的一组值对及其相关的Merkle证明组成。
慢雾:Solana公链上发生大规模盗币,建议用户先将热钱包代币转移到硬件钱包或知名交易所:8月3日消息,据慢雾区情报,Solana公链上发生大规模盗币事件,大量用户在不知情的情况下被转移SOL和SPL代币,慢雾安全团队对此事件进行跟踪分析:
已知攻击者地址:
Htp9MGP8Tig923ZFY7Qf2zzbMUmYneFRAhSp7vSg4wxV、CEzN7mqP9xoxn2HdyW6fjEJ73t7qaX9Rp2zyS6hb3iEu、5WwBYgQG6BdErM2nNNyUmQXfcUnB68b6kesxBywh1J3n、GeEccGJ9BEzVbVor1njkBCCiqXJbXVeDHaXDCrBDbmuy
目前攻击仍在进行,从交易特征上看,攻击者在没有使用攻击合约的情况下,对账号进行签名转账,初步判断是私钥泄露。不少受害者反馈,他们使用过多种不同的钱包,以移动端钱包为主,我们推测可能问题出现在软件供应链上。在新证据被发现前,我们建议用户先将热钱包代币转移到硬件钱包或知名交易所等相对安全的位置,等待事件分析结果。[2022/8/3 2:55:22]
在w给定的部分状态上执行所有交易t之后(如果交易修改了任何状态),可以通过用修改过的叶子计算新子树的新根来生成新的结果NewstateRoot。
如果w不是正确的witness,并且不包含执行过程中交易所需的所有叶子部分,那么它将抛出异常错误err。
对于本系列的其余部分,将在此总结一些注释:
什么是innerRoot?
innerRoot是应用一定数量交易后区块中的中间根的表示。
当我们讨论Rollup状态验证时,数据是最重要的东西。数据帮助我们重构状态,并验证由Rollup发布的状态是否有效。这就是为什么将DataRoot传递给轻客户端非常重要。
什么是DataRoot?
dataRoot_i是固定大小的交易数据块,以字节为单位,我们称为「shares」。shares不会包含所有的交易,而是包含交易的固定部分。我们保留每个share中的第一个字节作为第一个交易的起始位置。这允许协议消息解析器建立消息边界,而不需要区块中的每个交易。
给定一个shares列表(sh0,sh1,…)shn),我们定义一个函数parseShares,它解析这些shares并输出消息列表(m0、m1、……mt),这些消息要么是交易,要么是中间状态根。例如,在某些区块i中间的一些share上的parseShares可能会返回(trace1i,t4i,t5i,t6i,trace2i)。
我们不能在每个交易之后都包含状态根,所以我们可以定义一个周期,例如在g个gas的p个交易之后,我们可以在区块中包含一个中间状态根。因此,我们有一个函数parsePeriod,它解析一个消息列表并返回一个状态前中间根tracexi和状态后中间根tracex+1i和一个交易列表(tig,tig+1,…tig+h),这样当我们在tracexi上应用这些交易时,它必须给我们tracex+1i。如果交易不符合条件,则函数必须返回一个err。
如何验证状态转换无效?
如果恶意的sequencer为我们提供了不正确的stateRoot呢?我们可以通过「VerifyTransitionFraudProof」函数检查stateRoot的无效。该函数接受完整节点提交的欺诈证明并对其进行验证。
什么是欺诈证明?
欺诈证明包括以下内容:
区块中包含错误状态转换的相关shares。这些shares的Merkle证明。shares交易的Statewitness。VerifyTransitionFraudProof函数将特定受挑战时期的交易应用到前状态中间,这必须导致中间后状态根。
如果所有给定条件都为真,则函数VerifyTransitionFraudProof返回真,否则返回假。
我们已经了解了DA和欺诈证明,现在开始讨论第二个概念,也就是如果sequencer计算了一个无效的交易,而我作为轻客户端检测到它,那该怎么办。现在我需要为它计算一个欺诈证明。然而,sequencer并没有发布完整的数据,通过这些数据我可以重建状态以进行验证。对于这个问题,Optimism等Rollup提出了一个解决方案,即强制sequencer发布数据。
责任编辑:Kate
标签:MERROOROLLROLEthereumeRushshrooms币ai迷因币RollerSwapTrollCoin
Scroll近期在一级市场的表现非常好,所以我们今天来深入了解一下Scroll的技术与架构设计.
1900/1/1 0:00:00一个FTX员工的自述截图在社区传播,我们确认了它大部分的真实性,文章经过编译。全文如下:我是接近FTX情况的消息来源。SBF毁了他许多现任和前任雇员的生活。FTX的每个人都感到震惊和失望.
1900/1/1 0:00:00相比去年巅峰时刻的风光无两,今年Solana于11月3日至7日在里斯本举办的第二届Breakpoint峰会则低调许多.
1900/1/1 0:00:00什么是投票托管?投票托管是由CurveFinance提出,代币持有者将其治理代币锁定一段预定的时间,并获得投票托管代币作为回报的一种协议.
1900/1/1 0:00:00今天我要分享对web3消费品机会的一些想法,灵感来自于制作Musical.ly的朱骏和web3的时尚大师GMoney的视频。视频链接在文章的末尾.
1900/1/1 0:00:00去中心化内容创建是从web2.0移植的拟物化心智模型。Web2社交应用程序已经为去中心化内容创建提供了条件.
1900/1/1 0:00:00