我们在不久以前刚刚更新 MTFS 的 github repo,对于过去两年的工作,进行了几行字的总结。对于高性能可扩展,区块链世界早已经听烦了,于是我们把 MTFS 的实时性 放到了第一位。没错,就是要等好久才能确认转账的区块链,现在可以用来做实时支付以及聊天应用了。
两年前,我们提出了一个大容量高性能区块链的理论基础,发表了论文,接着花了不少功夫完成了实现。围绕着这一理论方向不断深入研究的过程中,我们发现采用图数据结构(非DAG),以及树结构的网络拓扑设计,可以很高效的即时产生区块。对实时性要求较高的应用,比如聊天和支付都可以在此区块链平台上实现。这可能是第一个能够实现即时聊天软件功能的区块链系统。
大部分的区块链是基于固定的出块时间,比如比特币每十分钟一个块,以太坊则是十五秒。如果一段时间内没有任何交易可供打包进区块链,那么这些系统也会产生一个空块。
传统区块链系统这样设计,我们可以把区块链想像成一条马路,为了让很多人可以高效的使用这条马路,所以马路上只允许跑公交车,比特币只允许每十分钟一班车,这辆巴士空间有限,只有一兆空间,所以如果乘客们都比较胖(交易数据比较大),那么能上车的人就少。以太坊缩短了发车的间隔时间,原理上并没有做太大改变。
由于在我们设计 MTFS 区块链的时候,容量也就是道路问题已经被解决,这样就可以允许大家开小汽车而不是大巴。既然是自己开车,就不需要等代巴士发车时间。任何人有出行需求,可以坐上私家车随时出发。
这使得实时区块链的成为现实,当然区块链上的数据还是要经过共识的,不像即时通信软件那样,只需做到把消息传递到目的地就结束了。共识就好像一个收费站(假设早期只有一个车道),一次只能通过一辆车,哪怕是几乎同时出发的两辆车,在收费站之前,都必须一个先一个后。这样比喻,大家就很能理解,为什么早期区块链需要使用巴士而不是小轿车,因为都开小轿车路就会更堵,换成巴士至少还能撑一段时间,只要进收费站的队伍还不算长。
MTFS中,首先是把路给修宽了(无限宽),然后也在收费站修了很多 ETC,ETC 实际上是收费动作很快的工人,背后其实只有一台中心电脑控制。即使两辆车几乎同时开过不同的ETC出口,在中心电脑看来,他们也是分先后通过的。如果出现了套牌车(两辆车使用同一个车牌,并且 ETC 账户余额只够支付一辆车的高速费用),那么只有一辆车能够抬杆,扣费,出高速,另外一辆车就会被拦住,这就防止了双花。
实时区块链的测试的结果另人振奋,我们决定尽快将它放在网上供大家测试,当然目前我们还有很多的工作要做,比如验证算法(区块链名言,不要信任,去验证),比如文件系统的构建。很多区块链项目都把自己和 IPFS 绑在一起,我们看到了这个现象,说明文件存储和数据库一样是做落地应用的刚需。所以我们在设计 MTFS 的时候,确定要让分布式数据库和文件系统放在一起,这种做法被流行的成为“自带电池”,在此基础上开发应用就会更方便。
OK,今天就写到这里,希望能帮助大家树立一些概念。下一篇,我们要深入的讲一讲,MTFS 是具体怎么做到高性能的。
2020新的开始,新年好!