【比特币的美元走势图】Vitalik Buterin:数字侧链的方向、挑战和可能

文章正文
发布时间:2020-06-29 23:10

在上周,【比特币的美元走势图】Adam Back 和 Austin Hill 在 Let’s Talk Bitcoin 上宣布了一份公告,他们公布了他们最新的项目:数字侧链 Side Chains。他们描绘的这个想法,允许替代性区块链存在,同时也允许定义多种附加特性或交易类型的不同规则,且都发生在同一附属于比特币区块链的单位货币内。项目意在使比特币协议允许实验不同的扩展特性,使用分离的网络来避免引起比特币网络自身的风险,但又共享同样的底层单位货币。这个想法甫一发布,就引起了对其概念的广泛的公开兴趣,并重燃了比特币协议潜在远比今天更强大的信心。

工作方向

侧链背后的想法其实并不新鲜;这个概念至少从 2013 年 12 月就有了,而它的前身则更早在几年前。它的前身是一个单向通过协议 one-way pegging,是一个理论上用来转换 Bitcoin 1.0 系统到 Bitcoin 2.0 系统的机制,它是这么工作的:假设,在 Bitcoin 1.0 协议中,有 1300 万单位的货币已经由矿工发行,还有 800 万在未来发行;Bitcoin 2.0 的分发模式则让矿工发行 800 万,这部分和比特币 1.0 的时间安排完全一致,而另外 1300 万单位则由焚毁证明机制 Proof-of-Burn 分发。

最基本的,我们可以用一单位 BTC 1.0 货币(一代币),发送到一个不可支出的地址(如 1111111111111111111114oLvT2),然后提交一次证明这次交易发生的密码学证明,再用支出这笔交易的相同密钥给证明签名,就完成了一次转入 BTC 2.0 (比特币 2.0)的交易。根据比特币 2.0 协议,这会使用户从比特币 2.0 收到等值的一单位货币;这就叫作「单向通过」,因为比特币 2.0 的单位价值至多和比特币 1.0 的一单位相等,否则,一旦转换比特币的汇率高于 1:1 就会被利用价差套利。但是,除非在市场上靠卖出比特币 2.0 来买入比特币 1.0,都不可能逆转这个转换,所以如果实验失败了,比特币 2.0 的价值就会跌成 0。

比特币数字侧链则使用了这个系统的改进版本,称为「双向通过」two-way pegging。工作原理:为了接收比特币 2.0 协议下的一单位货币,需要将比特币 1.0 的一单位发送到算法实体 X;我们先不具体定义这个实体——在比特币机制中,算法实体 Script 是一个不由私钥拥有,而且本质上是一个仅当满足一定条件的交易发生才解锁内部比特币的加密黑箱。举个例子,黑箱可以向第一个向它提交 50 位只由 3 和 5 组成的质数的人解锁资产。完成该笔交易并向比特币 2.0 区块链公布该交易的密码学证明,用户就从比特币 2.0 获取一单位的货币。

再来定义 X 就容易了:如果密码学方式有效证明发送者销毁了一单位的 BTC 2.0 货币,X 就会为其解锁等价的资产(当然,这是 BTC 1.0 的单位资产)。于是,我们就有了将 BTC 1.0 转换到 BTC 2.0 的机制,而又正是这个机制产生了限制 BTC 2.0 总生成数目价值的、可以将 BTC 2.0 转换回 BTC 1.0 的机制。因此,是双向通过。

这些密码学证明的使用机制依赖于比特币协议使用的的密码学构造 Merkle 树。比特币的任一区块中,并不是简单直接包含每笔交易数据块,实际上只有 32 字节的哈希值被包含在数据头内。这个 32 字节的哈希值是从另外两个 32 字节的哈希值合并计算产生的,它们中的任一个又是从再另外两个 32 字节哈希值得到的,如此推进直到底部数值是交易数据本身。这种机制精准地为特定的一笔交易被恰好包含在一个特定的区块,提供了简洁的证明:我们所需要的全部就是从一笔交易通过哈希回溯到根节点的那唯一一条路径,或 1000 笔交易对应的总共 10 个哈希,或 100 万次交易对应的 20 个哈希。这不可能伪造:如果你想尝试修改树中哪怕一笔单独的交易,改动也会通过哈希向上传播,最终导致根节点的哈希值完全不同。

但是,这也不能完全解决问题:所有能告诉你的就是在某个节点,某个区块,包含了指定的交易。但我们无法确知该交易是否还在主链中;事实上,在交易中使用的相同的比特币可能已经被送往了完全不同的地址,该历史交易因此失效。这有两个解决办法。其中一个提议,而且目前较简单的一个是,对于比特币 2.0 的证明机制,不止是验证 Merkle 树中的路径,也包含验证向上包含在内的六个区块,所以更像商家要求六个确认,用挖矿算力作为有效性的保证。要保证更高的安全性,可以验证更多数目,比如 60 个区块。这个方法简明有效,而且应该可以满足所有的变量需求。

挑战

然而以上的机制,如所描述,是相当不完美的。当一个普通商家要求六个确认的时候,实施针对这个商家的一次双花攻击需要比其他网络算力合在一起还要更快地产生六个区块,这就需要至少 30% 的总网算力,才不至于完全不可能成功。而上文描述的双向通过机制,一个恶意的矿工即使只用 1% 的算力就能生成 6 个区块,甚至 60 个!然后他就可以用这些区块欺诈性地拥有所有被放进比特币 2.0 加密黑箱的一代币(或者,换一种说法,欺诈性地持有无穷多数量的比特币 2.0)。一个我们能想到的可能的补救是,规定创建了黑箱的人才能开启黑箱,就可以限制每个人可能造成的损失。但这并不解决实际问题,因为恶意的矿工仍然可以轻易勾结其他人。最基本的问题,仍然是我们无法为不随时更新的区块链提供有效的证明机制,只要还坚持比特币的「静态黑箱」算法机制,就很难或者可能根本不能解决这个问题。

另一个提议较低难度就能解决问题,但更间接和侵入。它要求从一代币到比特币 2.0 有一个「轻量级终端」。这个轻量级终端可以简单看作一个长效的「合约」,在每次交易进行的时候在区块链上运行一个拥有大量内部结构的程序,和你手机上的比特币终端完全一样地接收区块和验证区块头部。这个合约会维护一个活动的列表,包含一代币中所有区块的头部信息。而且为了接收比特币 2.0,我们必须向合约提交一代币中所需交易完成的密码学证明,和 10% 的比特币 2.0 保证金。

这个合约会检查证明的有效性,结束于该合约内部自身的一个迷你区块,并等待两件事中其一发生:第一,一旦多于 60 个比特币 1.0 区块加入了合约,它就会分发一单位的比特币 2.0 和之前的保证金;另一种是,如果在此期间另外有人递交了无论何种理由的使该交易失效的证明(例如,它花费的是根本不存在的比特币),他们就只能收到那 10% 的保证金。

这可以解决安全性能,但有一个重大缺陷:它不能在现在的比特币协议基础上完成。在一些协议中,比如以太坊,相当容易实现,因为它就是为合约设计的。但比特币的算法实体功能不允许拥有内部结构的合约。所以在比特币内部实现这个任务会要求一代币进行非常大的根本性改动。Austin Hill 和 Adam Back 最终采用的提议可能采取这两者完全不同的策略;但,庞大的复杂度预示未来还有众多挑战。

挖矿

另一个重要的问题是:如何保护这些侧链?保证区块链安全的标准做法是挖矿,但挖矿就要求对该链条上矿工的奖励机制。在侧链中,每个单位的侧链货币必须得到锁在黑箱内的比特币区块链上的一个单位货币的支撑,所以不会有什么机会随便发行什么侧链货币(来奖励矿工)。有两种可能可以奖励矿工:征收停留税(即,在侧链上的比特币每年被征收的一定比例的税),和交易费。但是,这两种都只能提供相当微薄的收入,所以完全不能肯定过去简单的独立挖矿机制足够解决这个问题。

有两个提议可能绕开这个难题。一个是让侧链由股权证明制保证安全,用小额的交易费和一定的利率来报偿参与的股权持有者。但是这种办法会很难在侧链中实施,因为 PoS 对于直接在区块链上有效实现,复杂度太高了。由 Austin Hill 和 Adam Back 提议的另一种办法,叫作「并流挖矿」;矿工从比特币区块和 Namecoin 区块同时获得比特币区块数据,就保证了矿工同时用相同的算力为两个区块链保证安全。

但是,就像比特币开发者 Peter Todd 诘问的,并流挖矿的概念的确拥有很严重的安全缺陷:除非大部分比特币矿工同意并入某一条链,否则那条链可以说完全不安全。为什么?先考虑更传统的竞争币,简单起见,我们用使用 SHA-256 算法的来举例(如果这种竞争币使用了传统算法,那么莱特币矿工就可以立马发起攻击)。如果竞争币有比特币 5% 的算力,那么向它发起一次双花攻击,至少 5% 的比特币网络算力会需要暂时投入挖掘该竞争币。这是很有可能、但开支不小的行动:攻击就位的时候,比特币矿工会损失比特币挖矿的回报。而在侧链的并流挖矿中,在主链上进行挖矿或者发动攻击都是零成本的,所以不会有经济因素抑制该竞争链的攻击。这不仅仅是揣测;目前已经有真实的案例显示矿池攻击了并流挖矿的区块链。

除开安全性能,并流挖矿的依赖性也暴露出侧链另一个令人担心的局限:密码学货币精神可以说完全不限制任何创新,创建侧链却要求所有比特币矿池至少 50% 参与者的许可和活跃协助。这些局限共同暗示了侧链协议,虽然有很多出色的前景,但并不都是理想的。

前景

如果围绕侧链的技术问题可以敲定,前景又是什么?目前而言,密码学货币的发展可以基本分为四个象限。第一象限使用比特币货币和比特币区块链——根本上,就是比特币自身。第二象限是使用比特币区块链的协议,但不使用比特币货币。万事达币,色彩币和合约币 Counterparty 是极其出色的例子。第三象限是同时使用独立货币和独立区块链的:包括像(为了包含很多完全不同的例子)瑞波币,莱特币和未来币 NXT。现在,侧链则可以填充第四象限了:用独立的网络但使用比特币作为底层货币。

预测哪一种应用会抢占最适生态位是很有趣的。对于整个新金融系统,这可能并非正确的措施。像有完全独立的网络的瑞波币或以太坊,将内部节点和比特币的连接在一起、关联两者的价格波动几乎是无意义的。对这些主要的尝试而言,实验不同的货币策略是完全必要的。以太坊的策略是用线性发行模型每年释放一定确定数目的货币,而瑞波币协议将总数 1000 亿单位的瑞波币一次性悉数发放给瑞波币机构,然后机构再不时发放一些给开发者、投资人和分布式计算参与者。对于想促成主流协议改变的一次分叉,像从 SHA-256 升级到 SHA-3 或者量子计算机从采用 ECDSA 升级到 Lamport 签名或者 NTRU,绝对是有意义的。而那些处于中间位置的,则取决于逐个案例的区别。

就以太坊而言,需要特别记住一点:以太坊是通用密码学合约平台,不是某种「竞争币」。因此,可以有多种不同货币作为合约协同存在于以太坊平台,一个人可以拥有传统的固定供应量货币、由匿名去中心化机构运作货币政策的货币、用来资助科学研究或者提供基本收入的货币、甚至嵌入了双向交易机制像侧链一样的货币。所以,以太坊不能被准确归为侧链象限或者瑞波 / 莱特币 / 未来币象限,它同时跨越两者。

的确,非常有可能当以太坊创世区块发布之后,在三个月内就会产生比特币、莱特币和狗币的侧链,以合约形式实现。如果侧链可以成功地、安全地实现,这意味着以太坊可能成为最成功的储存 BTC、LTC 或者狗币的方式,用多重签名存储合约提供包括提款限额等等特性。在通用链上的合约之间,高性能、特殊用途的竞争币,拟集中化的开放交易 Open Transactions 服务器,侧链和比特币自身,有一件事会是清楚的:密码学货币会从未有过地产生合作。

作者:Vitalik Buterin

来源链接:bitcoinmagazine.com

—-

编译者/作者:Vitalik Buterin

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

首页
评论
分享
Top