接下来我们来说下Conflux的运作原理。公链核心的运作原理就在于如何完成信息打包,如何提交区块和确认区块。首先确认主链:主链是依据Ghost规则来确认,也就是选择拥有最多子区块的区块作为主链上的区块,我们以下图为例:
Ghost的规则就是,从创世区块开始,每步选择子树最大的孩子区块,直到一个没有孩子的区块。
创世块分出4个子区块,区块1下面没有子区块,区块2和3只有1个子区块,区块5有2个子区块,那么区块5便被选入了主链,然后区块5作为父区块分出区块1和3两个子区块,区块1没有子区块,区块3有2个子区块,然后区块3便被选入了主链,根据子区块的数量我们可以把主链确定。
其次分叉链区块的排序:确定了主链之后,为了让所有节点对区块全序产生共识,Conflux引入了Epoch概念,也就是对分叉区块进行一个排序,让所有分叉区块都变成有效的,而不是被舍弃掉,每个主链上的区块,都对应某一时段,分叉链上区块的时段,由产生在它之后的第一个引用它的主链区块决定。
(图中实线箭头指向父区块边,虚线箭头指向引用区块边)
如上图所示,区块B被C引用了,所以区块B便属于Epoch C,区块D和F都是被E引用的,所以它们同属于Epoch E,区块G和I被H引用,所以它们属于Epoch H。
同一个时段内排序:在一个Epoch内,会有多个区块,那么这个多个区块Conflux选择的是用拓扑排序法来进行排序,如果拓扑排序出现平局的话,再根据区块的哈希值来打破平局,由此来确定唯一的顺序,由于过于专业,我们只需要知道它的大概机制即可。比如说J和I就通过这种机制完成了在Epoch排序。
最后就是交易排序:每个区块的顺序确定之后,剩下的就是交易的排序,交易的时候会出现冲突或者重复的情况,这样的情况Conflux是如何解决的呢?我们看下图。
比如区块A的交易2和区块B的交易3发生了冲突,我们可以理解为当交易2完成了交易之后,便没有钱完成交易3,在这个交易的全序里面,交易3发生在交易2之后,那么交易3便是无效的。
另外一种情况,相同的交易也有可能被不同的节点打包到不同的并发区块里,比如图中的区块B的交易4和区块G的交易4,同一笔交易出现两次,那么Conflux只会接受在全序中出现的第一个这样的交易。
Conflux站在DAG肩膀上,使用Ghost和Epoch两个规则的共同制约下就可以把一个账本固定下来,整个逻辑就是,先各区块各自完成交易打包,交易打包之间同步确定顺序,然后向全网打包确认发布。这样所有的节点最终会形成一个一致不可更改的最终账本,这样的方式来提高TPS。
说说两点不足之处
第一,Conflux所基础构建中的算法Ghost规则并不是原创,而是来自以色列人,Yonatan Sompolinsky 和 Aviv Zohar,基于这个算法开发的公链也不仅仅只有Conflux,最资深的是这两个以色列人自己的daglabs,但是融资很惨,只拿到了200万美元,还有就是韩国的Fantom。也就是看起来不错的创意,目前还没有得到资本的足够热捧,为何如此,还需深究。第二,对于交易速度是否会过于乐观估计?当TPS上来,那么交易冲突问题有可能会凸显,6400TPS也只是官方给出的数据,在EOS上线之前,官方给出的是百万TPS,实际应用上还不足4000,所以不管说的如何,最终还是要看上线以后的情况,Conflux要走的路还很长,整个生态的建立也不是一朝一夕的事情。
公链不仅仅是技术问题,也是与时间赛跑的游戏
公链与IPFS不一样,公链是马拉松,但又是快速跑,因为进入这个领域的人太多了,IPFS现在还是胡安团队相对空荡荡地在跑(Yotta、STORJ、Sia实在无法构成威胁,Arweave作为后起之秀,需要关注),而公链赛道不一样,大家是在做底层构架的,从一开始就是要攻城略地的,谁吸引的开发者多,谁生态上的DAPP多,谁的活跃用户多,谁的交易量大,这些都是一条公链生死存亡的关键。
很多人可能不理解V客为什么要讲中国公链,因为V客作为一个中国人,非常清楚当核心技术掌握在别人手里的那种无奈感,就像现在美国要打压中国华为,直接操作系统不让你用,你等于就被别人扼住了咽喉,所以现在华为很艰辛地在研发鸿蒙操作系统,但是就算现在研发出来了,性能也不错,但是没有先发优势,生态难以建立,依旧举步维艰。
但是现在区块链各国算是在同一起跑线上,虽然目前以太坊领先了半个身位,但是国产公链也没有落后多少,要赶超并非难事相信国产公链有美好的明天。
丁娣
子区块也只能选择一个,其它也是被浪费了
红红20200202
支持国产,我要投资