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

我的网站

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

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

时间:2021-09-18 17:00来源:未知 作者:admin 点击:
这个怎么办呢?通过研究,我们发现有一种新的算法能够在运行 DKG 的时候不改变它集体的公钥。 这个算法大概的意思:假如说我们这边有一个节点发生故

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

这个怎么办呢?通过研究,我们发现有一种新的算法能够在运行 DKG 的时候不改变它集体的公钥。

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

这个算法大概的意思:假如说我们这边有一个节点发生故障导致它丢失了,我们加入一个新的节点,已有的这三个节点还是保留它各自的密钥,有它各自的秘密,可以把这些秘密通过零知识证明,不暴露它的秘密。可以做一些 reshare,可以分成四份,这四份再组合在一起。这三个节点都把自己的秘密分四份,四份重新组合一下,又得到了四个节点的私钥和节点的公钥,它们就可以用节点的私钥来做签名。

把这些签名合在一起,需要验证集体签名所需要的集体公钥,它跟以前是一模一样的,也就是说集体公钥是没有发生变化的。虽然我们又运行了一次 DKG,虽然我们加入了新的节点,但是我们保证了公钥的不变性。这就解决了刚才谈到的问题,即 Summary Block 需要保持它的历史区块的问题。即只需要一个公钥,就不需要保存历史记录了。

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

具体到实现上还是有一些新的问题。从节点的角度来说,新节点的加入,它要产生下一个区块的话,就需要知道前一个区块的哈希,所以就需要和其他节点交互,得到前一个区块,比如在 203 的区块高度,我们发现做今后的计算我们不需要高度 200 以前的数据,我们只需要高度 200 以后的数据,假设这中间数据的依赖关系已经可以做到这点,就是说 200 以前我们可以完全丢掉,这时候在 200 这个高度我们就可以对 200 高度的这些区块,这些状态和它一起打个包,把这个包做一个签名,得到了集体签名之后,这个包就可以用来给新加入的节点。

它只需要验证一下这个包是可信的,再跟其它的节点同步一下,我们把从这个包到目前最新的区块重新同步到新的节点上来,这个新的节点就可以加入接下来的计算了。

通过这样一个方式,我们能够对 DKG 的算法进行一些改进,加入零知识证明和 resharing 的方法,我们就可以丢弃历史包袱。

我们来看一下这个技术在 Internet Computer Blockchain 架构里面的具体应用。

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

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