iNFTnews iNFTnews
  • 首页
  • 7*24快讯
  • NFT发售日历
  • NFT导航
  • 联系我们
  • 注册
  • 登录
首页 › 商业 › 解析 Celestia 与 DA

解析 Celestia 与 DA

liurui
2022-06-11 11:46:28商业阅读 27,632

什么是 Data Availability

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

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

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

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

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

解析 Celestia 与 DA-iNFTnews

Celestia

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

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

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

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

准备

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

1. stateRoot

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

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

解析 Celestia 与 DA-iNFTnews

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

解析 Celestia 与 DA-iNFTnews

2. dataRoot

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

  • 具体步骤
    • 将初始的交易数据,按照 shares 的大小与格式进行封装。
    • 将 shares 放入一个 k×k 的矩阵,如果数量不够,则填充补齐。
    • 然后应用 RS 纠删码,按照行和列进行 3 次补齐,最终得到一个 2k⋅2k 的矩阵。
    • 对这个矩阵的每一行和每一列,都构建一个默克尔树,得到 2⋅k 个行根和 2⋅k 个列根。
    • 最后将这 4⋅k 个根,组成一个默克尔树,得到根 dataRoot。

解析 Celestia 与 DA-iNFTnews

解析 Celestia 与 DA-iNFTnews

  • shares

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

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

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

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

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

    • 固定 256 字节
    • 0-80:开始的交易
    • 81-170:包含的交易
    • 171-190:中间状态根
    • 191-256:下一批开始的交易
    • 设定的格式举例

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

3. 状态转换无效的欺诈证明

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

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

  • 对应块的 blockhash
  • 相关的 shares
  • 这些 shares 在 dataRoot 对应的默克尔树中的默克尔证明
  • 这些 shares 包含的交易的 状态见证。

证明的验证:

  • 验证 blockhash,确定是对于哪个区块的欺诈证明。
  • 验证证明中的每个 shares 的默克尔证明是否有效。
  • 通过 shares 的两个解析函数,可以正确得到对应的交易列表,以及这批交易的执行前状态根和执行后状态根。并且如果执行前状态根为空,则第一个交易一定是块的第一笔交易;同时如果执行后状态根为空,则最后一笔交易一定也是块的最后一笔交易。
  • 根据 rootTransition 函数,来验证得到的两个状态根。

4. 错误生成扩展数据的欺诈证明

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

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

  • 错误的 shares 所在行或列的默克尔根。
  • 这个行或列的默克尔根,在 dataRoot 对应的默克尔树中的默克尔证明。
  • 这足够恢复这一行或列的 shares。(大于等于 k 个)
  • 每个shares 在 dataRoot对应的默克尔树中的默克尔证明。

证明的验证:

  • 验证blockhash,确定是对于哪个区块的欺诈证明。
  • 验证证明中行或列的默克尔根的默克尔证明是否有效。注:VerifyMerkleProof(行或列的默克尔根,行或列的默克尔根的默克尔证明,dataRoot,长度,位置索引) 其中前面2个数据是证明携带的数据,后面3个是本地(之前接收的)数据。
  • 验证证明中每个 shares 的默克尔证明是否有效。注:VerifyShareMerkleProof(shares,shares 的默克尔证明,dataRoot,长度,位置索引) 其中 dataRoot是本地数据,另外数据都是从证明中获得。
  • 通过收到的 shares,恢复这一行或列的所有数据,并验证其默克尔根是否等于自己之前收到的对应行或列的默克尔根。

数据可用性

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

  1. 轻节点从任意一个连接的全节点中获取一个新区块的块头,以及 2k 个行和 2k 个列的默克尔根。先用这些默克尔根与区块头中的 dataRoot 进行初步校验。如果错误则拒绝这个区块头。
  2. 在这个 2k × 2k 的矩阵中,轻节点随机挑选一组不重复的坐标,将这些坐标发送给与自己相连的全节点们。
  3. 如果一个全节点拥有这些坐标所对应的所有数据,就会将这个坐标对应的 shares,以及 shares 的行或列的默克尔证明,回应给轻节点。
  4. 轻节点对于每一个收到的 shares,都会验证其默克尔证明是否有效。注:VerifyMerkleProof( shares,shares 所在行或列的默克尔证明,对应行或列的默克尔根,长度,坐标位置索引)其中前面 2 个数据是证明携带的数据,后面 3 个是本地(之前接收的)数据。
  5. 如果一个全节点没有回应某一个坐标的 shares,轻节点则会将自己收到的对应的shares、以及它的默克尔证明发送给这个全节点,这个全节点也会将收到的数据转发给相连的其他全节点。
  6. 如果步骤 4 中的验证都没有问题,并且步骤 2 中抽样的坐标都有收到回应,同时在一个设定的时间段内没有收到关于这个区块的欺诈证明,则轻节点认为这个区块是数据可用的。

来源:Bress
免责申明:本文为本站转载/翻译内容,版权归原作者所有。如涉及作品内容、版权及其它问题,请联系本站!本站转载/翻译出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,且不构成任何投资及应用建议。
收藏(0)
Jack Dorsey的Block子公司TBD宣布推出“Web5”
上一篇
"百万富翁教父"罗伯特清崎:去中心化商业即将到来
下一篇
再想想
暂无评论
2022年 6月
一 二 三 四 五 六 日
 12345
6789101112
13141516171819
20212223242526
27282930  
« 5月    
最新文章
国内数字藏品监管的四大趋势
华商报发布数字藏品
中国酒业协会发布征集《酒业数字藏品技术规范》团体标准起草单位通知
壳牌喜力发布全球首款数字藏品
加入NFT社群,了解更多NFT信息
标签
a16z Axie Infinity Beeple Bored Ape Yacht Club Coinbase CryptoPunk DappRadar Decentraland ENS Facebook GameFi Loot Meta Metamask Metaverse NBA Top Shot NFT游戏 NFT音乐 OpenSea play-to-earn Polygon Rarible Roblox The Sandbox Twitter VeVe Web3 以太坊 佳士得 元宇宙 加密艺术 加密货币 区块链 收藏品 数据 版权IP 科普 腾讯 苏富比 英伟达 蚂蚁链 融资 行业报告 观点 资讯
全球最受认可的NFT会议,联合创始人谈它的发展与前景
Yuanshan
20,031 0
收购虚拟社交公司波粒子科技,字节跳动的元宇宙之路又宽了一些
iNFTnews新闻官
20,026 0
疯狂的数字藏品,是泡沫还是未来?
Zhourx
21,361 0
文物遇上数字藏品,您怎么看?
Zhourx
23,881 0
  • 0
  • 0
关于我们

iNFTnews.com是一家垂直在NFT领域的全球性资讯平台,为您提供全面、专业且有品质的NFT、元宇宙、链游等相关信息资讯,致力于成为您开启NFT世界的第一站。

友情链接
吾爱元宇宙 链新
更多
寻求报道 隐私政策 工作机会 版权申明 联系我们
Copyright © 2021-2022 iNFTnews. 专业的NFT信息资讯平台 浙ICP备2021024901号
  • 首页
  • 7*24快讯
  • NFT发售日历
  • NFT导航
  • 联系我们
# 元宇宙 # # Metaverse # # 收藏品 # # 资讯 # # NFT游戏 #
liurui