区块链3.0长啥样(3)突破中心化与安全性的困局

错位控制

先做一道智力题:一伙劫匪有A、B、C、D、E五人,他们抢银行得到数量不菲的黄金,这5人之间互不信仼,既担心别人独吞或合伙侵占财物,还不能直接分赃以防在逃出危险区前被同伙告发。五千劫匪住进一家旅馆,订了5间房,每间房都有保险箱,每个保险都只有一把钥匙,请问,怎么安排才能让这5人都能安心睡一觉?

在我揭示答案前请细想一下,结果肯定不是5人挤在一个房间里,守着黄金,大家大眼瞪小眼熬一宿。

答案是:A~E五人分住1~5号房间,黄金放5号房的保险箱里,再把该房保险箱钥匙放入4号房的保险箱里,4号房的保险箱的钥匙放3号房的保险箱中,以此类推,最后1号房保险箱中放2号房保险箱的钥匙,然后5人各住1间房,各人管好自己的房门钥匙即可。

这个例子描述了一种错位控制的结构,5人中任何人想接触赃物,都必须约齐5人,依次进入各人房间,取得下一房间保险箱的钥匙。

区块链是一种低效的分布式数据库系统,各节点互相监督、检验,共同只做一件事:记帐。其低效的核心是因为串行特性,各节点的并行处理能力并未有效发挥。能不能引入上述错位控制机制呢?把各节点的并行处理能力释放出来。

三权分立实质也是一种错位控制的机制,如本系列前一篇文章介绍,在区块链中引入3种权力,各种权力互有制衡,由此也能释放一些各节点的处理性能。与现实世界的三权分立不同的是,区块链的三权分立能最大程度实现自动化,不像现实中三权分立那么低效。

宣称百万TPS的公链多半是骗子

已经有好多公链都宣称支持百万TPS,但还没一个在实际环境有过验证,许多公链若从机制上分析,根本支持不了那么多,再降两个数最级也支持不到,其中,最显眼那个骗子就是EOS,作为资深开发者,BM肯定不是不知实情,隐瞒胡吹就是人品问题了。

以比特币的机制为例,1M大的区块,也就最多容纳3000笔交易,每10分钟新生成1M bytes 要在全网广播,上行与下行带宽占用是对等的,一个节点与相邻8个节点有通信连接,8次转发便是8M bytes/10Minutes的通信量。如果想提高帐本传播效率,把1M区块扩大到8M,所需通信量便是 0.85 M bits/second,这个通信量可适应当前普通家庭的光纤宽带环境,剩下余量已不多。比特币每秒5笔,乘以8(因为区块1M变8M了),也就40笔,所以,单链处理能力所在数量级是100 TPS。这个计算方法没考虑采用什么共识,其实不管用什么算法,用PoW还是DAG,帐本总得同步过去。

现在我们估算一下真实EOS能达到多少TPS,典型的家用百兆光纤上下行不对称,上行是12M bits/second,取一个安全区间,约支持250 TPS。若租用百兆对称光纤,2000 TPS而己,离百万TPS差老远了,租用云服务器也差老远。许多时候戳穿一个神话,只需动用初中数学知识,如果再有人告诉你,他用单链实现了百万TPS,骂一句“大骗子”就好,投钱进去期望它的币值有百倍增长,那是你自己的问题了。

那么百万TPS的公链到底可不可能呢?当然可能,前提是要动用多链,釆用并行链或主辅链,这是10年内公链支持百万TPS的唯一路径

并行链的难点

现有并行链方案主要有两种,一是网络分片,二是状态分片。前者是区块数据随分片分割成多份,后者视数据为整体,让矿工承担验证工作,由一个基础链(主链)按特定算法选一个矿工对新增交易做验证,被验证数据视为状态,动态索要。以太坊改DPOS方案选择的是后者。

很明显,两种方案中,前者更优,但以太坊有现实困难做不到,它只能采取状态分片。网络分片的实质是构造多个p2p网络,一条链组一个p2p网络。帐本被分割到各条链,怎么验证UTXO?怎么保证矿工只在指定的链上工作?这两个问题都很棘手。

改造一下帐号地址,额外添加字节来表达链号,让不同链号的钱包分别在不同的链去维护UTXO。然后引入一个可信执行环境,由固定在TEE中的唯一身份ID,来推算使用该TEE的矿工该在哪条链工作,我们只需将推算的链号结合到特定密钥的生成算法中,用此密钥加密、解密挖矿相关的消息通讯,就能限定各个TEE只能固定在某条链中工作了。我的妈呀!这么核心的机密我就这么随便透露了,强烈要求打赏!发个红包吧。

回到错位控制理论,所有矿工集中在一条链工作必然低效,我们借助外力,强行分散算力,让工作并行起来。这里的外力便是TEE设备,最简便的实现方式是采用USB软件狗,它所起作用相当于前面举例的保险箱,有了保险箱便能实现错位控制。

跳出去中心化的思维洁癖

上一篇文章指出了比特币并不是彻底去中心化的系统,我们大可不必陷在去中心化的理念中出不来。我的意思是,不是不要去中心化,而是,不为了去中心化而去中心化,去中心化是有意义的,提高安全性,有冗余备份,系统更加稳健、抗干扰能力也更强。

不过,中心化未必一定降低安全性,比如https协议,它的证书分发与密钥交换是完全中心化的,你因此就操心银行转账的安全吗?

Https在通信层提供了基础的安全环境,银行转账在业务层也类似的构造PKI设施,两者同样构造出一种错位控制的机制。

(本文完)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181014G1075900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券