一直关注比特币的人,应该对两个概念不陌生:‘树链’、‘侧链’,还有些争论,到底哪一种更适合添加到比特币协议。 那么,我们简单聊聊这两个概念的工作原理,以及需要被加入比特币的原因。另外,用户的角度来说,这些新生事物究竟能带来什么好处。
首先,为什么要讨论树链、侧链?
开发树链、侧链技术最大的原因,源自比特币当前的扩展性不足。 随交易总数不断增加, 独立矿工将面临所需的带宽及存储空间膨胀到难以为继的水平。 因此急需一些方法拆分区块链,来减少独立矿工的负荷。
此外,若能整合一些山寨币的优良功能,比方说交易验证速度快这种,又避免将山寨币引入比特币系统,当然最好。 之所以要避开直接使用山寨币,首先是因为这里存在所谓的跨币交易成本;其次,还能绕开把山寨币的一些不太理想的功能定义到比特币核心区块链中去。
侧链
侧链方案中提出了一种交互协议:开发者将新的侧链与比特币主链“链接”起来,允许资金在主链和各类侧链间来回移动。 这些侧链可以和比特币的属性完全不同, 比方说ZeroCoin的完全匿名,或者Dogecoin的交易快速验证。用户为获取需要的属性,可以把资金(比特币)从一个链移到另一个链,比特币的价值和总量不受任何影响。
或者,可以这么想:用户能用侧链创建由比特币“背书”的山寨币。先把比特币“冻结”,就是从钱包中转出一部分比特币,换成相同数量的山寨币。 想解冻比特币的时候,证明兑换出的等量山寨币已销毁即可。
这个主意貌似不错。 但是考虑一下这个问题:把比特币分散到多个侧链的同时,比特币的整体算力也被分散,相当于每个侧链有一小撮算力。 这的问题就很大,攻击者只要锁定并破坏最薄弱的侧链,就能破坏整个网络的完整性。是这样, 攻击者在某个侧链完成51%攻击,就能创建一个(假的)最长侧链,然后将伪币回流至比特币区块链,相当于拿伪币解冻比特币。
问题的本质在于,侧链一般不同步区块历史。 也就会说,跨链转移币的过程中,大部分侧链方案仅依赖所谓的“SPV证明”。 SPV(简化交易验证simplified payment verification),是轻量钱包中使用的验证机制,只检查两点:1. 花费的币是否在记录在最长链中;2. 记录交易的区块上有没有其他区块。 正常情况下,验证交易历史应该是一路追溯到创世区块。 那么,这种SPV证明机制的验证标准远低于比特币网络。 所以,侧链方案中, 51%攻击者不仅可以双花,还能从冻结的资金池盗取比特币。
那么,为应对这种可能出现的51%攻击,可以考虑合并挖矿。 意思是为避免出现算力分散的情形,所有区块链都采用相同的哈希算法, 两条链同时挖,生成一次PoW,则主链、侧链各出1个区块。貌似又是个好主意,是不是? 很遗憾,实践起来挺困难。合并挖矿要求矿工运行各种全节点,意思是有多少侧链就有多少全节点。 这波操作十分昂贵,那么,为分摊固定成本,肯定会出现不少大大小小的矿池, 再下来就是过集化风险。此外,若任意侧链受到51%攻击,也会出现上面提到的那种伪币盗正币风险。
有鉴于上述限制和风险,侧链方案开发一直伴随着质疑。
树链
树链方案与侧链类似,可以理解成侧链的升级版。 提出树链方案的人叫Peter Todd,是比特币核心开发者,据他描述,树链大概是这样子的:
试想,一条区块链vs一树区块链。 大家熟悉并热爱的比特币主链保持不变, 但主链上不存储实际交易数据, 每个区块中存储两个哈希。 这两个哈希分别代表两条新的区块链,叫 “左链”和“右链”。可以把左右链看作是比特币主链的“子链”。 子链中接着储存“孙链”的哈希,子子孙孙无穷匮也。 这样,一直延伸到所谓的“叶子”或末端,真正存储交易数据的是这些末端链。
交易数据将根据交易ID被随机分配到末端链中;矿工随机挑选挖矿的末端链,可能几个矿工负责一条链。末端链上的挖矿奖励和难度都指数级降低, 允许矿工快速确认交易(仅在末端链上),因此矿工能不断的收到挖矿奖励, 但是奖励数额不大。 这样做旨在鼓励独立挖矿。
这些链形成一整颗树,且每条链都不大,矿工可以同时在子链和父链上合并挖矿。 这样做有趣的地方在于,矿工可以一路挖回主链,需要存储的数据也非常少,好比树的一枝。 这么好处是什么是,一路挖就有一路奖励拿。 比特币区块链的完整性依赖矿工,这样一来,整棵树的完整性也可以得到保障:末端链上挖矿不仅没有与主链割裂开来,相反,一路拿奖励激励矿工一路挖,这样有利于主链稳定。 离主链越远, 挖矿难度越低,因此即便交易被确认,也不见得是安全的,但随着挖矿升级,安全性也在升级,到主链时,就是一般比特币交易的程度了。
树链方案保障了区块链完整,又兼具其他优势。 首先,独立矿工不不用存储整树的数据, 从自己挖矿的末端链到主链之间那一枝的数据即可。 这样相当于整棵树的每一枝都有矿工维护(挖矿众包??)。 其次,钱包轻量且安全:只要保存钱包活动相关路径,就能证明资金的合法性(相关证明可以附在交易中,充当签名,以视合法)。 是不是SPV钱包的升级版? 最后,树链允许根据应用需要改变树的深度(外延到末端的层数), 那么比特币将拥有无限的扩展性:永远不会出现交易量过大单一矿工无法应对的情形,因为整个处理表面被扩张开来,只需将交易拆分成给各个末端链即可。
但是,一些方面来讲,树链的灵活性会比侧链差一些,比方说不存在通过分叉对原始协议进行变更的可能, 好比末端链可能没办法实施ZeroCoin的匿名特征。但是交易速度可以变快,且不会影响网络整体的安全性。
Peter Todd的方案完全拓展了比特币使用范畴。 矿工不需要验证交易, 只要检查交易中包含交易费即可,交易内容直接忽略。 客户端自行验证交易,使用树形路径存储拥有比特币的相关证明,交易时广播证明。
这样,得益于比特币树链的安全性,它就变成了一个可以用山寨币进行各种交易的平台,但是交易费是比特币的形式。而且比特币用户、山寨币用户相安无事,和平共处。
打个比方,一间屋子里有很多国家的人,各自用母语交流;放进去一台录音机,只负责把这些交谈的声音都录下来,别的不管;录完之后,懂英语的可以翻录音,听听英语内容,懂中文的听中文内容。 一盘录音同时服务了两个人,但是它只负责记录,不需要懂英文或中文去了解具体说了什么。
树链是全新的概念,且尚未在开发者社区达成一致:有些开发者对“孤块”如何处理有顾虑,因为末端中肯定会频繁出现孤块。 若用户的交易被打包在某孤块中,且孤块所在的末端链没人挖怎么办?用户该如何追索?如何确保交易能被打包在新块中?总之, 为确保这种新的结构不会引入不公平的奖励机制或者出现各种问题,还有大量的工作需要做。最后,增加传统比特币(优雅又简洁)系统的复杂度,怎能不让各种开发者好好思忖斟酌N番? 将比特币切换到树链结构确实是非常重大的系统转变,因此这一方案宣告可行前,讨论和验证工作不用想都知道肯定也是N+1的密集。
树链的很多属性非常令人兴奋,看上去很可能使比特币的未来大不同。 捎带脚说点政治话题,这种密集的技术性讨论反映出什么呢?试图监管比特币应该是门外汉才会做出来的事,因为没人知道几年后比特币到底什么样子,甚至包括核心开发者。 即便比特币社区接受了善意、宽松的监管,就比特币变化的趋势而言,监管也很可能突然变成一纸空文。
Tree Chains vs. Side Chains: The Controversy Explainedcoinreport.net
网友评论