其实越研究最近对于区块链效率的额外改进方案,越会觉得中本聪的区块链真的是神解
对于全球性金流系统而言,最重要的是可用性和共识安全性。
比特币将可用性的优点体现在不分时间地点、都可以和任何人有比特币钱包进行交易
在共识安全性上,因为有全网共识,避免了双花和撤销交易的可能性,甚至比信用卡安全。
而依照CAP理论,所有的效率的改进方案几乎都会损害到区块链货币的可用性和安全性。
什么是CAP理论呢?它是对于分布式资料系统的一种限制,你无法同时满足以下三点特性:
Consistency: 一致性 (所有节点在同一时间具有相同的数据)
区块链系统当然要有同样的数据资料,并且用PoW或PoS得到唯一有效的共识。
这是对于交易系统的安全性基本需求。
Availability: 可用性 (保证所有类型请求都可以在时限内获得回应)
对于全球金流系统可用性当然是最重要,
任何使用者可以跟使用互联网一样,在任何时间、将所拥有的资金、转到任一地址。
Partition tolerance: 分隔容忍 (切割成子系统不会影响系统的继续运作)
中本聪的区块链系统基本上已经把一致性和可用性推到极限。
所以你今天要用比特币就一定要联网和区块链同步,大家共识必须一致。没有子系统。
实际上区块链系统在不拥塞的状态下根本完美得不得了,一般交易零确认快如闪电。
不信的可以去用零钱玩SatoshiDice,送出交易三秒内就会被侦测到完成一局。
有赢钱三秒内自己的钱包就会收到,根本是real-time的体验。
连博弈网站都敢这样搞,bitpay和coinbase也这样玩很久,代表小额零确认交易非常安全。
所以我一直认为增进区块链容量和效率的技术,才是全球金流系统真正该发展的方向。
那再来看看对于区块链效率的额外改进方案,是否真的是万灵丹,
可以在不影响一致性和可用性下改进金流系统的效率。
先以已经可以用的Payment channel来看,
它的原理就是Alice和Bob先把自己一部分的资金锁到通道内,然后互相只交换未确认交易
只有最后要结束通道的时候,才把最后一次的结算交易丢给矿工做确认和结算。
那这样就大幅减低了矿工负担了,增加扩容可能性。因为资金先被锁住也不会被双花。
但问题是这极大幅度削弱了区块链货币的可用性,你的资金被锁住了。
本来比特币可以随时随地可以转给任何人,但现在被锁住只能转给特定人。
为了解决这个问题,所以后来又搞了一个极端复杂的金流网络,光白皮书就吓死人。
https://lightning.network/lightning-network-paper.pdf
BTC的闪电网络,在ETH也有一个差不多一样的实作叫做Raiden雷电网络。
把on-chain fee推高,让Core一直狂推,把大家都赶到这个网络内,全部都连在一起。
那这样可用性不就变高了吗??
好像很合理。但问题是它的可用性和本来的区块链系统相比脆弱非常多。
首先你要发交易当然还是要锁钱,重点是和你连线的Payment Hub不能离线,连自己也是。
实际上只要金流的路径中任何一个节点突然离线了,你的交易就会失败。
因此这些Payment Hub必定会是非常专业化的,才会闲著没事24小时开着永不断线。
但区块链系统大家都可以随时上线和离线,但你仍然是永远可以使用。
更不要说路由问题,要去中化作routing一直是资讯科学里难解的问题。
现在的Internet实际上是用非常中心化的方式去做routing,
就几个骨干ISP在网络交换中心做路由,甚至很多部分还是要靠人工设定的。
之前就有发生台湾网络交换中心隔壁机房失火,台湾就大断网的事件。
而目前闪电网络仍然是靠直接全网广播所有节点路由资讯,来寻找最佳的金流路径。
然后说这种方式可以解决本来区块链系统的扩容问题,这我真的笑了。
区块炼的扩容瓶颈在于通讯瓶宽,你每发一笔交易就要全网广播到所有矿工节点。
结果现在变成更新路由资讯也要全网广播,一个hop广播一次。
可以预见的是,闪电网络系统的频宽扩容问题甚至会比本来区块链系统更为严重。
再来是闪电网络和一般stateless routing不一样,可不像一般通讯封包丢了就算了。
每个路径都还有收支平衡、金流宽度、交易状态等问题,挖靠,根本大爆炸。
更不要说收款也必须在线这极大幅度影响可用性的问题。
要转大额款项更是不可能的任务。
可以想见的是闪电网络它的可用性必定远远不如于原本的区块链金流系统。
那么假如我们把区块链系统切割成一个一个的子系统,是否就可以扩容了呢??
那这其实就是sharding和plasma的目标。
https://blockgeeks.com/guides/what-are-ethereum-nodes-and-sharding/
shard可以把会互相交易的同一个DApp丢到同一个shard内。
shard内的交易只让该shard的随机validator去确认有效性,
然后写state root和tx group root到main chain上。
plasma则使用子区块链,同样把同样会互相交易的DApp丢到这个子区块链。
但其实这两个方案适合的是DApp的应用,一个DApp本来就只需要服务部分人,
而不是全部人,所以把DApp丢到shard内,或是plasma的子区块链内,非常适合
因此这两个方案只有ETH在研发,BTC根本没在推这两个方案。
但是全球金流网络这个应用是要服务所有人,要分割子系统就必定会导致延迟。
譬如每一国都有自己自己的shard或是plasma子区块炼。
但是比特币相比于法币最大的优点就是无国界金流,结果变成所有跨国金流都有高延迟。
以shard来说就需要cross-shard communication,仍然是影响到原本金流系统的可用性。
当然也不排除后来有个比中本聪更神的人来解决这个问题XD。
所以有些系统干脆对于去中心化的一致性妥协,譬如IOTA,他必须靠COO来维持共识。
结果变成瓶仅卡在COO,拿掉COO理论上可以很快,但如何维持安全性共识仍然有挑战。
既然中本聪已经发明这么好的东西,我认为金流系统把区块链推到极限才是主要目标。
譬如Graphene可以把区块链系统的通讯瓶宽效率搞到逼近于IOTA。
而weak-block可大幅强化零确认交易的安全性,本来就跟闪电网络一样快。
off-chain或是第二层的方案当然也可以同步研发,对于高频交易或特定应用很有用。
但直接把区块链系统直接盖掉反而弊大于利。