链资讯 链资讯
Ctrl+D收藏链资讯
首页 > MATIC > 正文

解析 Celestia 与 DA

作者:

时间:

大家都知道,区块链技术的一个特点就是:存放在链上的数据是安全可靠的,不可篡改的。那数据可用性是指的什么呢?难道区块链的共识不能保证数据的安全了吗?显然不是,区块链数据的安全性,是大家都认可的,也是区块链一直持续发展的一个动力之一。那么 DA(数据可用性)层是什么,我们先来看看下面几种情况。

一个节点如果想验证某一笔交易或者某一个区块,这个节点需要下载所有的区块和交易数据。由于区块链的持续运行,区块和交易数据会持续增长,这个节点的成本也会越来越高。以至于越来越多的节点(特别是个人用户)只能选择运行轻节点。这些轻节点,没有下载所有的交易数据,它们不能对交易和区块进行验证,只能相信它们选择的共识节点(全节点)。因此,实际上这些轻节点是不知道获得的数据是否可用。

同时区块链网络为了提高效率,一直在尝试进行扩容。以太坊的 L2 就是以太坊的一种扩容方案,从而提高以太坊的吞吐量。但 L1 和 L2 在本质上还是两个网络,L1 是不会参与 L2 的共识,也不会验证和执行 L2 的交易,同理 L2 也不会参与 L1 的共识,亦不会验证和执行 L1 的交易。但是在此时,L1 与 L2 之间其实是有信任问题的,例如:Rollup 要求将所有交易数据都记录到以太坊的交易中,那么 Rollup 的用户为了验证自己的交易是否存入以太坊,他还需要运行一个以太坊的全节点吗?

从目前区块链的工作机制当中我们可以知道,当一个节点不参与共识的时候,特别是没有存储所有交易数据的时候,对于它自己获得的数据是否有效它是无法验证的,这些节点目前都只能相信自己连接的共识节点不会自己,或者多连接几个共识节点,做一个小小的容错。

因此DA层解决的问题是,在不参与共识、以及不用存储所有交易数据的情况下,依然能够对交易进行验证,从而证明这个交易是否可用。

Mask Network官方社群:链上参与交易用户均有空投,每轮单独空投:2月24日消息,目前Mask Network三轮ITO已经全部结束,Mask Network官方表示将对ITO链上参与者空投代币,包括失败的交易。Mask Network官方社群表示,只要交易的用户,无论成功或失败都会有空投,包括每一个轮次,失败一次空投一次,两次获得两份空投,以此类推。[2021/2/24 17:47:19]

在上面先介绍了什么是 DA,接下来,我们再来看看 Celestia 项目是打算如何来解决这个问题的。

Celestia 项目围绕二维 Reed-Solomon 纠删码,设计了一套随机抽样来验证数据、以及恢复数据的方案从而确保数据可用。

当一个全节点发现轻节点收到有问题的数据时,会构建一个欺诈证明并发送给这个轻节点,轻节点收到欺诈证明之后,从网络中通过随机抽样的方式,获得需要的数据,来验证这个欺诈证明是否有效,从而能够明确的知道自己之前获得的数据是否可用。轻节点不需要信任给自己发送数据的节点,也不需要信任给自己发送欺诈证明的节点,这是因为轻节点是通过随机抽样的方式,来获取进行此次验证所需要的数据,因此安全性能是由整个网络来提供的。这样也使得DA 层的安全等级,能够接近共识层的安全等级。

接下来,我们来了解一下 Celestia 具体是如何工作的。由于 Celestia 项目还处于开发测试阶段,因此这里采用的都是现阶段的白皮书的介绍方案,可能会与实际的解决方案有出入。

欺诈证明的验证,必须是高效的,并且不需要全部的交易数据,也不需要执行具体的交易,因此 Celestia 对于自己区块的数据,进行了一些扩展。

状态的稀疏默克尔树的根,这种默克尔树的叶节点,是一个 key-value 对。

TRC20-USDT流通量突破61亿枚,用户数突破142万:据最新消息显示,TRC20-USDT流通量已突破61亿枚,用户数已突破142万。据悉,TRC20-USDT是Tether公司基于波场网络发行的锚定美元的稳定币,转账速度快、低手续费的特点已经吸引了大批用户,且已经有Binance、Huobi、KuCoin、Gate.io等多家交易所的支持。基于TRC20版本的USDT将大幅提升波场现有的去中心化应用生态系统,带来更高的整体价值存储和更强的去中心化交易所流动性,并为企业级合作伙伴与机构投资者提供更便捷的区块链入口。[2020/12/3 22:59:09]

定义了一种变量,状态见证(w):是一些 key-value 对,以及他们在默克尔树中的证明,组成的集合:

定义了一个函数,rootTransition :可以通过状态根、交易、以及这些交易的状态见证,转换得到交易执行后的状态的根。也就是每个交易执行后的状态的默克尔根 stateRoot`可以通过rootTransition(stateRoot, t, w) 得到

将交易,以及这些交易执行的中间状态根,组合成一个固定大小与固定格式的shares 。这些所有的交易的shares ,按照二维RS纠删码,进行扩展,最后得到一个默克尔树的根,即dataRoot。

具体步骤

将初始的交易数据,按照 shares 的大小与格式进行封装。

BTC跌破18700美元关口:火币全球站数据显示,BTC短线下跌,跌破18700美元关口,现报18668.66美元,日内跌幅达到2.4%,行情波动较大,请做好风险控制。[2020/11/26 22:09:56]

将 shares 放入一个 k×k 的矩阵,如果数量不够,则填充补齐。

然后应用 RS 纠删码,按照行和列进行 3 次补齐,最终得到一个 2k?2k 的矩阵。

对这个矩阵的每一行和每一列,都构建一个默克尔树,得到 2?k 个行根和 2?k 个列根。

最后将这 4?k 个根,组成一个默克尔树,得到根 dataRoot。

shares

shares 是 Celestia 项目定义的一个固定大小和格式的数据结构。主要内容是交易,以及执行这些交易的中间状态根。

由于没有具体规定多少交易,需要生成对应的中间状态根,项目方设定了一个 Period变量,作为最大限制周期,这个限制可以是最大多少交易之内必须生成中间状态根,也可以是多少字节,或者多少 GAS。

还定义了两个函数来帮助验证:

parseShares 函数:输入 shares,得到消息 m,可以是中间状态根,也可能是交易。

parsePeriod 函数:输入消息,得到前状态根,执行后状态根,以及交易列表。

固定 256 字节

0-80:开始的交易

81-170:包含的交易

171-190:中间状态根

191-256:下一批开始的交易

设定的格式举例

白皮书中,介绍了两种欺诈证明,下面将分别对此进行介绍:

这是一个针对 stateRoot 的一个欺诈证明。全节点利用 dataRoot 中的 shares,来帮助轻节点验证收到的区块头中的 stateRoot 是否有效。

状态转换无效的欺诈证明的组成:

对应块的 blockhash

相关的 shares

这些 shares 在 dataRoot 对应的默克尔树中的默克尔证明

这些 shares 包含的交易的 状态见证。

证明的验证:

验证 blockhash,确定是对于哪个区块的欺诈证明。

验证证明中的每个 shares 的默克尔证明是否有效。

通过 shares 的两个解析函数,可以正确得到对应的交易列表,以及这批交易的执行前状态根和执行后状态根。并且如果执行前状态根为空,则第一个交易一定是块的第一笔交易;同时如果执行后状态根为空,则最后一笔交易一定也是块的最后一笔交易。

根据 rootTransition 函数,来验证得到的两个状态根。

这是一个针对 shares 在网络传播时,当一个全节点从网络中收到 shares 恢复的数据,与自己的数据不匹配时,会向网络回应欺诈证明。

错误生成扩展数据的欺诈证明的组成:

错误的 shares 所在行或列的默克尔根。

这个行或列的默克尔根,在 dataRoot 对应的默克尔树中的默克尔证明。

这足够恢复这一行或列的 shares。(大于等于 k 个)

每个shares 在 dataRoot对应的默克尔树中的默克尔证明。

验证blockhash,确定是对于哪个区块的欺诈证明。

验证证明中行或列的默克尔根的默克尔证明是否有效。注:VerifyMerkleProof(行或列的默克尔根,行或列的默克尔根的默克尔证明,dataRoot,长度,位置索引) 其中前面2个数据是证明携带的数据,后面3个是本地(之前接收的)数据。

验证证明中每个 shares 的默克尔证明是否有效。注:VerifyShareMerkleProof(shares,shares 的默克尔证明,dataRoot,长度,位置索引) 其中 dataRoot是本地数据,另外数据都是从证明中获得。

通过收到的 shares,恢复这一行或列的所有数据,并验证其默克尔根是否等于自己之前收到的对应行或列的默克尔根。

通过 2 维 RS 纠删码,Celestia 的轻节点通过随机抽样的方式,来获取区块数据,以及验证欺诈证明的相关数据。同时随机抽样的数据,并在网络中传播,当达到一定的数量时,也可以帮助网络恢复区块数据。下面介绍一下具体的工作流程:

轻节点从任意一个连接的全节点中获取一个新区块的块头,以及 2k 个行和 2k 个列的默克尔根。先用这些默克尔根与区块头中的 dataRoot 进行初步校验。如果错误则拒绝这个区块头。

在这个 2k × 2k 的矩阵中,轻节点随机挑选一组不重复的坐标,将这些坐标发送给与自己相连的全节点们。

如果一个全节点拥有这些坐标所对应的所有数据,就会将这个坐标对应的 shares,以及 shares 的行或列的默克尔证明,回应给轻节点。

轻节点对于每一个收到的 shares,都会验证其默克尔证明是否有效。注:VerifyMerkleProof( shares,shares 所在行或列的默克尔证明,对应行或列的默克尔根,长度,坐标位置索引)其中前面 2 个数据是证明携带的数据,后面 3 个是本地(之前接收的)数据。

如果一个全节点没有回应某一个坐标的 shares,轻节点则会将自己收到的对应的shares、以及它的默克尔证明发送给这个全节点,这个全节点也会将收到的数据转发给相连的其他全节点。

如果步骤 4 中的验证都没有问题,并且步骤 2 中抽样的坐标都有收到回应,同时在一个设定的时间段内没有收到关于这个区块的欺诈证明,则轻节点认为这个区块是数据可用的。

标签:HAREARESHASHAREGlink Arts ShareMARE币SHANGOne Basis Share

MATIC热门资讯
Three Arrows Capital 大败局:以太坊巨鲸身陷流动性危机

曾经在加密世界此诧风云的明星机构,正拿着被清算的号码牌。 加密市场陷入恐慌,利空正逐渐兑现。 Luna 崩盘、Celsius 资不抵债、stETH 脱锚…… 伴随着一系列的坏消息,市场不断触及新低,毫无反弹。 今天三箭资本创始人 Zhu Su 的一则推特让加密社区再一次炸了锅,「我们正在与有关方面进行沟通,并致力于将问题解决。

结缘《雪崩》探索元宇宙产业发展

结缘《雪崩》 头脑风暴 最近很多人都会提起尼尔·斯蒂芬森,大家都知道尼尔在30年前写《雪崩》一书时,创造了Metaverse元宇宙一词。和众多人一样,我也是从读《雪崩》开始认识尼尔的。准确的讲,我是尼尔的一名粉丝;其实微软创始人比尔·盖茨,亚马逊创始人杰夫·贝佐斯,谷歌创始人拉里·佩奇和PayPal的创始人彼得·蒂尔也是尼尔的粉丝。

纽约最高法院首次使用NFT为法院文件提供服务

上周,纽约最高法院空投了NFT作为“服务通证”,开创了NFT领域的新里程碑事件,可能会在几十年内对NFT领域产生重大影响。 在6月6日的一份法庭文件中,法院批准了一家总部位于美国的律师事务所“Holland&Knight”向一名被告通过NFT发出临时限制令,该被告被指控为黑客。 据称,这名黑客参与了今年1月对LCX交易所的价值800万美元的攻击。

元宇宙产业互联网的分水岭

元宇宙是互联网的分水岭。在元宇宙出现之前,人们对于产业互联网的探索基本上是在黑暗中摸索的。在元宇宙出现之后,人们才算是看到了产业互联网的些许曙光。 透过元宇宙,我们可以看出产业互联网的光怪陆离的一面,照此发展下去,产业互联网带给我们的想象力要比消费互联网强百倍,甚至千倍。从某种意义上来讲,从元宇宙开始,产业互联网时代的大幕才算是真正的拉开。

火爆与争议并存 资本圈如何看待 Web3 的发展前景?

Web3.0 霸屏,又一个概念火了。 和当初元宇宙概念兴起时的情景类似,这一概念 10 多年前就有人提出过,在移动互联网时代陷入增长瓶颈时期被热捧,知名机构投它,投资人关注它,社交媒体上在讨论它。而对于普通人来说,就正如网友感叹的那样,「每次看这种文章,都是一个字一个字看完,仍然一头雾水。

金色Web3.0日报 | Celsius称将在适当的时间共享信息

1.DeFi代币总市值:365.7亿美元DeFi总市值 数据来源:coingecko 2.过去24小时去中心化交易所的交易量:62.45亿美元过去24小时去中心化交易所的交易量 数据来源:coingecko 3.DeFi中锁定资产:793.6亿美元DeFi项目锁定资产前十排名及锁仓量 数据来源:defillama 1.NFT总市值:152。