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

我的网站

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

全景式解读跨链技术方案与应用形态(8)

时间:2021-09-02 17:18来源:未知 作者:admin 点击:
较大的区块头,将使得轻节点合约变得笨重,占用目标链的巨大存储空间 源链较快的出块速度,将导致轻节点合约需要频繁的同步和验证新区块。 这两者

较大的区块头,将使得轻节点合约变得笨重,占用目标链的巨大存储空间

  • 源链较快的出块速度,将导致轻节点合约需要频繁的同步和验证新区块。

  • 这两者,都将造成轻节点合约在目标链上巨大的 Gas 消耗,严重时会使得采用轻节点侧链技术实现跨链变得不具备经济可行性。

    怎么办?回到见证人方案吗?但轻节点式侧链技术的优越性如此诱人,我们还是希望继续使用它。有没有办法让轻节点合约在不丧失其 SPV 验证能力的前提下,对其进行改造和扩容?

    区块链行业的研究者们在两个方向上对轻节点侧链技术做了改进。首先是对轻节点合约进行「瘦身」,使其体积变得更小,且不随区块增加而线性增长,其次是对轻节点合约进行「减负」,将区块验证环节挪到链下,让轻节点合约只做交易的 SPV 验证。

    轻节点合约的「瘦身」

    我们需要了解一个新的协议,名为「FlyClient」,该协议由斯坦福大学的 Benedikt Bunz 等人在论文《FlyClient: Super-Light Clients for Cryptocurrencies》中提出的一种新型轻节点协议。Flyclient 轻节点不需要存储所有的区块头,而是只需存储最新的区块头。通过最新的区块头,即可随时「恢复」所有的历史区块头。该功能是通过一种叫「默克尔山脉」的密码学算法实现的。

    默克尔山脉(Merkle Mountain Range)简称 MMR,是默克尔树(Merke Tree)的一种变体,我们将一条区块链的所有历史区块的哈希值作为叶子节点,通过 MMR 算法,生成一个 MMR 根值,并将该值写入最新的区块头,即可用该值去验证所有的历史区块头。

    FlyClient 轻节点可以不断删除历史区块头,只保留最新的区块头,保持「轻盈」。当需要恢复某个区块头时,可以通过 Relayer 重新从全节点获取,并用最新区块头里的 MMR 根值,去验证恢复过来的区块头是否正确。

    如果源链是概率最终性链,Flyclient 轻节点在接收 Relayer 传递的最新区块头时,会多一个验证步骤,那就是要求 Relayer 随机提供某个历史区块头,以供抽查。这样做是为了防止一种针对 Flyclient 轻节点的特有的新形式的欺诈。具体的欺诈方式和抽查算法比较复杂,本节先不做展开,在后续的案例介绍章节,将结合具体的跨链项目进行介绍。

    Flyclient 轻节点真正实现了「把大象压缩成饼干」,让部署在目标链的源链轻节点合约可以轻装简行,让轻节点侧链式的跨链具有更好的经济可行性。但对于目前大部分的区块链而言,MMR 根值并不是区块头的固定部分,因此,Relayer 必须自己运行全节点,计算 MMR 根值,将 MMR 值加入区块头一并传递到轻节点中。一些较新的区块链已经将 MMR 根值作为区块头的固定部分了,现有的比较成熟的公链,也在有人提案软分叉升级,将 MMR 根值加入区块头固定结构中。区块头中固有 MMR 值的区块链,将对跨链开发更加友好。 (责任编辑:admin)

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