聊聊BCH的硬分叉
BCH(比特现金)即将在5月份迎来一次硬分叉,最近微博上BCH和BTC的粉丝又开始吵得不可开交。唇枪舌战,相当有意思。这可不是单纯的骂娘,双方可是围绕着对方的技术弱点,隐患,展开的极有技术含量的辩论。如果你对数字货币不熟悉,建议去围观一下,吵着吵着就吵成专家了。
这次BCH升级重点是两个方面:将区块大小扩大到32m,增加了一个专门为小额支付所有的改动,零确认交易。
下面是其中的一篇帖子,里面对BCH的大区块扩容方案提出质疑。
https://ethfans.org/posts/scalability-problem-imply-explained
简单概括起来,这篇帖子的意思说就是这次BCH升级,单纯的将区块扩容是行不通的。因为网络传输速度有限,每个节点只能通知到附近的几个节点,同步一个区块信息会经过很多次“跳跃”,类似于1 -> 2-> 4-> 8……每次新区块同步时间只有十分钟,如果区块太大,每次同步时间拉长,那跳跃的次数就会减少,就会出现有的节点还没收到之前的区块,新的区块就又出来了。1m的区块大小没问题,32m的话,同步时间扩大30倍,就来不及通知全网的节点。
这个观点可能是对的。如果BCH网络真的是这样同步的话,很可能无法在10分钟内同步到所有的节点。
但是……
首先,并不是所有的全节点都对时效性有这么严格的需求,不挖矿的全节点只能起到监督的作用,完全可以延后考虑他们的同步。
其次……
聊聊BCH的硬分叉 聊聊BCH的硬分叉 聊聊BCH的硬分叉借用闪电兄的图片,上面三张图分别是BTC,BCH,ETH的算力分布图。基本上最大的5,6个矿池就会占据80%的算力。事实上基本上每个挖矿的数字货币都是这种结构。每个矿池有很多节点,但是大的矿池肯定能第一时间获得新区块信息,再马上同步给自己的所有节点,就已经完成了全网80%的节点同步了。剩下的节点哪里用的到10几次跳跃?就算有,那也是不加入大矿池的损失罢了。
也许你会说,我们现在的升级就是为了公平啊,就是为了阻止这种情况发生啊?
专业的人做专业的事,放在哪儿都是正确的。矿机挖矿对每个人都是平等的。但是你建矿场,找水电,规避政策风险等等都毫无例外的需要很专业的知识,小的矿工如果不接入矿池,被淘汰是必然的趋势。个人的算力如果几个月挖不出区块,真是不知道坚持下去的勇气是什么?靠情怀吗?搞研究吗?钱多得烧吗?每天的电费支出可是实打实的。如果现在再加上同步还比别人慢……请你实打实的买台矿机来自己挖矿试试,坚持个三五个月再来讨论什么算力被垄断之类的废话吧。
另一个有趣的升级就是零确认交易。比特币10分钟出块时间,加上约定的6个区块确认让小额支付成为不可能,但作为货币,即时的支付场景又非常重要。所以BTC在主链的上面构建了复杂的闪电网络。BCH是没有闪电网络的,那怎么和BTC竞争呢?这就是零交易确认。
简单来说,比特币的交易流程是这样的:每发生一笔交易,交易方双方都会广播交易信息至全网,收到交易的矿工将交易信息存储在交易缓冲池内,直到挖到一个区块后将交易打包进区块,该交易获得全网节点的确认。
BTC只认已经打包进入区块的交易,没进入区块的交易通通不认。
BCH的零确认交易就是:只要你广播了,这笔交易就确认了。
是不是很好理解?
比起闪电网络,零确认交易显得非常简洁,优雅。如果零确认交易能成功,BCH的价值是无法估量的。
但是!
就如BCH攻击闪电网络最终会奔溃一样。BTC阵营是非常不看好零确认交易的。如果零确认交易能行,那打包区块的意义是什么呢?不打包不也一样能确认吗?
零确认交易有一个最大的问题就是:目前还没有技术手段来保证消除双花交易。
无论是BTC还是BCH,交易成功与否,最保险的判断方法还是等矿工将该交易打包装入区块,等6个确认后,就成为不可逆转的交易。因为打包进区块时用到了密码学来提供保护,整个区块是一个字节都无法修改的。整个数字货币正是建立在这套密码学基础上的。
如果没有打包进区块,只是放在缓冲池里,一笔交易是可能被另一笔交易取代的。只要多给点矿工费,将同一笔钱发送到另外一个地方,就可以覆盖掉前面的交易。这就是目前BTC使用的RBF交易机制。
BCH零确认交易当然也可能会遇到这样的问题,但是如果谁可能实现零确认交易,也只能是BCH了。WHY?我们来看看。
BCH不允许RBF交易,也就是说无法使用一笔高手续费交易来覆盖另一笔交易。如果你用BCH买了一杯咖啡,只要等上几秒,让交易信息传遍全网,这笔交易就几乎成为不可逆的了。再加上BCH32m的区块大小,能保证很长一段时间内,你的交易信息都会在下一个区块就得到确认。也就是说最长十分钟以后,你的交易就会成为不可逆。
但这仍然不能保证交易的安全,因为矿工本身是可以双花的。先花掉一笔钱,然后在挖到的下一个区块里把用另一笔交易把这笔钱转到自己的其它账户里,根本就不需要广播,其它节点只能接受。
所以零确认交易是只适合小额交易,从博弈论的角度来说,矿工是没有动力为了很少的钱去构造双花交易的。零确认交易用来买杯咖啡,买份报纸是足够安全的,而越大的资金就需要更多的确认来保证,这样的风险恐怕不会比信用卡更大。
BTC的闪电网络已经运营得很好了,相信BCH的零确认交易也会成功的。技术加博弈论在数字货币一直都被证实非常奏效,极客们一直在追求零风险的方案,但是事实早就证明了,合适的技术和足够的利益结合已经可以让整个系统非常非常安全了。