zoukankan      html  css  js  c++  java
  • 侧链带来的问题

    侧链给加密货币领域中的很多问题提供了解决方案,为比特币系统的革新带来数不清的机会,但同时,侧链本身也并非没有缺陷。本文我们将审查一些潜在问题,并探讨可能的解决方案或变通方案。

    额外复杂度

    侧链在以下几个层面引入了额外的复杂度。

    在网络层面,我们有了许多独立的、非同步的区块链,支持相互间转移。它们必须支持可被后期重组证明宣布失效的交易脚本。我们还需要软件自动检测不正当行为,以及生成并发布相关的证明。

      

    在资产层面,简单的“一条链,一种资产”准则不复存在了;单条链可以支持任意多的资产,甚至包括该链首次被创建时还不存在的资产。这些资产的每一个都要标记上该资产的来源链,以确保资产的转移可以被正确地解析。

      

    仅让区块链基础架构能处理高级功能是不够的:管理钱包的用户界面也需要重新考虑。目前,在竞争币的世界中,每条链都有自己的钱包,用以支持该链上币的交易。需要改写这些钱包以便支持多个链(可能带有不同的功能集)和链间资产的转移。当然,如果令用户界面过于复杂,完全可以选择不使用某些功能。

    欺骗性转帐

    理论上,任意深度的重组都是有可能的,这让攻击者能制造一个比发送链的竞赛期时间长的重组、在发送链撤消该半侧的转帐前,将币在侧链间完全转移。结果将使接收链上币的数目与发送链上可赎回的锁定输出的数量不对等。如果允许攻击者将币转移回初始链,他将增加他自己币的数量,让该侧链上其他用户付出损失。

      

    在讨论如何处理这一问题前,我们注意到,通过简单地延长转移的竞赛期就可以使这种风险变得任意小。那好,可以用两条链的相对哈希算力生成一个函数来决定竞赛期的持续时间:接收链可以仅在见到一个等同于该链1天工作量的SPV证明时才解锁币,这一证明可能相当于发送链上几天的工作量证明。类似这样的安全参数是特定于侧链的属性,可以针对每个侧链的应用进行优化。

      

    不管这种事件有多不可能发生,很重要的一点是,不能因侧链的责任造成灾难性故障。可以创建一个SPV证明见证这一事件,并且侧链可以接受这种证明。可以设计侧链,选下面的多种方式之一来作应对:

      

    不做应对。这样做的结果是,该侧链是一个 “部分准备金(银行)”, 存储来自其他链上资产。对于微量数额,如果人们认为少于丢失的侧链币,或是有承保人承诺偿付丢失的资产,这一方式可以被接受。然而,超出一定的阈值后,很可能发生从该侧链提现的“银行挤兑”,最终要有人担下损失。间接损害可能包括对侧链信心的普遍丧失,父链的代价则是要处理一个突如其来的交易高峰。

      

    楔入及所有相关的交易可以被回退。然而,由于币往往会散发出去,交易历史会交织在一起,即使是刚经历很短的时间就回退,后果也可能是毁灭性的。这还限制了资产的可置换性,接收者将倾向于选择历史“清白”的币(没有近期楔入的)。我们预计这种可置换性的缺失可能会导致灾难性后果。

      

    所有币的数量可以被缩减,同时汇率维持不变。与新用户相比,在攻击发生前将币转移到侧链的用户会比较不利。这等同于降低侧链币兑换的汇率。

      

    在这些应对基础上也可以加以变化:例如,临时降低汇率,使那些在该侧链“挤兑”的人得不偿失。

    挖矿中心化的风险

    另外一个重要的顾虑是,引入带有矿工费的侧链是否会给矿工资源带来压力,产生比特币系统(挖矿)中心化的风险。

      

    由于矿工们收到的报酬,来自于其所工作的各链的区块补贴及交易费,出于经济利益,他们会根据难度变化和市场价值变动,切换到价值上差不多的不同区块链,为之提供多方成员动态签名(DMMSes)。

      

    我们的答复是,一些区块链已稍稍改进了区块头的定义,使其中包含一个比特币系统DMMS,因而,矿工能把提交给比特币系统的DMMS同样用于一个或多个其他区块链——这称为合并挖矿。因为合并挖矿允许将工作量复用到多个区块链上,矿工可以从每个他们提供了DMMSes的区块链上索取报酬。

      

    由于矿工们要为更多的区块链提交工作,跟踪和验证全部这些链需要更多的资源。只为区块链的某一子集提交工作的矿工得到的报酬,比为所有可能的区块链都提交工作的矿工少。小规模的矿工可能无法支付为每个区块链挖矿的全部成本,因而与较大的有组织的矿工相比,会处于劣势,后者能从更大的区块链集合中索取更多的报酬。

      

    不过,我们注意到,矿工们可以将其所工作的任何区块链子集上的验证和交易选择委派出去。选择委托机构能使矿工免除几乎所有对额外资源的需求,或者能为仍处于验证过程的区块链提交工作。然而,这种委派的代价是区块链上验证和交易选择的中心化,即便工作量生成本身仍是分布式的。不过,矿工们也可以选择不为仍处于验证过程的区块链工作,用自愿放弃一些报酬来提高验证过程的去中心化。

    软分叉风险

    比特币系统中,软分叉是对比特币协议的一个补充,通过在设计上严格缩减合法交易或区块的集合来实现向后兼容。软分叉的实现只需挖矿算力中的绝大多参与即可,不需要所有的完全节点都参与。不过,对于软分叉出来的功能,除非所有完全节点都升级,否则参与者的安全性仅是SPV级。软分叉已经被使用过很多次,用于部署新功能和修复比特币系统中的安全问题。

      

    按本文所述方法实现的双向楔入仅有SPV安全性,因此,对矿工诚实性的短期依赖度高于比特币系统。不过,如果双方系统的所有完全节点都相互检查,并用一个软分叉规则要求相互的合法性,那么,双向楔入的安全性可以提升至完全等同于比特币系统的水平。

      

    这种方式的负面影响是,失去了对任何有软分叉需要的侧链的隔离。由于隔离是使用楔入式侧链的目标之一,除非某一侧链已经几乎被普遍使用,这种结果将是不受欢迎的。不过,假设没有楔入式侧链,接下来的备选方案是直接对比特币系统硬分叉来部署单个的变更。这会更唐突,无法提供真实的机制证明新功能成熟,还需要冒比特币系统共识上的风险。

  • 相关阅读:
    Unreal Engine 4官网教程
    快速上手制作暗黑类游戏动作打击感的一些要点
    充分利用 UE4 中的噪声
    综合帖:多角度闲聊游戏打击感
    鹅厂内部分享:七步教你从无到有做数值
    二叉树、二叉搜索树、平衡二叉树、B树、B+树的精确定义和区别探究
    MySQL的InnoDB索引原理详解
    分布式核心
    Mysql 原理以及常见mysql 索引等
    redis核心原理
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313571.html
Copyright © 2011-2022 走看看