织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 比特币 > 比特币资讯

DFINITY 核心开发者:如何构建没有历史包袱的区块链? (2)

时间:2021-09-18 17:00来源:未知 作者:admin 点击:
扩容方面我们通常的方案是做分片,我们把整个区块链的状态分成好多个片,然后每一个片实际上通过自己的区块链在运行。如果一个交易需要跨片的话,

扩容方面我们通常的方案是做分片,我们把整个区块链的状态分成好多个片,然后每一个片实际上通过自己的区块链在运行。如果一个交易需要跨片的话,从一个区块链发起的交易到另外一个区块链上去接收,发起方和接收方势必要验证对方区块链上面的区块,每个分片就需要知道所有其它分片过去的历史区块,这样相对于单链来说其实负担更大了。可能有一些删除优化算法,但这些优化算法实际上也就是提高了一些效率,并没有达到质的飞跃。

我们看看以太坊 2.0 是怎么解决分片的问题?

DFINITY 核心开发者:如何构建没有历史包袱的区块链?

它采取分层的结构,在最上面一层有一个叫 Beacon Chain,它是对其它的 Chain 做一个快照,其它的 Chain 只需要知道 Beacon Chain 是经过确认的,然后它就可以验证另外的 Chain。这个实际上还是隐含着一个条件,你要能够验证 Beacon Chain,就要知道 Beacon Chain 所有的历史区块。虽然对不分层的结构而言它有一定的进步,但实际上跟单链来说它也没有特别大的差异。所需要的难度,就是保持历史区块所需要的挑战基本上是一样的。

所以,我们可以看到历史区块实际上是有包袱的。有没有一种办法能够把这个包袱完全抛弃掉,这是今天所要探讨的一个问题。

BLS 门限签名

DFINITY 核心开发者:如何构建没有历史包袱的区块链?

我们考虑一个简单的例子,跟刚才我们提到的 Beacon Chain 目的有点相关,它主要是作为随机数的序列,公众能够验证的公平的随机数。它必须满足几个条件:

  • 不可以被预测:如果能够被预测的话,实际上没有安全性可言了。
  • 公平:公平性是说参与计算的节点,它不可以影响下一个随机数数值的公平性,它可以影响的话实际上带来了安全性上的问题。
  • 公共可验证:即前面两点要能够被公众所验证。

所以要满足这三点才能够做一个安全的随机数的序列区块。

DFINITY 核心开发者:如何构建没有历史包袱的区块链?

有一个算法叫做「门限签名」,它的基本原理如上图所示。

我们可以看到这个例子里面有四个节点,每个节点有各自的私钥,然后每个节点单独对数据进行签名,对同一个数据进行签名。如果我们能够收集到三个签名,将这三个签名合在一起,就能够合成为一个签名,叫做「集体签名」。集体签名有一个有意思的地方,无论是哪三个你收集起来的单独签名,你把它们合成起来合成一个集体,都可以成为一个集体签名。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容