披露:本文的作者是该基金会的创始人和首席科学家 以太坊项目
上周,亚当·贝克(Adam Back)和奥斯汀·希尔(Austin Hill)与 公告 在“我们聊聊比特币”上,他们宣布了他们最新的项目:“侧链”。他们描述了这个想法,它将允许存在替代的区块链,也许具有不同的规则,允许各种附加功能或交易类型,但其货币单位的价值与比特币的价值挂钩。目的是允许实验使用不同的比特币协议扩展,使用单独的网络来避免对比特币本身的任何风险,同时仍使用相同的基础货币单位。这个想法一经宣布,便引起了公众的广泛关注,并重新燃起了人们的希望,那就是比特币协议有可能变得比今天强大得多。.
引擎盖下
侧链背后的想法并不新鲜。这个概念至少在去年12月就已经存在,并且在此之前已经有好几年了。前体,一种称为单向钉住的协议,是一种理论上用于管理从“ Bitcoin 1.0”到“ Bitcoin 2.0”的过渡的机制,其工作原理如下。假设在比特币1.0中,已经通过采矿发行了1300万个货币单位,还有800万个仍待发放。此后,BTC2.0的分配模型将按照与BTC1.0完全相同的时间表通过采矿释放800万个单位,但其余1300万将通过称为“燃烧证明”的机制进行分配。.
从本质上讲,一个人将采用一个单位的BTC1.0,将其发送到不可花费的地址(例如1111111111111111111111114oLvT2),并提交该交易已发生的加密证明,并由发送该交易的同一私钥签名,作为交易进入比特币2.0。根据比特币2.0协议,这将使用户有权接收一个单位的2.0。这称为“单向挂钩”,因为一个BTC2.0的值最多等于一个BTC1.0。否则,人们将通过以1:1的比率转换比特币来套利差额。但是,除了在市场上出售用于BTC1.0的BTC2.0之外,没有其他方法可以回去,因此,如果实验失败,则BTC2.0的价值可能会降为零。.
比特币侧链使用此系统的改进版本,称为“双向钉住”,其工作原理如下。为了接收一个单位的BTC2.0,一个人需要拿一个单位的BTC1.0并将其发送到一个“脚本”中,我们将其称为X,暂时不作描述。比特币中的脚本是一个地址,该地址实际上不是密码箱,而是用作密码箱,仅当给定满足特定条件的交易时,该密码箱才解锁比特币。例如,可以有一个脚本,该脚本向提交完全由数字3和5组成的五十位数素数的第一人解锁资金。比特币2.0区块链使用户有权使用一个单位的BTC2.0.
现在,X的定义很简单:如果给定有效的密码证明,发件人销毁了一个BTC2.0单元,则X会解锁资金(请记住,这是BTC1.0的一个单元)。因此,存在一种将BTC 1.0转换为BTC2.0的机制,正是这种机制创建了另一种机制,其价值受到所创建的BTC2.0总数的限制,该机制可用于将BTC2.0转换回BTC1.0。 。因此,双向钉.
这些“加密证明”使用的机制依赖于比特币中使用的称为Merkle树的加密结构。在比特币块中,不是简单地直接使每个交易直接进行该块,而是实际上仅在块头中包含一个32字节的哈希。这个32字节散列本身是从另外两个32字节散列中计算出来的,每个散列都来自另外两个32字节散列,依此类推,直到最后底部的值是事务本身。正是这种机制的目的是允许存在紧凑证明,即特定交易在特定区块中。所需要的就是从该事务到根节点的哈希的一个分支,或者对于1000个事务,总共有10个哈希,对于一百万个事务,总共有20个哈希。这是不可能伪造的。如果您甚至尝试更改树中的单个事务,更改都会通过散列向上传播,直到根节点最终完全不同为止.
但是,这不能完全解决问题。它告诉您的是某个地方的某个块包含给定的事务。它不会告诉您交易在主链中;实际上,交易中使用的相同比特币可能已经发送到其他来源,从而使交易无效。有两种方法可以解决此问题。一种方法(到目前为止是最简单的一种方法)是要求比特币2.0中的证明机制不仅要求Merkle树枝,而且要求区块链返回六个区块,就像商人使用挖掘能力来要求六次确认一样作为有效性的代理。为了获得更高的安全性,可能需要更多数量的块(例如60个)。这种方法很简单,并且似乎满足了所有必需的参数.
挑战性
然而,如上所述的上述机制是非常不完善的。当普通商人要求进行六次确认时,要对该商人进行双花攻击,需要比实时组合其余网络更快地产生六个区块,而这一任务至少需要总网络散列功率的30才能与任何网络协同工作。成功率不可忽略。但是,通过上述的双向挂钩机制,具有甚至1个哈希能力的恶意矿工最终可以生成六个块,甚至六十个块,然后使用这些块来欺诈性地声明已放入所有BTC1.0中BTC2.0密码箱(或在另一个方向上欺诈性地要求无限数量的BTC2.0)。可能想到的一个可能的补丁程序是,要求创建密码箱的同一人打开它,从而限制了每个人可以造成的损害,但这不能解决问题,因为恶意矿工很容易与任何人串通别的。一个根本的问题是,无法提出一种机制来验证不会随着时间的推移自我更新的区块链,要么很难解决,要么很可能无法解决,而仅仅停留在比特币的“静态密码箱”脚本范式之内.
另一种方法,可以解决此问题而又不过分困难,它更加复杂且具有侵入性。它本质上要求将比特币1.0的所谓“轻客户端”包含到比特币2.0中。轻客户端最容易描述为长期的“合同”,它是一种在区块链上具有大量内部状态的程序,每次向其发送交易时便会运行该程序,该程序将接受区块并在区块头中验证区块头。就像您手机上的比特币客户端一样。然后,该合同将在比特币1.0中保留所有区块头的运行列表,并且为了接收一个BTC2.0,一个人需要提交加密证明,以证明您在BTC1.0中进行了必需的交易以及安全性。存放0.1 BTC2.0.
合同将检查证明是否有效,最终在合同自己的内部微型区块链中的一个区块中,然后等待发生的两件事之一。首先,一旦在合同中增加了60个比特币1.0区块,它将向发送方释放一个单位的BTC2.0以及保证金。或者,如果其他人在这段时间内提交了证明交易无效的密码证明(例如,它花费了不存在的比特币),那么他们将获得保证金.
这样可以解决安全性问题,但有一个重要缺陷:按现状,它不能在比特币协议中完成。像这样的协议很容易实现 以太坊, 因为它是专门为合同而设计的,但是比特币的脚本功能不允许存在内部状态的合同存在,因此在比特币内部进行此操作将需要对比特币1.0协议进行非常重大的更改。最终,奥斯汀·希尔(Austin Hill)和亚当·贝克(Adam Back)采取的方法可能看起来与上述两种策略都不尽相同。但是,问题的复杂性表明,仍然存在许多挑战.
矿业
另一个重要的问题是:如何固定这些侧链?确保区块链安全的标准机制是采矿,但是采矿需要一种奖励该链上矿工的机制。在侧链中,侧链货币的每个单位必须由包含在比特币区块链上的BTC单位的脚本密码箱支持,因此没有简单的机会无处不在地发行侧链货币单位。这样做有两种可能性:滞期费(即,对侧链上所有BTC征收每年的百分比税)和交易费用。但是,这两种方法都提供了相当低的收入,因此完全不能确定普通的老式独立采矿是否可以解决该问题。.
有两种方法可以解决此问题。一种方法是通过权益证明来保护侧链,使用交易费中的少量收入来向参与的利益相关者支付一定的利率。但是,这种方法很难实施到侧链中,因为验证股权证明所涉及的计算可能过于复杂,无法直接在区块链上有效实施。另一种方法是由Adam Back和Austin Hill提出的,称为“合并挖掘”。本质上,矿工在比特币块中包含来自比特币块和Namecoin块的数据,从而使矿工可以使用相同的计算工作量同时为两个链提供安全性.
但是,正如比特币开发人员彼得·托德(Peter Todd)所言,合并采矿的概念确实存在一个非常重要的安全漏洞:除非大多数比特币矿工同意合并开采特定的链,否则该链绝对是不安全的。为了理解原因,首先考虑使用更传统的山寨币的情况,在我们的示例中,为简单起见,运行SHA256(如果山寨币使用自定义算法,那么莱特币矿工可以发起攻击)。如果山寨币具有5比特币的哈希能力,则为了通过双倍花费攻击链,至少需要5比特币网络的能力需要暂时将其自身重定向到在altcoin上进行挖掘。这可能是有可能的,但却是代价高昂的举动:在进行攻击的同时,比特币矿工将损失从比特币上开采的收入。但是,在采用合并开采的侧链的情况下,在侧链的主线上进行挖掘或对其进行攻击都是免费的,因此,在攻击替代链方面不会产生经济诱因。这不仅仅是一个猜测。现实中有一些矿池攻击合并采矿链的实例.
除了安全性之外,这种对合并挖矿的依赖还暴露了侧链概念的另一个令人担忧的局限性:尽管加密货币的精神可以说是无许可创新的精神,但创建侧链需要所有比特币中50个的许可和积极协助矿池运营商。这些限制共同表明,尽管侧链协议适用于许多用例,但对于所有用户而言肯定不是理想的选择.
承诺
如果能够解决围绕侧链的技术问题,那么它们带来的希望是什么?目前,加密货币的发展基本上可以分为四个象限。第一象限包括使用比特币货币和比特币区块链的项目-本质上是比特币本身。第二象限是使用比特币区块链但不使用比特币货币的协议; Mastercoin,彩色硬币和Counterparty就是很好的例子。第三象限同时使用独立货币和独立区块链;它包含Ripple,Litecoin和NXT之类的应用程序(作为示例)。现在,在侧链中,最后一个象限也已填满:使用独立网络,但使用比特币作为基础货币.
看看利基最适合的应用程序将很有趣。对于全新的生态系统,这可能不是正确的方法。对于像Ripple或Ethereum这样的完全独立的网络来说,将其主要内部代币财务上与比特币绑定,并使两者暴露于彼此的价格变动中是没有意义的。在这种重大努力的情况下,尝试不同的货币政策通常也是有意义的。以太坊的以太坊具有线性发行模型,该模型每年持续发行一定数量的货币单位,而Ripple则一次将所有1000亿个XRP单位全部发行给Ripple组织,该组织将随着时间的推移将其发行给开发人员,投资者和参与分布式计算项目的人们。对于要用作主要协议更改的分支,例如从SHA256升级到SHA3,或者将量子计算机从ECDSA升级到Lamport签名或NTRU,这绝对是合情合理的。对于中间的所有内容,都需要根据具体情况来确定.
对于以太坊,需要牢记一个特别的注意事项:以太坊是一个通用的加密共识平台,而不是特定的“山寨币”。因此,以太坊平台上可以有许多不同的货币作为合约共存。一个人可能会厌倦旧的固定供给货币,具有由分散的自治组织管理的货币政策的货币,存在以补贴科学研究或提供基本收入的货币,甚至具有内置的双向交易机制的货币。充当侧链。因此,以太坊无法准确地陷入侧链象限或Ripple / Litecoin / NXT象限;两者都存在.
的确,以太坊起源区块一旦启动,很有可能在三个月内实现以合同形式实现的比特币,莱特币和狗狗币的侧链。如果能够成功并安全地实施侧链,这意味着以太坊甚至可能成为使用涉及提款限制等功能的强大多签名存储合同来存储BTC,LTC或DOGE的首选方式。在通用链上的合同,高性能专用山寨币,准集中式OpenTransactions服务器,侧链和比特币本身之间,一件事情变得越来越清楚:加密货币将能够前所未有地进行互操作.