zoukankan      html  css  js  c++  java
  • 区块链侧链的产生

    很早以前有发过一篇讲侧链的文章,但不是很深入,一直也在寻找这方面的资料,直到春节期间偶然翻到这篇文章,由于文字较多,决定按照专题发出来,共同学习,重新编排便于阅读

    1983年,David Chaum将数字现金作为一个研究课题首次提出,通过设置一个可信的中央服务器,来防止双花(双重花费)。为降低这个中央可信方带给个人的隐私风险,并确保资产的可置换性,Chaum引入了盲签名——提供一种加密方法,来防止与中央服务器的签名进行关联,同时还能让中央服务器进行双花防范。对中央服务器的需求,是数字现金的致命弱点。虽然有可能通过将中央服务器的签名替换为含几个签名者的门限签名,来分散单点故障,但区分和辨识签名者的可审计性变得很重要。在这种方法下,系统仍然易出故障,因为每个签名者都可能会出问题,或者是一个接一个地被人为制造出问题。

    2009年1月,中本聪发布了第一个广泛使用的点对点无信任电子现金系统,用基于工作量证明的共识机制来替代中央服务器的签名,用经济上的激励实现协同工作。比特币通过聚合成区块的方法来跟踪支付,每个区块关联有一个区块头(blockheader),用密码学方法来指代(承诺):区块的内容、时间戳、前一个区块头。到前一区块头的“指代”(commitment)构成了区块链,或者说是提供了一个明确交易次序的链。(在密码学中,commitment指的对原始数据用加密算法进行处理,生成的摘要可以在不泄露原文的情况下可以有效地代指原始数据。)

    我们注意到,比特币系统的区块头可以看作是动态成员多方签名(或称DMMS)的一个实例,我们认为它作为群签名的一种新类型,有独立的价值。尽管截止目前的文献中尚未提及,比特币系统提供了这种签名的第一个实施方案。一个“动态成员多方签名”(DMMS)是由一组数量不固定的签名者所形成的数字签名。

    比特币系统的区块头是DMMS,因为其工作量证明机制具有让任何人无需登记即可献力的特征。此外,贡献量不是让每个参与方提供一个门限签名,而是通过计算力来衡量,这可以允放使用匿名成员身份,并且不会有女巫攻击(Sybil attack)的风险(一个参与方多次加入,获取在签名中不相称的输入份额)。基于这个原因,DMMS也被描述为是拜占庭将军问题的一个解决方案。

    由于区块是链接在一起的,比特币系统的DMMS是累积的:任何一个区块头的链(或链的片断)都是第一个块的DMMS,其计算强度等于组成它的全部DMMS之和。中本的关键革新就是如上所述的,使用了基于计算力的DMMS签名,而不是基于知识的签名。由于签名者是证明其计算工作,而不是典型数字签名中的证明其私密知识,我们称这样的签名者为“矿工”。为了获取区块链历史的稳定共识,系统提供了经济激励,只有当矿工们构建了可共享的有效历史记录,他们获取的钱币形式的交易费和奖励才会有价值,这激励他们诚实地工作。因为比特币的累积DMMS强度与所有矿工们贡献的计算力成正比,算力占少数的一方想改变链是行不通的。如果他们试图修改受DMMS保护的帐簿,他们就会落后,并且一直无法追上达成共识的区块链的进度。

    由于矿工们并没有形成一个可辨识的集体,他们对决定交易有效性的规则没有自由裁量权。因此,比特币的规则必须在它的历史初期就要确定,除非每个网络参与者达成一致,否则新的有效交易类型无法添加进来。即使能达成这样的一致,变更的部署实施也很困难,因为这需要所有参与者都要用相同方式落实和执行新的规则,还要考虑到边缘情况以及其他因素导致的意外的影响。

    创新的需求

    正因如此,比特币系统的目标相对简单:它是一个支持单一原生数字资产传输的区块链,不能与其他任何资产相兑换。

    这可以简化很多具体实现,不过这样的简化正面临着现实世界需求的挑战。尤其是,目前的创新主要围绕在以下几个方面:

    1. 在可扩展性和去中心化间的取舍。例如,更大的区块可以支持更高的交易速率,代价是加大了验证方的工作量——中心化的风险。

    同样,在安全性和成本之间也存在取舍。比特币历史记录中用同等级别的不可逆性存储了每一笔交易。这种方式的维护代价很高,对低价值和低风险的交易来说也未必合适(例如,所有参与方已经商定了一个共同的法律机构来处理欺诈行为)。

    由于不同交易的价值和风险状况有很大的不同,这样的取舍应当针对每笔交易来应用。然而比特币系统的构建仅支持以一个标准来应对所有问题。

    1. 在区块链的功能上存在更多的取舍。例如,是让比特币的脚本更强大来支持简明和有用的合约,还是减少功能以便于审计。
    2. 一些非货币的资产也可以在区块链上交易,例如欠条、其它合约和智能财产。
    3. 存在一元化育成的风险:比特币系统由许多密码学组件构成,其中的任何一个组件出问题,都会导致整体价值的损失。如果有可能,不要用同一套算法来保护每个比特币会更谨慎些。
    4. 新技术可能会带来比特币系统创建初期没有想到的新功能。例如,用加密累加器、环签名或Chaumian盲签名来增强隐私保护和抗审查性。
    5. 即使有这样做的迫切需求,但没有对比特币系统安全升级的途径,这意味着任何更改都需要所有参与者协同执行才能生效。比特币的开发者们之间达成了一个共识,对比特币系统的变更必须缓慢、谨慎,且仅当社区有明确同意时才进行。

      

    实际上,由于功能必须被广泛认可后才能采纳,这限制了参与者的个人自由和对其钱币的自主性。小的团体无法实现诸如专用脚本扩展这样的功能,因为他们缺少广泛的共识。

    侧链产生的原因

    早期针对比特币系统中这些问题的解决方案是可替代的区块链的开发,又称竞争链(altchains),除针对上述关注点有所修改外,共用了比特币系统的代码库。然而,靠创建一个独立的但本质类似的系统来实现技术变更,是存在问题的。

      

    问题一,基础架构碎片化:由于每个竞争链都使用自己的技术堆叠,经常会有重复性或遗失的工作。因此,由于竞争链的实现,可能并未扫除比特币系统中安全特定领域知识的障碍,安全问题常常跨竞争链被复制,而它们的修复也不解决这些问题。必须消耗大量资源或是建立专家评价评审新的分布式加密系统,如果没这样做,安全隐患常常无法察觉,直到漏洞被利用。结果是,我们看到了一种动荡的、无法前航的发展环境,大部分显现出来的项目可能在技术上是最不健全的。打个比方,想象一下在互联网上,每个网站使用自已的TCP实现将自定义的检验和数据包拼接算法广播给最终用户。这不会是一个能生存的环境,这也不是竞争链能生存的环境。

    问题二,这样的竞争链和比特币系统一样,通常有自己的带有浮动价格的原生加密货币,或称竞争币。为了使用竞争链,用户需要通过一个市场来获取这种货币,这将使他们直接面对新货币带来的高风险和波动。此外,因为有独立解决初始分配和估值问题的需求,与此同时还要在不良的网络效应与拥挤的市场中竞争,这既阻碍了技术创新,又助长了市场的博弈。这危及的不仅仅是这些系统的直接参与者,还危及到整个加密货币行业。如果这一领域被公众认为风险过高,对加密货币的采纳可能会受阻,或者有可能完全被遗弃(自愿或立法上)。这表明我们希望有一个环境来让可互操作的竞争链能易于创建和使用,但不要产生不必要的市场和开发碎片。在本文中,我们认为这些看似矛盾的目标有可能同时实现。核心考察点是 “Bitcoin” 这一区块链在概念上是独立于“bitcoin”这一资产:如果我们能在技术上支持区块链间资产的移动,可以通过简单地复用现有比特币的方式,开发出用户可能会采纳的新系统。

    楔入式侧链

    我们称这种可互操作的区块链为“楔入式侧链”。 我们将在下一章中给出精确的定义,这里先列出以下“楔入式侧链”所需具备的属性。

    1. 在侧链间移动的资产应当能够被当前持有者移回,但除此之外的任何人则不行(包括前持有者)。
    2. 资产的移动应当无交易对手风险;也就是说,不诚实的一方无法阻止转移的发生。
    3. 资产转移应当是元操作(原子操作),即,要么完全完成,要么根本不发生。不应存在会导致资产损失或允许欺诈产生的失败模式。
    4. 侧链应当设有防火墙:一个会使某条链发生资产铸造(或偷盗)的缺陷(bug),不应导致任何其他链出现资产的铸造或偷盗。
    5. 区块链重组时应当处理干净,即使在资产转移的期间也要如此;任何破坏应当只发生在它所处的侧链上。总的来说,理想情况下,侧链应当完全独立,自其他链上的全部所需数据由用户提供来。侧链的验证者应当只有在侧链本身的显式共识规则有要求时,才需要跟踪其他链。
    6. 不应要求用户去跟踪他们未主动使用的侧链。

    早期“转移”钱币的解决方案是用一个可公开识别的方式来销毁比特币,让新的区块链能检测到,以允许铸造新币。这解决了部分上面提到的问题,但由于这种方法只允许单向转移,因此还不足以满足我们的目的。

    我们提出的方案是由资产转移的交易本身提供所有者证明来转移资产,避免让节点有跟踪发送方链的需求。从上层实现角度,当资产从一个区块链向另一个链移动时,我们在第一个区块链上创建交易锁定资产,然后在第二个区块链上创建一笔交易,该交易的输入中包含一个锁定已正确完成的密码学证明。这些输入用某种资产类型来标记,比如创生出资产的区块链的创世哈希(genesis hash)。

    第一个区块链我们称之为父链,每二个则简单称为侧链。在某些模型中,两条链可对称地来处理,因此这一术语应当看成是相对的。从概念上讲,我们打算将资产从(初始)父链转移到一条侧链,可能会再转移到别的侧链,最终还能转回至父链,并保全初始资产。一般我们把父链看成是比特币系统,侧链是其他区块链中的某一个。当然,侧链的币(coin)也可以在侧链间传递,并非只能与比特币系统进行往来;不过,由于任何一个最初从比特币系统移动的币都可以移回去,所以不管变成什么样,它仍是个比特币。

    这让我们解决了前面章节提到的碎片化问题,对只想专注于技术创新的开发者来说是个好消息。

    此外,由于侧链是从父链中转移现有资产而不是另铸新资产,侧链不会引起未经授权的铸币,维护资产的安全和稀缺性依靠父链来实现。

    更进一步说,参与者不必再担心他们的持有物会被一个实验性竞争链锁往,因为侧链币能够用等额的父链币来赎回。这提供了一个退出机制,减少因软件无人维护而造成的损失。

    另一方面,由于侧链还是一个独立于比特币系统的区块链,它们可以自由地尝试新的交易设计、信任模型、经济模型、资产发行语义,或加密特性。我们将在第5节中进一步探讨一些侧链的可能性。

    这一基础架构的额外好处是对比特币系统本身进行改变不再那么迫切:与其策划一个需要各方均达成一致并一起实施的分叉,不如用侧链来创建一个新的“改变了的比特币系统”。从中期看,如果广泛认可新系统有进步,最终会明显看到,相对于比特币父链,更多的人会使用这个新系统。由于父链的规则没有任何修改,任何人都可以根据自己的时间去切换,不会有任何因共识失败所带来的风险。从长期看,如果父链被认为,或当父链需要改变时,侧链的成功将给父链的更改提供了所需的信心。

  • 相关阅读:
    spring bean的三种管理方式·
    mybatis解决字段名和实体属性不相同
    python字符串格式化方法%s和format函数
    myeclipse配置springmvc教程
    2019ICPC南昌站
    浅谈可持久化线段树(主席树)
    2019CCPC厦门站总结
    牛客练习赛53 E-老瞎眼pk小鲜肉(思维+线段树+离线)
    2019牛客暑期多校训练营(第一场)A
    [The Preliminary Contest for ICPC Asia Nanjing 2019] L-Digit sum
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313569.html
Copyright © 2011-2022 走看看