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

我的网站

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

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

时间:2021-09-18 17:00来源:未知 作者:admin 点击:
这个集体签名可以被验证,验证集体签名是通过一个公钥,这个是集体公钥,而不是某一个节点的公钥。集体公钥是最初开始生成的时候就确定的,所以这

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

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

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

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

公共信息放在创世区块里面,同时对创世区块进行哈希,来到下一个区块,我们再对下一个区块进行哈希,并且做一轮门限签名,就是阈值签名,我们收集到足够多的签名,把它们合在一起,得到一个集体签名,这样就得到下一个区块。如此反复,我们就可以把区块链进行下去。

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

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

但是,造成的结果就是,我们不光有随机数序列的 Chain,还有 Block Chain,这个 Block Chain 记录了 DKG 所需要的一些消息,以及 DKG 运算的一些结果。

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

我们假如说在一定的区间运行一整套 DKG,然后新加入的节点在这时候可以报名之类的,运行完出来一个结果,这个结果包括了下一个区间所需要的节点列表,它们各自的公钥,还有集体公钥,这个结果我们把它交给 Summary Block。

实际上我们可以看到 Summary Block 会经过一个门限签名,这个签名所需要用的公钥是上一个区间用的公钥。我们这个区间 Summary Block 会有之后区间运行所需要的公钥,意味着运行一次 DKG 加入了新节点,这个公钥可能就发生了改变。私钥显然是发生了改变,因为有新的节点加入,公钥也发生了改变,我们就说下一个区间是用新的公钥来进行验证签名的。

如此反复我们就得到了每一个区间的 DKG,每一个都有 Summary Block。需要验证 Summary Block,我们必然需要知道上一个区间的公钥是正确的,我们就需要验证上一个区间的 Summary Block,这样它们之间形成了一个链条,这个链条也是追溯到最开始的创世区块,所以我们并没有解决我们想要解决的问题,虽然说做了一些强化,但是没有从根本性上解决,我们还是需要保持历史节点,至少是 Summary Block 的历史节点。 (责任编辑:admin)

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