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

我的网站

当前位置: 主页 > 竞争币 > 以太坊

如何构建没有历史包袱的区块链?(2)

时间:2021-09-18 13:06来源:未知 作者:admin 点击:
我们看看以太坊 2.0 是怎么解决分片的问题? 它采取分层的结构,在最上面一层有一个叫 Beacon Chain,它是对其它的 Chain 做一个快照,其它的 Chain 只需要知

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

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

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

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

BLS 门限签名

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

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

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

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

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

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

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

这个集体签名可以被验证,验证集体签名是通过一个公钥,这个是集体公钥,而不是某一个节点的公钥。集体公钥是最初开始生成的时候就确定的,所以这个集体公钥可以拿来验证集体签名的消息。

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

我们怎么样能够信任集体签名呢?

首先,我们必须要能够信任最开始的生成过程,假定这个过程是可以信任的,稍后还会重新看内部的具体过程怎么实现。假如说,生成的节点私钥公钥和集体的公钥都是可以被信任的,除了我们这个节点能参加运算,它还需要知道其它的节点,所以我们需要有些公共信息,就是包括节点的 ID,包括它们的公钥。 (责任编辑:admin)

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