原文作者:Hoyt问题的由来:
为了实现链的容量扩展,Celestia承诺主权应用将只需下载与其有关的消息,而不用下载全部消息,但同时,不同应用的消息是打包在同一个区块里面的,以实现平等的安全性。那么,如何保证当某个应用的执行节点向Celestia的存储节点查询消息时,存储节点仅返回所有的相关消息,而且恶意存储节点无法隐藏特定消息呢。Celestia选择的方案是,将称为命名空间的应用标识符,插入到消息构成的默克尔树的节点信息中。这样做的好处是,可以处理存储节点隐藏全部相关消息的情况,可以定位被隐藏的消息。另外,无需大幅度修改默克尔树的生成逻辑,以确保存在一个节点,它的底层叶节点,包含且仅包含某个命名空间的全部消息,且能定位此节点。而只需要做三件相对简单的事情,就可以确保默克尔树的基本特性,不发生变化:首先,生成消息的默克尔树之前,先按命名空间将消息分组归并在一起,确保不同命名空间的消息没有穿插,且命名空间是排好序的。其次,修改生成默克尔树时使用的哈希函数,以便命名空间信息被包含进节点信息。检查默克尔树时,额外检查排序是否无误。生成带命名空间的默克尔树:
WSJ:韩国检方寻求将 Do Kwon 引渡回韩国进行指控:5月5日消息,韩国检察官 Dan Sung-han 正在与美国检察官争夺从黑山引渡 Do Kwon 的权利,他认为将 Do Kwon 引渡回韩国将是为 TerraUSD 加密货币崩盘的受害者伸张正义的最佳方式。此前,韩国检方起诉 Terraform 的联合创始人 Daniel Shin 等 7 人,罪名包括欺诈和违反有关电子金融交易和筹款的资本市场法律法规。如果 Do Kwon 引渡到韩国,将面临类似指控。引渡程序将在黑山当局结束针对 Do Kwon 的护照伪造案的法庭程序后开始。法律专家表示,韩国可能在确保引渡方面占据上风,因为它是与黑山签订的引渡条约的缔约国。[2023/5/5 14:45:35]
前面我们说了,跟通用的默克尔树逻辑相比,只有生成节点的哈希的函数不同。具体来说,就是在原哈希函数之上,又包裹了一层,使得节点哈希变成形如‘minNs|maxNs|原哈希’的形式,minNs和maxNs分别是此节点所有子节点中,最小和最大的命名空间。容易看出,对叶节点有minNs=maxNs,因为它只包含一条消息,只能有一个命名空间。默克尔树是二叉树,且我们已对消息做了排序,所以对非叶节点有minNs等于左子节点的minNs,maxNs等于右子节点的maxNs。另外,请注意原哈希函数会把子节点的整个哈希作为输入,也就是说命名空间也参与哈希计算,因此不能随意写,否则树根哈希会跟区块里的记录不一致,就很容易看出数据无效。下图是一个带命名空间的默克尔树的示意图:
前NBA球星沙奎尔·奥尼尔将被要求在联邦法院出庭:4月17日消息,前NBA球星沙奎尔·奥尼尔(Shaquille O’Neal)已在家中被正式送达FTX集体诉讼案诉讼书,将被要求在联邦法院出庭。奥尼尔曾因推广FTX而被起诉,律师已经寻找他三个月,诉讼服务人员始终在努力向奥尼尔发出正式通知,告知其为诉讼目标。
律师现已在奥尼尔家中为其提供服务,其与一名诉讼服务人员的交流已被拍成视频。根据诉讼书,奥尼尔将被要求在联邦法院出庭,向公众解释其为FTX的虚假广告活动。(TheBlock)[2023/4/17 14:07:25]
SBF已抵达巴哈马机场接受美国引渡:12月22日消息,巴哈马时间12月21日18:30(北京时间12月22日7:30)左右,前FTX首席执行官Sam Bankman-Fried(SBF)已抵达巴哈马私人机场,将飞往美国面临一连串的刑事指控。
SBF预计将被美国当局拘留,并被送往纽约,联邦检察官上周在那里公布了一项涉及八项罪名的起诉书。如果所有指控都被定罪,他可能会面临数十年的牢狱之灾。一旦回到美国,他可能会在数小时内被提审,他的律师可能会提出申请让他获准保释。目前还不清楚SBF将在哪个美国机场降落。(彭博社)[2022/12/22 22:00:09]
证明消息的完整性:
DeFi协议Umami获Circle批准开设其账户,支持企业通过USDC进入加密领域:9月9日消息,机构级DeFi协议Umami获Circle批准开设Circle账户。通过Circle帐户,企业可以使用USDC进入加密领域、使用USDC进行交易等方式快速融入数字经济。Umami表示,随着机构对合规DeFi产品的兴趣不断增加,Umami希望与Circle共同探索创建一个更加开放和包容的金融体系。[2022/9/9 13:18:58]
首先,需要证明返回的某条消息,确实是在消息树中,这个就是普通默克尔包含证明所作的事情。因此,当存储节点返回一条消息时,它同时返回此消息的默克尔包含证明。假定返回消息M0到Mn,那会同时返回对应的默克尔包含证明P0到Pn。我们需要说明,存储节点可以不返回某条消息,但无法对消息构成的默克尔树进行变动,因为那会导致树根哈希变化,数据失效。现在我们来看漏消息的情况,首先我们的消息是按命名空间归并在一起的,所以如果某个命名空间,在它所有消息的中间漏了消息,那任何一个默克尔证明都可以看出,消息不连续,就没必要进一步讨论了。我们看开头或者结尾漏消息的情况,两种情况类似,我们以开头为例。比如N.2的第一条消息M.2漏了,那它对应的P.0也不会发出来,那么这时候,从查询者的角度看,原来的P.1,现在是第一个证明,它反正就检查第一个证明。下图,我画出了P.0和P.1的具体内容,我们比较它们的差别,就发现M.2左侧的节点,命名空间都小于M.2的命名空间,而M.3左侧有一个节点H.4,它的maxNs是A.2等于M.3的命名空间N.2,这个A.2的来源,就是存储节点隐藏起来的M.2。这样一来,执行节点就发现异常了。那如果某个命名空间全部的消息都被隐藏呢。我们规定,当指定命名空间的消息不存在时,返回一个叶节点的默克尔证明,这个叶节点有minNs大于目标命名空间,但它左侧所有节点的maxNs都小于目标命名空间。那么,当存储节点隐藏了整个命名空间时,必然,根据具体返回的节点的位置,它或者左侧会出现一个maxNs大于等于目标命名空间的节点,或者右侧会出现一个minNs小于等于目标命名空间的情况。这样执行节点也能发现问题。综上所述,存储节点不可能隐藏消息而不被发现。
结语:本文复述了Celestia白皮书中,关于多应用场景下,对抗恶意存储节点的部分内容。现在Celestia测试网已经上线,但目前更多是展示了对轻节点的支持,以及对消息分组的可行性。白皮书里面,第三章、第四章都有提到更多关于应用主权或者分片的内容,比较偏概念,针对真实公网环境来说,具体是怎么实现的,目前还看得不是很清楚。而扩容问题,显然是整个区块链领域近期最关注的目标。所以,我们之后也会特别关注Celestia在支持独立应用方面的进展,究竟怎么跟L2或者说其它‘区块链模块’结合起来,做到实用的功能,并提高链上容量,我们将拭目以待。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。