近两年,比特币着实火了一把,附带着把“区块链”也带到了人们的视野里。随着比特币价值的不断提升,区块链也越来越受到重视。于是,终于有一天,如何把区块链跟工程建设行业结合起来成为了技术人员的一个设想目标。那么区块链究竟是怎么回事?与工程建设行业能结合吗?笔者在此略作分析。一家之言,若有偏颇,欢迎探讨。
一、所有故事都起源于“拜占庭将军”
1982年,Leslie Lamport、Robert Shostak、Marshall Pease三人发了一篇论文,题为《拜占庭将军问题(The Byzantine Generals Problem)》,此文详细探讨了一个计算机网络的可靠性问题。在一个由计算机组成的网络中,一些计算节点可能会因为各种原因向网络中发出各种错误信息,那么相互通信中的计算机应该如何忽略错误信息就是一个值得关注的问题。三位作者就虚构了一个有趣的场景——一群已经有叛徒混入的拜占庭将军要设立一种通信制度,使得所有忠诚的将军们能够就进攻还是撤退达成一致意见。
将军们只能通过传令兵相互通信,而其中的那些叛徒则会从中篡改信息,混淆视听,妨碍忠诚的将军们获得正确的信息。一旦忠诚的将军们不能统一行动,就会被敌人各个击破,蒙受重大损失。因为不知道谁是叛徒,谁还保持忠诚,所以集中发号施令的模式就很不靠谱,毕竟没人知道那个发号施令的家伙是否忠诚,将军们也不愿承担这个风险。所以每个将军都要把自己的对局势的判断通知其余的所有人,然后将军们将服从大多数人的决定,共同进退。在这个场景下,每个将军既是发号施令者,也是听令者。经过论证,只有当叛徒的比例高到一定程度之后,整个系统才会崩溃。这显然是一种不错的通信和判断机制。
拜占庭将军们使用的这种通信和判断机制,用更现代的说法,就是去中心化的分布式记录和计算模式。这便是区块链逻辑的底层目标:当网络中的一部分计算机不能正常工作,甚至是被黑客操纵后,仍然不会影响整个网络的正常运作。而且,如果有越来越多的计算机加入到这个网络中,那么网络出错的概率就会越来越小,试图扰乱网络的代价也会越来越高。
二、比特币究竟是怎么回事
比特币其实就是一个分布式的记账系统中的记账单位。
还是用拜占庭的将军们打比方。由于一部分将军受到敌人的一波猛烈攻击,于是其余将军就紧急支援士兵和军需物资以助战。当敌人发起第二波进攻时,又有另一些将军受到攻击,于是士兵和物资又需要再次进行紧急调配。当敌人所有的进攻都结束后,谁欠谁多少士兵、多少物资都应该一一归还。这就给了叛徒们从中做梗的机会,他们可以用欺诈等手段扰乱交易,中饱私囊。于是忠诚的将军们决定:把每一次交易的结果通过通信系统告知其他所有将军,让他们做个见证,免得交易的任何一方赖账。这样,每个将军手里都有了一份完整的交易记录,谁调给谁多少士兵、多少物资都清清楚楚。所以,只要叛徒的比例不是足够的高,就没有人能够在众目睽睽之下抵赖,妨碍交易的公平。
但是,这里又出现了一种新情况。将军甲先向将军乙借调士兵100人,物资200吨,而当将军乙需要支援时却不需要物资,而只需要士兵,所以就需要把那200吨物资折算成士兵。为了计算和记账便利,将军们就定义了一种记账单位,例如:一个士兵记为两个记账单位,而一吨物资记为一个记账单位。所以,将军甲向将军乙返还支援时,就只用归还200名士兵(200吨物资是200个记账单位,等价于100名士兵)。
当将军们交换的内容不仅限于士兵和物资时,记账单位就等同于一种内部流通的虚拟货币了。这种记账单位就可以理解为“比特币”。
三、为什么第一个成功的区块链应用诞生在金融领域
将军们的通信系统虽然帮他们解决了统一决策的问题,也顺便解决了资源相互调配的问题,看起来是很可靠的啊。但是在现实当中,“多快好省”永远都只是一种理想境界。要实现网络的可靠性,总是要付出相应代价的,在这个网络系统里,这个代价可是不小。为了统一决策,每个将军必须派出传令兵向其他所有将军报信,假设总共有10个将军,每交换一次意见就不得不动用至少90人次的通信成本;为了防止赖账,将军们除了广撒传令兵之外,每个人还要录下又臭又长的交易记录,查账时也常常不得不废寝忘食。
这里总结一下这个通信系统的四点特征:
- 系统中各个节点间的通信十分频繁;
- 但每次通信的信息量不大;
- 每个账本中的记录条目数量很多;
- 但每个条目的信息量不大。
金融领域的数据互通似乎跟这四个特征很吻合。每时每刻都会产生大量的交易通信;每次交易通信中无非包含一些简单的字符和数字(交易账户、交易金额、交易时间);所有电子账本中都有数不清的交易记录;每条记录也只有一些简单的字符和数字。除此之外,金融系统既对于网络通信系统的安全可靠性有近乎苛刻的要求,也有足够的财力能维持昂贵的系统。再反观其它行业,似乎总是缺少一些吻合的特征,或者每条信息的数据量太大,或者通信的频率过低,又或者没有足够的资金流支撑整个网络的运作。
四、那挖矿又是怎么一回事
既然谈到了比特币,就不能回避“挖矿”这个词,更何况“挖矿”还是比特币系统中极其重要的一个部分。
在前文中提到了,拜占庭将军团里的每个将军都需要记账,在实际的比特币网络中也要在各个地方部署“账本”。但是比特币网络为了提升安全级别,还会在通信时给信息加密。所以,在网络中必须部署一些计算机,它们收到交易发生的通知后,先要把交易信息解密,然后参阅之前的交易记录,再把一些比特币从一个账户划拨到另一个账户,之后还要把这些交易记录在网络上广播,让所有“账本”记录在案。由于每天使用比特币交易的数量越来越多,这种转账计算对于网络整体的计算能力的要求变得很高,所以创始人设计了一种计算奖励机制——提供计算服务的设备每完成一笔转账计算后,就能够得到一笔比特币佣金。这种计算服务就是在把计算能力转化成数字货币,类似于用大型机器挖掘矿藏,所以被称为“挖矿”。
比特币的总数为2100万枚,目前还没有被全部发掘出来,所以目前“挖矿”得到的比特币还都是新生成的。如果哪天比特币已经全部进入流通了,笔者猜测,“挖矿”所得的佣金可能就要从交易的金额中抽成了。
“挖矿”这种行为在比特币系统中的重要性是无论怎么形容也不过分的,它通过经济激励的手段,让人们乐于在网络计算中投资,等于在用市场经济的原理刺激区块链网络的基础建设。这对于整个系统的运营起到了十分积极的作用,一旦这种激励机制消失了,整个比特币系统也就彻底崩溃了。
区块链技术的诞生,本质上就是为了提供一个高度可靠的通信网络。这项技术融合了网络拓扑、数据加密、分布校核等技术,让整个网络通信失效的可能性降到了最低。但是在实际的应用中,仅仅依靠技术是不能获得成功的,设计出优秀的激励机制也是一个极其关键的因素。
人们见到区块链技术的先进性,也看到了比特币的空前成就,于是就想在其它领域中也复制比特币的成功。那么工程建设行业能不能跟区块链结合起来呢?敬请期待笔者的后续文章。