Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

重构区块链

前言

撰写这篇手册,并不简单的因为区块链是一个热门话题,更因为随着研究的深入,你会发现这是一个相当复杂的领域。关于这一话题的信息来源无外乎三个方面:技术文档和代码,商业机构的宣传,研究机构或个人的整理。但是每一种媒体都因其形式、渠道或作者而带有某种偏见。技术文档固然详细精确,但是不够通俗,视野也不够广阔;商业宣传必定带有一定的偏向性;而看似中立的研究机构和媒体也因其背后资助方或者受众市场的差异而显现出意识形态的不同。区块链领域的技术人员喜欢强调其技术领先性,但偏偏这一领域在学术界还没有一致的评判标准。区块链商业机构流行的白皮书,只有极少数既保留了技术细节,又蕴含对整个体系的理解。媒体和研究机构里则存在一种悖论,那些对区块链理解不够深,但是想象力丰富的人,率先推出了所谓的畅销书,只能让普通人初步理解一些浅层的知识,无法用来灵活运用和价值创造。只有那些深入区块链一线的研究员才会意识到,这个领域还处在高速变化期,很多东西都没有定性,出书立著为时尚早。

笔者不是最早的区块链研究员,该手册的内容是从2017年中期的研习笔记开始,逐渐积累而来。当时大家对比特币的看法还在交易代币和价值储存间徘徊,手册第二章节会重点探讨这个问题。而近年来对于区块链技术的探索,也从基本的交易协议扩展,到共识机制扩展,和算力的扩展。这就好像同时站在了密码学,社会学,计算机科学的交叉口。这让笔者联想到6年前和时任天猫总裁的张勇(逍遥子)对话时,他提到全中国真正理解“电子商务”的人可能只有10个,因为“电子商务”里包含了“电子”这个不断变化的元素,也包含了“商务”这个需要稳定,需要持久的元素。一年后张勇升任阿里集团首席运营官,如今已是集团CEO。要说到区块链蕴含的元素,一个是相对稳定的技术,一个是非常不稳定的人性。但深层次上,这两者是统一的,手册最后章节会在这里展开。也正是这种不稳定,使本文所述不敢妄称为书。要说和本册子的内容形式最像的,应该就属北大经济学教授汪丁丁的《经济学思想史讲义》。他不是讲具体的经济学,而是讲经济学的思想是如何演化而来的。摘录其中对思想史概念的几个解释:零散的经济思想有别于系统的经济学,经济史不同于经济学思想史,经济学思想史是对经济学核心议题的反省。估计现在很多人都遗忘了经济学的本质,其实是一门研究幸福的科学,在马歇尔的定义里是人类社会和个人的“较好生存”(wellbeing)。那区块链的本质是什么呢?本手册通过对其核心原理的不断拷问,提出的观点是:区块链不论如何称呼,其背后的技术以及发展方向,是自然规律中隐含的一种用于修复人类社会性缺陷的一系列规则设计,最终达到人与人,人与机器的完美协同

这里所说的社会性缺陷,在很早的社会协作里就已经被深刻的意识到了。现在常说的去中心化的问题,也只是这种社会性缺陷的一种表现形式。严格意义上说,去中心化不一定优于中心化,本质上还是要看社会性缺陷是什么。圣经里“巴别塔”的故事,隐喻着人类的沟通障碍是上帝特意安排来限制人类发展的。而电影“罗生门”进一步阐述了不同的主观观察者,对同一客观事物也会产生认知偏差,就像本文开头所说的,背后受每个观察者动机的影响。甚至有非常极端的思想实验,在一个每个人都能当面阅读对方思想的城市里,一个完全透明的城市,可能比罗生门的世界更加可怕。面对这种无法改变的人性,为了维持人类社会的组织,其实已经设计出了很多的社会制度。这些制度有的偏向中心化,有的偏向去中心化,背后都是在适应不同的社会性缺陷,重建社会的信任。对此已有不少理论研究,但这些设计的出发点,始终是人类管理自己,而区块链可以说是利用宇宙规律来管理自己,是一大进步。这一进步的历程才刚刚开始,很多数学原理被重新评估并运用到这一体系之中,也不失为人类探索基础科学的一大回报。但这一波的进程能够推进多少,是否真的对社会有益,都还不得而知。但至少我们愿意相信,茫茫宇宙中,蕴含着这样的宝藏,等待人类去发现。

张翔
2018年5月7日 凌晨

更新手记:未来预言

2个月来6万字的初稿底稿基本成型,但里面大量超前的理念和项目一般读者很难快速消化。所以提前总结6大预言以方便读者选读。好比在踢足球时,一味追着球跑是永远追不上的。要提前预判球的走向,才能成功拦截。希望这几大预言能帮助区块链研究人员在大量分叉的技术和应用方案里,梳理头绪。同时每个预言也对应着具体的实现时间,放在这里等多年后回顾评判。

  1. 比特非平衡账本,打破了余额为正数的固有思想。经由本书提出,会在2019年萌芽,2020年深度讨论,2021年成熟和应用,将现有的机械算力升级为金融算力
  2. 大量衍生出来的不成熟共识机制将衰亡,到2019年会收敛到主流的机械化共识算法上,引入大量密码学成果,将人为干预的机会降到最低。矿工社区反过来成为保证去中心化的核心因素,也是市场争夺的重点。
  3. 通用币的饱和带来资产币的繁荣,2019年加密经济将重新定义金融的一、二级市场。数字币在融资市场的渗透率从5%起步,未来5年可能超过20%。
  4. 从链上到链下的协作2018年已经开始萌芽,在2019年解决区块链性能后会爆发。但要等到2020年信用体系完善,实体区块链才能真正走向主流。这时除了矿工提供算力和资源共享以外,社区成员还会普遍参与决策和仲裁
  5. 激励机制成为社区运营的核心玩法,2018年下半年将会有大量项目浮现,2019年饱和。
  6. 存储问题比预想的困难,一直到2019年以前都会以多形态组合机制来实现。期望2019或2020年完整解决这个问题。
  7. 智能化算力在2018年由本书提出概念,2019年会有广泛的讨论,也会有大量质疑。要等到2020年软硬件安全环境的成熟,才会逐渐开放,由合约反过来选择算力和共识机制。

等到2021年存储问题解决,矿工社区成熟,金融和智能算力解放,会迎来最大的一拨区块链风口。最终打破用户社群的局限,实现真正的全民挖矿。彼时成立于2017~2018年间的公司就是市场的主力,所以作者与合伙人也在这诸多方向中选取了3个立项。在年底书稿完成前,这几个项目会完成发布和初期验证,期待大家检验。

2018年7月1日 午后

更新手记:新的假设

欧几里得大约于公元前300年写成《几何原本》,基于直线,平行线的公理形成了欧式几何。其中的5条公设如下:

  1. 从一点向另一点可以引一条直线。
  2. 任意线段能无限延伸成一条直线。
  3. 给定任意线段,可以以其一个端点作为圆心,该线段作为半径作一个圆。
  4. 所有直角都相等。
  5. 若两条直线都与第三条直线相交,并且在同一边的内角之和小于两个直角,则这两条直线在这一边必定相交。

几何原本发布以来,数学家们就发现第五公设和前四个公设比较起来,显得文字冗长,而且也不那么显而易见。现在普遍的引申描述为:两条不相交的直线为平行线,而通过直线外一点有且仅有一条直线与该直线平行。有些数学家还注意到欧几里得在《几何原本》一书中直到第29个命题中才用到这第五公设,而且以后再也没有使用。也就是说,在《几何原本》中可以不依靠第五公设而推出前28个命题。因此,一些数学家提出能不能依靠前四个公设来证明第五公设?这就是几何发展史上最著名的,争论了长达两千多年关于“平行线理论”的讨论。由于证明第五公设的问题始终得不到解决,人们逐渐怀疑该公设是否是显然而必要的?

这类放弃或者修改第五公设而产生的几何统称非欧几何。现在有一条直线和直线外的一个点,以“通过该点可以引最少两条平行线”为新公设就是罗氏几何(双曲几何)。以“一条平行线也不能引”为新公设就是黎曼几何(椭圆几何)。当时有不止一位数学家有这样的想法,其中匈牙利数学家鲍耶·亚诺什在研究非欧几何学的过程中遭到了家庭、社会的冷漠对待。他的父亲——数学家鲍耶·法尔卡什认为研究第五公设是耗费精力劳而无功的蠢事,劝他放弃这种研究。但鲍耶·雅诺什坚持为发展新的几何学而辛勤工作。终于在1832年,在他父亲的一本著作里,以附录的形式发表了研究结果。

70多年以后的1905年,另一个人对存在了数百年的经典力学提出了疑问。当时人们认为时间和空间是各自独立的绝对存在,这是自伽利略时代以来就建立的绝对时空观。但描述电磁波的麦克斯韦方程组在伽利略变换下有不协变的问题,加上迈克尔孙-莫雷干涉仪实验,已经有人尝试推导一种空间不变的数学变换。但这个人在开始他的推导之前,引入了一个新的假设:真空中的光速在任何参考系下是恒定不变的。这一光速不变公设,加上惯性参考系的平权性,让爱因斯坦打开了狭义相对论的世界。和非欧几何的诞生一样,这一新理论加入了一个反直觉的公设,得出了诡异的结论,所以在初期只有很少人理解并且认可。但实验结果的支持,让这一理论大获成功,人类从此改变了对世界的认识。

用新公设(公理)开天辟地似乎是不二法门,爱因斯坦尝到了甜头,还想再来第二次!在人们用狭义相对论改造传统物理的协变性时,发现除了万有引力论难以协调以外,其他主要理论都迁移的非常顺利。也就是说在不考虑引力的情形下这种新的物理学具有洛伦兹不变性(狭义相对性原理,又称狭义协变性原理)。为了让任何物理规律都使用与参考系无关的物理量表示出来,整个物理世界跃跃欲试,不就是引力嘛,我们修正他。在大家埋头苦干时,爱因斯坦微微一笑,在一个思想实验中,他打算再一次引入一个新的公设,来迅速解决问题。他想象着,我们习惯认为一个人的体重是引力质量在引力作用下产生的,我们站在地面称体重就可以得到自己的质量。那如果把人放到一个在无重力空间加速飞行的火箭上,人因为惯性产生的“重力”,和引力中的重力,是等效不可区分的。同样不论从哪个参照系测量,物理世界的力学现象也都是等效不可区分的。

这样我们得到了一个新的惯性参照系,就是在引力下自由落体的空间,这里引力和惯性力相抵消。这让真空中羽毛和小球等速落体的现象变得显而易见,但这并没有让问题变得简单。爱因斯坦从1907年开始了长达八年对引力相对性理论的探索,在历经多次弯路和错误之后,他拍拍脑袋,打算引入第三个公设,给这一问题以致命一击。如果说惯性运动是匀速直线运动,那同时也是时空几何上的最短路径(测地线)。在狭义相对论的4维模型里,是闵可夫斯基时空笔直的“世界线”。但现实物理世界不存在全域惯性系,引力无处不在,也就是只有跟随自由落体粒子一起运动的局部惯性系。这导致世界线彼此相互弯曲,这第三个公设就是,引力场是时空弯曲的体现。在解这个时空弯曲的方程时,近百年前打破第五公设的非欧几何起到了至关重要的作用。最终广义相对论诞生,这一理论的怪异程度大大超过了上一次的狭义相对论。一下引入两个超前的公设,就好像出拳用力过猛,即使积累了一定名声的爱因斯坦也难以驾驭。直到1915年通过广义相对论证明了水星轨道的近日点反常进动现象,和日食光线在太阳引力场中的偏折现象(预测角度是传统理论预测值的2倍),新理论才被广泛接受。

世界上经历了几代人的锤炼,最终留下来的创世公理(公设)并不多。如果当时有知乎一定会有人问,10年间提出3个全新公设是怎样的体验。在新理论下物理学蓬勃发展,构建在那些久经锤炼的公理支柱上,人类生产力迎来腾飞。路德维希·维特根斯坦也早早下了定论:凡能够说的,都能够说清楚;凡不能谈论的,就应该保持沉默。从此除了在现有框架下做拓展外,很多学者一定不时会拿起小榔头,在这些公设支柱上敲敲打打,看看有没有什么东西松动了掉下来。科学大厦越建越高,而他的根基也越发牢固,希尔伯特提出的23个世纪问题中的第二个,就是公理系统内的命题彼此是否相容无矛盾。在1930年哥德尔不完备定理(Gödel's incompleteness theorems)证明之后,粉碎了希尔伯特的梦想,也粉碎了理论学家的小榔头。旷世骇俗的新公设,也许只有等到我们的观测能力大幅提升,有了全新的实验发现之后吧。

走出接近完美的数学和物理,还有什么算是能够说清楚的呢?罗纳德·费希尔在他1935年的著作实验设计(The Design of Experiments)一书中,举了一个女士品茶的例子。那是20世纪20年代后期,在英国剑桥一个夏日的午后。一群大学的绅士和他们的夫人们,还有来访者,正围坐在户外的桌旁,享用着下午茶。在品茶过程中,一位女士坚称:把茶加进奶里,或把奶加进茶里,不同的做法,会使茶的味道品起来不同。在场的一帮科学精英们,对这位女士的“胡言乱语”嗤之以鼻。这怎么可能呢?他们不能想象,仅仅因为加茶加奶的先后顺序不同,茶就会发生不同的化学反应。然而,在座的一个身材矮小、戴着厚眼镜、下巴上蓄着短尖髯开始变灰的先生,却不这么看,他对这个问题很感兴趣。 他兴奋地说道:“让我们来检验这个命题吧!” 并开始策划一个实验。在实验中,坚持茶有不同味道的那位女士被奉上一连串已经调制好的茶,其中,有的是先加茶后加奶制成的,有的则是先加奶后加茶制成的。

有的读者可能觉得,这和传统的物理化学实验并没有不同,只要确定每次预言正确,就可以得出结论。但要知道,参与实验的是人,人的行为并不像物理世界那样一成不变。这位女士即使瞎猜,在第一杯也有50%的概率猜对,到第二杯连续猜对的概率为25%,第三杯12.5%...以此类推。那到底要猜对几杯,我们才敢断定这位女士真的可以品出不同顺序调制的奶茶来?这是一个不那么容易说清楚的事,是一个开放性问题而不是简单的确定性假设。后来这种不确定性也写进了以严谨著称的物理学,在量子力学里,上帝玩起了筛子。

今天我们不打算敲打那些恒久的公设,我们只想问这么一个问题,如果去掉所有信息系统中的中心管理节点,还能否继续维持这个系统的运作?如果能运行的话,执行效率如何?这个问题的答案,就是我们今天要讨论的去中心化高效分布式系统。区块链作为最早一块拼图,让我们暂且沿用他的名字,将这套体系称为狭义区块链。去中心的不光是信息系统,其实我们看整个物理世界,就是由公式和计算组成的。这么多的粒子,在相同的时空里,完全遵守统一的规律,一刻不差。如果要模拟这样的世界,那需要的计算量人类恐怕永远无法完成。这么一个近乎完美的世界,是不是也算一种去中心化高效分布式系统的实例?目前这套狭义区块链还在发展和证明自己,距离高效还差很远。期间和人类社会金融系统的摩擦不断,掀起的融资狂潮和价格崩盘一样频繁。为了修正这个问题,已经有很多的努力,而我们打算引入一个非常危险的假设:区块链账本的余额可以为负。这一改变带来的一连串问题,会大大超过本书的范围,所以我们暂且称之为广义的区块链模型,留待后续去挖掘其内涵。但设想一下暗物质的存在,宇宙的诞生可能就是因为借了一点点能量,带来的一次非平衡波动。

2018年8月27日 午后

信任的来源

社会需要信任,区块链修复信任,但信任到底是什么?当每天早上我们睁开眼睛,如何知道我们还身处同一时空?如何确信今天的太阳会升起,而且还是昨天那个太阳?每次和家人相见,如何知道对面的就是你的亲人?看似习以为常的东西,在我们反复叩问下,展现出其异常神奇的一面。我们可以先下一个简单的定义:信任是对于事物连续性预判的把握程度。在这个定义下,信任首先不是有无的问题,是程度的问题。科学带来了多次的工业革命,其背后就是因为对事物预判性的把握程度达到了前所未有的精度。牛顿力学带来了我们对简单机械的信任,电学用信任取代了最初对电的恐惧,相对论和量子力学让我们有勇气去探索更大的宇宙空间,也能够从最小的粒子中获取能量。但是决定论在量子理论和混沌理论中遇到了极大的阻碍,这预示着“对于事物连续性预判的把握程度”可能是有上限的,而这就是信任的极限。在信任的上限和下限之间,充满了各种人类社会的信任问题。

在对社会学信任进行展开之前,我们还需要翻开信任这枚硬币的另外一面:事物本身的可预判性是固定的,而信任的差异源于主体对信任对象的认知。人类是认知能力最强的生命体,也是唯一系统性发现和利用宇宙规律的生命体。刚性物体的力学性质最简单,也最容易认知理解;生物的化学性质较复杂,要基于大量现代化的观测手段才能认识其中的规律。所以认知能力受到信息获取手段的制约,幸好计算机科学的发展,使我们拥有了处理海量信息的能力。但是在人工智能领域,数百万乃至上亿节点的神经网络模型虽然能够提供很好的预测能力,但我们对其原理仍一知半解。所以认知能力也受到理解力的制约。回到社会学的信任问题上,在简单的测谎实验里,有靠机器进行大量数据采集分析获得的测谎结论,也有专业人员依靠观察和直觉判断的结论。但不论是基于信息的还是基于理解力的,都只能达到非常浅层的连续性预判,也就是信任。理想情况下,如果我们能够知晓对方所有的思维,而且掌握了完备的博弈理论,那么在这种信息完备,且完全理性人的假设下,可以建立完美的信任社会。但很遗憾上述两个假设都不成立,所以社会学里的信任是需要刚性制度去约束的,也就是契约。

我们逛超市,完成每一次看似轻松的交易,我们和商家的信用,如果没有契约的约束,将是及其脆弱的。但参与这个简单交易的信任元素其实非常多:商品生产厂商的品质,质检部门的尽职,物流的可靠,货品信息和标价的完整,收银结算的透明,异常问题的反馈等等等等。针对如此多的约束条件去设计契约是非常困难的,我们需要更加巧妙的方法:对于社会群体的信任源于经济学原理。以最简单的收银机举例,如果开发收银机软件的程序员埋了一个隐藏的后门用以窃取客户的付款资金,那么他有两种选择:开发通用的后门大量窃取资金,或者开发针对性的后门只在特定情况下窃取特定用户的小量资金。第一种情况下,开发成本相对较低,但是金额大非常容易被发现。第二种情况下,开发成本很高,收入反而降低,需要很长的时间在运气足够好没有被发现的情况下才能获利。所以最终这个程序员放弃了这个计划,在法律缺失的一些角落里,经济规律仍然起着作用。区块链最基本的作用就是解决了社群协作的信用问题,而我们对于区块链的信任,一方面基于对密码学和计算机代码的认知,另一方面也基于其按经济规律设计的契约规则。

信任的区块链演化

如果说区块链承载了信任和交易,那么我们也不能忘了硬币的反面,也就是恶意。通过善意和恶意的不断碰撞,我们才能充分理解区块链如何解决交易信任的问题。从世界上只有两个人的时候说起,在丛林法则里,是面对面的恶意。这时的博弈场景正好满足囚徒困境的条件,假装合作,然后侵吞对方会带来最大收益。但当双方都意识到对方的策略,采取规避态度时,合作的可能也消失了。直到环境的压迫足够大,任何一方都无法独立生存的时候,经济动力使合作与信任再次成为可能。合作的久了,人类产生情感,这为更大范围的合作信任建立基础。

比特岛的故事

我们暂且把这个合作的温床比喻为一个小岛,叫做比特岛。这里有两个人“阿稳”,和“阿北”。他们每个人都掌握一定的生成技能,需要交易合作才能生存。而且聪明的两个人已经约定使用贝壳作为记账工具来记录和换算两个人的资源交易。一开始他们住岛的东面,生活在一起。因为所有交易对双方都是透明的,所以在交换贝壳和物资的时候,双方都会对数量进行确认,一旦出现误差,可以回退到交易前的状态重头开始。这就是区块链的隐形基础,网络通信协议。这个通信层作为整个互联网的基础,就像空气一样,大家已经习以为常了。

经过了1个多月,阿稳和阿北积累了足够的物资,打算出门,分头去探索比特岛的其他区域。阿稳往南走,阿北往北走。我们把时间拨快,一年后,阿稳盘踞在岛的南面,阿北占据岛的北面。他们发明了可以远程通讯的工具,但是双方的相互猜疑让两个人不敢见面。他们殖民了岛上的原住民,让他们传递货物。阿稳尝试给原住民1个贝壳,让他去阿北那边换1个香蕉。可过了很久都没收到,两人通讯后发现原住民拿贝壳跑了。阿稳思考后换了一种策略,他打造了一个保险箱,把贝壳放在里面锁上,交给原住民A,传递给阿北。等A走后再把钥匙交给另一个原住民B,传给阿北。阿北拿齐保险箱和钥匙之后,打开箱子,取出贝壳,放进香蕉。再用同样的方式分批传递给阿稳。两个人用这样的方式,成功进行了几次交易。

但是好景不长,某天传递保险箱的原住民A和传递钥匙的B相遇了,他们很快发现钥匙的使用方法,联手把贝壳拿走了。阿稳并不气馁,他把制作保险箱的方法教给了阿北,他们每个人都做了10个自己的保险箱。双方保留自己的钥匙,但把空箱子通过原住民传到了对方手中。这一次阿稳把贝壳放进阿北制作的箱子里锁上,找原住民直接交给阿北。因为箱子是阿北制作的,钥匙只有阿北自己拥有,所以原住民没办法窃取箱子里的物资。他们俩的这种方法成功使用了很长时间。在区块链里,这种钥匙和锁的错配,就是非对称加密。比特币的收款地址就好像这把公开的锁,比特币支付到了这个账户,就是被这把锁锁上。只有地址所有人能够花这笔钱,因为私钥密码,也就是钥匙只有地址所有人知道。而这把锁和钥匙的生产我们稍后介绍。

原住民每天传递着无法打开的箱子,非常懊恼。有一天终于怒气爆发,把阿稳刚交给他的箱子直接扔进了海里。阿稳换了其他原住民又试了几次,还是被扔进海里。这样下去,贝壳总有一天要被耗光。所以阿稳提出了一个大胆的提议:放弃贝壳,直接用纸条来记账。双方先约定初始账户皆为0,阿稳要向阿北买香蕉,就在纸条上写:

阿稳支付给阿北1元,阿稳账户余额-1,阿北账户余额为 1

纸条的成本是低廉的,所以阿稳写了很多重复的纸条,交给了所有能找到的原住民。其中还真有一些单纯而空闲的原住民,把纸条交到了阿北手上。阿北收到第一张纸条,验证了收款1元后余额计算无误。阿北收到第二张纸条,计算如果再收款1元,自己的余额应该为2,所以第二组纸条不正确,直接作废。如此看完所有纸条后,他确定阿稳支付了自己1元钱,于是对应的把香蕉放进盒子里寄给了阿稳。如此一来,原来单线的货币贸易,变成了并行式的账本系统,这就是区块链里所谓分布式账本的起源。到这里为止都没有出现任何代币,因为交易的本质是账本,而货币只是纸质不记名账务的一个便携表现形式。另外那个箱子里的香蕉如何保证不会被扔进海里呢?这个问题在后面“从移动比特到移动原子”的章节单独讨论。

如此有效的交易协议,也没有坚持太久。某天原住民突然发现,自己可以轻易的伪造交易。他们打造了自己的箱子和钥匙,自己写了纸条:

阿稳支付给阿北1元,阿稳账户余额-3,阿北账户余额为3

阿北看到纸条,如约把香蕉放进了原住民的盒子里,而原住民顺利的用自己的钥匙取出了花阿稳的钱骗来的香蕉。阿稳得知后非常恼火,要求勾销这笔交易。但是阿北的香蕉已经消费了,所以无法撤回。阿稳苦想了很久,设计了一种透明的盒子,里面每张纸条都用自己特殊的笔迹进行签名,并把这个方法同步给阿北。从此阿北只有确认这个签名是阿稳的,才会接受那张纸条的交易信息。这就是比特里使用的椭圆函数签名。阿北很感谢阿稳的发明,决定把被盗的1元还给阿稳。当阿北向阿稳支付的时候,他只要用自己的钥匙打开这个盒子,在上一次账单下叠加新的支付请求,并签上自己的名字,用阿稳的保险箱锁住即可。保险起见,我们再在账本里加上时间戳,并且尽可能多的复制和广播这个账本。

2018年5月1日 17:30:00 阿稳支付给阿北1元,阿稳账户余额-3,阿北账户余额为3 ;
2018年5月2日 13:50:00 阿北支付给阿稳1元,阿稳账户余额-2,阿北账户余额为2 ;

到此为止,比特岛上阿稳和阿北发明的这种交易记账法,可以说是比特币协议的变形,我们暂时称其为“透明保险箱签名记账余额开放协议”。其中“余额开放”的意思是不强制账户平仓,这个问题在下一个大章节再深入讨论。回顾设计期间每次的规则修改,都是为了避免恶意中间人的攻击。最终结果是一套不受中间人意志影响的可信任的交易规则,保证付过来的就是我的,而且只有我能花。但是其中承诺的锁和钥匙不被破解的配对关系,以及无法被伪造的签名,要如何让人信服呢?这里就需要召唤数学家出马了,只有上述元素被充分证明,且用户充分的理解和认知,我们才敢说区块链保证的交易信任是优于目前的三方交易体系的。因为最开头我们定义了,信任是对事物连续性预判的把握。而基于数学的预判精度,远高于对人类行为的预判。但现在这个版本,仍然有缺陷,后面我们还会不断扩充优化这个协议,以进一步提高其可预测性。

区块链中的数学

中国文化重文采,历史故事写的美妙。近代几次寻求文化属性的突破,但时有回潮。西方文化在跨越宗教限制之后,走向了辩证和唯物,追求真理。我们的比特岛看上去是一个美好的世界,但上述可信的交易记账协议里,留了两个数学问题等待我们解决。但这两个数学问题的证明及其复杂,无法用美妙的文字来描述,仅仅是使用这两个原理都不是一般人能够做到的。那我们可以相信这些我们无法理解的科学吗?每一块组成比特岛的砖石,都曾经历百年的风化和打磨,才最终固化为现在的模样。正如科学一样,人类所有持久有效的创造,几乎都和科学有关。而在科学之中,最不容辩驳的就是数学。你看社交网络上大家对一些热点事件七嘴八舌,甚至法庭判案他们都能插上一嘴。但当我抛出一个数学问题时,只闻鸦雀无声。为了向大家解释区块链信任的数学基础,我会用一个章节的篇幅去推演,对于数学不感兴趣的读者可以跳过,只管相信就行。

费马大定理

这是一个困扰数学界300多年的问题,由“业余数学家”费马提出。他出生在17世纪初的法国,职业生涯本和数学无关,是图卢兹议院的顾问,就是一名政府文官。当时正好在红衣主教黎塞留(Richelieu)晋升为法国首相3年后,政府机构里充斥着阴谋和诡计。费马显然对这些人世间的问题不感兴趣,他有效的履行自己分内的职责,不站边,也尽量不把人们的注意力引向自己。在避开了议会混战的同时,将自己余下的精力都奉献给了数学,被埃里克·贝尔(Eric Temple Bell)称为“业余数学家之王”。但朱利安·库利奇(Julian Coolidge)不这么认为,在写作《业余大数学家的数学》一书时将其排除在外,因为“他那么杰出,他应该算作专业数学家”。要知道当时数学还在从欧洲中世纪的黑暗中逐渐恢复,不是很受重视的学科。

巴黎数学家们有个守口如瓶的奇怪传统,这是从16世纪cossists沿袭下来的。cossists是指精通各种计算的专家,受雇于商人和实业家,以解决复杂的会计问题。所以出于利益考虑,这个时代的专业解题者都努力创造他们自己的聪明方法来进行计算,并且尽可能的保密。唯一例外的是梅森尼神父,他试图鼓励数学家们相互交换自己的思想,以相互促进。他作为唯一与费马定期接触的数学家,一直鼓励费马将他的研究公布。但费马不为所动,公开发表和被人们认可对他来说没有任何意义,他以创造和发现新的未被他人触及的定理为乐。他甚至在与友人的通信里不时挑逗,描述他最新的定理但不提供任何相应的证明。这种习惯让人咬牙切齿,但费马的贡献如此之大,大家前赴后继的追求他定理的证明。甚至在普遍认为是微积分发明者牛顿的一个注记里也写到,他是在“费马先生的画切线法”基础上发展了他的微积分。

费马留下的遗产被后人反复研习,他那些刻意隐藏证明的定理,终于被后人一一验证。这一次激发他灵感的是亚历山大的巨著《算数》,其中求等式有理数解的丢番图方程引起了他的注意。在《算术》第二卷中,描述了毕达哥拉斯定理和毕达哥拉斯三元组。这个定理其实就是勾股定理,古代中国早在公元前一千多年就已有论述。毕达哥拉斯对勾股定理的证明方法和三国时期的赵爽一样。但费马关心的是这个问题的扩展,既然二次方等式能够成立,那么三次方,以及更高次幂的勾股方程能有整数解吗? $$ x^2 + y^2 = z^2 $$ $$ x^3 + y^3 = z^3 $$ $$ x^n + y^n = z^n $$

挑逗的费马在研究完这个问题以后,老毛病又犯了,在书的页边处记下了他的结论:

不可能将一个立方数写成两个立方数之和,或者将一个4次幂写成两个4次幂之和,或者总的来说,不可能将一个高于2次的幂写成两个同样次幂的和。我有一个对这个命题的十分美妙的证明,这里空白太小,写不下。

在费马恶作剧般的其他定理早被验证完毕的百年后,唯独这一个看似非常简单明了的定理,无人能证。从此我们将这个问题称为费马大定理。而这一切看上去都只是中学数学而已,也确实对4次幂的证明在费马手稿中透露了些许线索,很快得征。但为了证明3次幂,我们已等了百年。直到18世纪的天才欧拉,通过引入虚数的概念,再结合4次幂类似的套路,完成了证明。而这也只是漫漫长路上的一小步,人们不断攻破各种非质数的情况,但余下需要证明的数量还是无穷。一直等到新世纪的数学进入抽象,我们才迎来曙光。这里第一个难啃的概念叫椭圆函数。

椭圆函数与丢番图

科学本身有一种很友善的性质:问题可以被清晰的描述,而结论可以相对容易的验证。费马大定理是否定式定理,所以穷举验证起来很费力。但我们换一个有解且容易验证的丢番图谜题,号称史上最贱的数学题为例,来告诉大家,再难以理解的数学,其可靠性是相对容易验证的。这道题及其解答来源于Quora问答网站,并由知乎网友授权翻译。

题目是如下这张图片,第一眼看到的时候,你绝对会以为这又是什么脑筋急转弯的趣味问题。在我们开始枯燥的数学之前提醒读者,只要你看明白了问题,而对于证明过程不敢兴趣,那可以直接跳到结尾去验证我们的结论。当然想挑战这个趣味“脑筋急转弯”的朋友也可以跟着我们一步步的进行数学求解。这就是科学善解人意的地方。
difficult math

用a,b,c替换苹果,香蕉和菠萝,我们可以很快得到题目的数学描述,就是解下面的3元方程:
$$ \frac{a}{b+c} + \frac{b}{a+c} + \frac{c}{a+b} =4 $$

等式两边相乘去分母后可以发现是三元三次方程,这里似乎已经有些不详的预感:
$$ a^3 + b^3 + c^3 - 3(a^2b + ab^2 + a^2c + ac^2 + b^2c + bc^2)- 5abc = 0 $$

多项式方程很容易找到某个特解,比如说, a=−1 ,b=1, c=0。但这些解还要带回原方程以确认分母不为零。
这意味着我们的立体方程(3维)实际上是个椭圆曲线
但这里不是大家熟悉的圆锥曲线中的椭圆,而是复域上亏格为1的光滑射影曲线,好像一个甜甜圈。
对于特征不等于2的域,它的仿射方程可以写成:
$$ y^2=x^3+ax^2+bx+c $$

这个复数域上亏格为1的黎曼面,被Mordell证明其有理点是有限生成交换群(有限域),这是著名的BSD猜想(世界7大难题)的前提条件,所以我们就不在这里费劲的解释细节了。大家唯一需要紧记的是,方程整数解也组成一个有限域,通过其中任意一个解,可以推算出其他的整数解。所以现在我们需要把原方程给椭圆曲线化,变成所谓魏尔斯特拉斯(Weierstrass)形式。这是一个长得像这样的等式:
$$ y^2=x^3+ax+b $$

即使你不知道如何完成变换,验证它是很容易的,或者说至少是机械的。对于我们而言,需要的变换由令人生畏的公式导出。
$$ x=\frac{-28(a+b+2c)}{6a+6b-c} $$ $$ y=\frac{364(a-b)}{6a+6b-c} $$

得到的这个方程尽管看起来和原方程长得不怎么像,但确是如假包换的可靠模型
$$ y^2=x^3+109x^2+224x $$

在实数域的坐标上它长成这样,一条有着两个实部的经典椭圆曲线,右边的“鱼尾”连续延伸至正负无穷。左边的封闭椭圆曲线将成为解决问题的契机。:
oval plot

我们略过一些内容,直接找到一个很好的有理数点x=−100, y=260,通过下面的等式还原对应的a,b,c
$$ a=\frac{56-x+y}{56-14x} $$ $$ b=\frac{56-x-y}{56-14x} $$ $$ c=\frac{-28-6x}{28-7x} $$

得到的a,b,c乘以公分母14,就变形为 a=4,b=−1,c=11。带入原方程,验证确实等式结果为4。只可惜这个解有一个负数,不满足题目的条件。但至少我们验证了上述的变换是成立的。
$$ \frac{4}{-1+11}-\frac{1}{4+11}+\frac{11}{4-1} = 4 $$

现在一旦你在椭圆曲线上找到了有理数点,就可以利用弦切技巧进行加法,生成其它的有理数点(有理数的加法是封闭的,有理数加有理数还是有理数)。这种加法需要用到近世代数中阿贝尔群,是一种满足满足二元运算定律的代数结构,我们姑且叫做椭圆曲线加法。经过相同点做切线,不同点做连线,取交点的垂足镜像,形成“有限加法循环群”,就能逐一找到方程的解。
oval plus

一开始,我们可以通过作P点(x=−100, y=260)的切线,找到它和曲线再次相交的点,以此增加P点的值。结果开始变得有点吓人
$$ P+P=2P=( \frac{8836}{25},\frac{-950716}{125}) $$

这个新的点也对应一组a,b,c的值 (a,b,c)=(9499,−8784,5165),很遗憾这组解也有负数。

我们继续计算3P=2P+P,计算4P,5P等等等等,直到我们计算到9P,对应的a, b, c的值就非常恐怖了

a=154476802108746166441951315019919837485664325669565431700026634898253202035277999,  
b=36875131794129999827197811565225474825492979968971970996283137471637224634055579,  
c=4373612677928697257861252602371390152816537558161613618621437993378423467772036

终于这里没有负数,而且经过很简单的计算机验证,确实满足求和为4的方程。这就是这道题的答案,一个80位数的答案,显然是不可能通过瞎蒙或者暴力手段去破解的。你不一定看得懂过程,但是可以简单的验证答案,那么就姑且相信科学是对的吧。

诡计或真理

椭圆函数只是费马大定理破解之路的一个途经点,最终在成千上万的途经点里,要保证不迷路,不算错,没有漏洞,可以说是人类史上最大的挑战。为此法国科学院设立了一系列的奖项,包括金质奖章和3000法郎奖金,以奖励能最终揭开费马大定理神秘面纱的数学家。在奖金和声望的诱惑下,诡计和真理在搏斗。巴黎的沙龙里充斥着关于某某正在采用某种策略尝试解题,以及距离宣布结果还有多久等等传闻。就好像区块链最火爆的2017、2018两年,业界大量的企业家和研究员投身该领域,每天都有人宣布自己发明了某种更加高效的共识算法,或者上线了某个区块链项目,以及某某加密币涨势喜人等等。每周都有大量区块链聚会,每月有小型发布会,每年在全球各地争相邀请富有声望的专家和明星项目同台论道。那时法国数学界也一样,在1847年3月1日,科学院举行了极富戏剧性的会议。

首先上台的是曾经证明费马大定理在n=7时成立的数学家加布里尔·拉梅(Gabriel Lamé),面对台下当时最卓越的数学家们,他宣布自己差不多已经证明费马大定理了。虽然当前证明还不完整,但是他概述了他的方法,并预言几星期后发表。全体听众都愣住了,但是拉梅一离开讲台,另外一位巴黎最优秀的数学家奥古斯丁·路易斯·柯西(Augustin Louis Cauchy)也请求发言。他宣布自己在用拉梅类似的方法进行研究,并且很快也将完成。柯西和拉梅都意识到时间的重要性,谁先提交完整的证明,谁将获得一切,而晚来的那个人,将一无所获。仅仅过去3个星期,双方各自发布声明,宣传已将完整证明盖章封印,存放在科学院内。

有了封印的时间作证,整个4月,柯西和拉梅都在不间断的透露这个证明的细节,但却又保持着一份神秘,亦或是某种不安。要知道费马的这个谜题如此简洁,但证明却如此困难,能够理解和跟上这两位领跑者的人并不多。在数学的巅峰是孤独,不像区块链将简单的交易交给全世界去论证,能够胜任前沿数学校验的人屈指可数。这一次站出来的是德国数学家恩斯特·库默尔(Ernst Kummer),这位最高级的数论家对法国科学院发生的事件一清二楚。从柯西和拉梅透露出的少量细节里,看出这两个人在走向同一条逻辑的死胡同。两个人的证明里依赖“唯一因子分解”这个性质,对于给定任意数,都只有一种可能的质数因子组合。因为质数本身无法继续拆分,所以当因子分解到最后,剩下全都是质数的时候,显然具有唯一性。这一性质如此明显,历年来并未受到质疑。但是前面提到,在解决费马大定理n=3的情况时,欧拉引入了虚数。

以12为例,在实数域上,可以分解为2 x 2 x 3。但在虚数域里,还可以分解为如下形式: $$ 12 = (1+ \sqrt{-11}) \times (1-\sqrt{-11}) $$ 虚数的引入,使得因子分解不唯一。这一瑕疵在小于31的质数可以避免,但是在例如n=37,59,67这种非规则质数下,无法完成证明,所以费马大定理没有完全解决。库默尔的发现对拉梅是极大的打击,他也意识到如果将自己的工作更为公开一些,或许就会更早发现这样的错误。但柯西拒绝失败,他认为自己的方法对唯一因子分解依赖较少,还可以挽救。随后几个星期他还在坚持研究和发表。但夏季接近尾声,秋风将摇曳的树叶吹落,柯西也变得安静了。那两份盖章封印的证明再也无需打开,柯西在1857年撰写了这场科学院关于费马大定理奖项的最终报告,通往证明的道路仍然停留在库默尔指出的那个问题下。很多人觉得在当下数学知识框架内,费马大定理恐怕无法解决。这是数学史上暗淡的一页,委员们建议撤销对费马大定理的竞赛,而将奖励颁给库默尔先生。

也许只有在数学的领域,进攻并不总是获得奖励的那一方。每一扇数学大门的背后,都有一代代坚韧的守门人把守。他们的贡献值得获得最高荣誉的奖励。在他们严谨而睿智的审视下,数学大厦越建越高。经过了椭圆函数与模形式,经过了谷山-志村定理,在20世纪数学的虚拟世界里,英国数学家安德鲁·怀尔斯(Andrew John Wiles)通过7年的孤独探索,最终宣布找到了那个困扰300多年的证明。这份200页的证明摆在最后一代守门人面前。考虑到这个证明的重要性,这次的审稿人不是通常的2~3位,而是6位。其中第三章由尼克·凯兹(Nicholas Michael Katz)负责。考虑到这一章节有70页长,占全部证明的2/3,所以在他坚持下,邀请到当时也在巴黎的吕克·伊卢齐(Luc Illusie)作为合作审稿人。两人日复一日,逐行检验着论文。通过和作者怀尔斯的不断交流互动,他们解决了一个又一个描述不明确的小毛病,最后在又一个“小毛病”上停了下来。但这一次看来遇到了真正的麻烦,怀尔斯不得不再一次把自己关起来,重新上路寻找修复的方法。这时外界充满了各种猜想,人们担心1847年夏天的那个暗夜再次降临。

所幸怀尔斯7年的积累没有白费,最后的灵感闪现,让他如释重负。在全世界的目光下,数学巅峰的钥匙失而复得,其中的感动难以言表。那篇修正后的论文缩减到130页,手稿名为《模椭圆曲线和费马大定理》,是历史上核查最彻底的数学稿件。数学大厦就这样在天才的进攻者和睿智守门人的合作下,提高了一层。复建在数学大厦上的物理,工程等等应用学科依然牢固。这种牢固,其实也脆弱,因为最前沿的科学,依赖的不过那几位守门人。一方面依赖他们的技能,另一方面依赖他们的品德。不论技能还是品德,都不是天生的,可以说这样的守门人,必须由社会环境培养而来。伟大的教育,使社会追求真理,顶尖的名校,让大家相信真理。社会道德的堕落最多让生活徒增艰辛,而知识道德的堕落,让科技大厦崩塌。

我们身边有很多能言会道的意见领袖,针砭时弊的秒文精彩叫绝。但当你和数学家说话的时候,会觉得别扭。每次被提问,他们都会先停顿一下,停顿的长度让你觉得他们睡着了。当他们再开始说话时,听起来却都井井有条。因为在面对每一个问题时,数学家都会在庞大的逻辑空间里反复求证,最后才得出一个他们认为最精确的文字表达。显然在使用文字和数学符号之间,他们觉得后者更加严谨。还是那个苏格兰黑羊的经典笑话,我们稍加改编:

有一个公知,一个物理学家、一个天文学家和数学家走在苏格兰高原上,碰巧看到一只黑色的羊。“啊” 天文学家说道:“原来苏格兰的羊是黑色的。” 物理学家不满意,“得了吧,仅凭一次观察你可不能这么说。你只能说在苏格兰有一只黑色的羊” 。“也不对” 数学家补充道,“只能说在这一时刻,这只羊,从我们观察的角度看过去,有一侧表面上是黑色的。” 这时公知咳了一下说到:“看来现在学生们的学习压力太大,学校招生考试也越来越难,尽出一些刁钻的题目。家长都不会,搞得同学们各个钻进了牛角尖。”

众人走过以后,艾德蒙·兰道的灵魂按奈不住,喃喃自语道,你们怎么知道那个黑色的东西,真的是一只羊?原来很久以前有人问埃米·诺特(Emmy Noether)的同事艾德蒙·兰道(Edmund Landau),诺特是否真的是一个伟大的女数学家?他回答说:“我可以作证她是一个伟大的数学家,但是对她是一个女人这一点,我不能发誓。”

现代密码学

从二战时期德国的英格玛密码机开始,现代加密手段不断加强,在通讯和计算机领域得到广泛应用。不管方法如何,设计方向都是寻找一种单向的计算,加密非常容易,而解密的逆运算格外艰难。只有在掌握了某种关键信息的时候,才能快速解读。我们用两个大质数相乘就可以简单构造这样一种系统:

p=12026655772210679470465581609002525329245773732132014742758935511187863487919026457076252932048619706498126046597130520643092209728783224795661331197604583
q=8002511426596424351829267099531651390448054153452321185350746845306277585856673898048740413439442356860630765545600353049345324913056448174487017235828857
p*q = N

这里已知p和q,计算N非常容易,但已知N,要做质因素分解则相对困难。而给你N和其中一个因子p,你计算q又变得非常容易。这就是我们要的性质,经过更加强化的构造,就是RSA密码系统的基础。该类方法我们统称为非对称加密,在通信前,需要双方在各自系统里生成自己的私钥和公钥,公钥公开给对方,用来传信,私钥自己保留,用来读信。整个环节除了质数乘法外,显然还依赖一种随机数生成规则,正是这个规则埋下了软件后门的隐患。

RSA Security是由RSA算法的发明者Ron Rivest, Adi Shamir和Len Adleman在1982年创立,作为互联网通讯的基础运行在大量计算机上。后来该公司在2006年以21亿美元的价格被EMC公司收购。但据NSA前通讯员斯诺登所提供的机密文件显示,NSA跟RSA达成了一份价值1000万美元的合同,前者通过在后者的加密软件中植入一个缺陷公式,为自己留了一道“后门”。据悉RSA存有缺陷公式的软件叫做Bsafe,而该缺陷公式的名字为Dual Elliptic Curve,函数方法是DUAL_EC_DRBG,意为双椭圆曲线确定性随机数发生器。没错,这里的椭圆函数,就是史上最贱数学题里的椭圆函数,也是费马大定理里涉及的椭圆函数,更是后来区块链加密币里常用的椭圆曲线。它由NSA开发而出,自2004年起就开始在RSA的软件中使用这一缺陷公式,并受到大量密码学家们的批评。看到这里相信大家都忍不住呼唤库默尔、凯兹那些正直的数学守门人。不论听上去多美妙的理论,在魔鬼的诡计里,都是通往地狱的暗道。索性10多年后NSA带着悔恨放弃了这个后门。

但密码学从不停步,椭圆曲线本是连续的,并不适合用于加密,所以必须把椭圆曲线变成离散的点。我们把椭圆曲线定义在有限域上,先给出一个有限域Fp。Fp中有p(p为质数)个元素0,1,2,…, p-2,p-1,其加减乘除的定义是对P取模,也就是结果除以P取余数,以控制数值在有限域内。Fp域内运算同样满足交换律、结合律、分配律。基于该有限域生成椭圆曲线E(Fp(a,b)),p为质数,x,y∈[0,p-1],函数表述为: $$ y^2 \equiv x^3 + ax + b (\mod p) $$ 选择两个满足下列约束条件的小于p的非负整数a、b就可以完成构造 $$ 4a^3+27b^2 \neq 0(\mod p) $$ 考虑Q=kG ,其中Q、G为椭圆曲线Ep(a,b)上的点,n为G的阶(nG=O∞ ),k为小于n的整数。有限域中的加法和乘法是有特殊规定的,根据加法法则,给定k和G 计算Q很容易。但反过来给定Q和G,求k就非常困难,因为加法取mod循环n次时,对应的减法逆推可能要2^n。而且实际使用中的椭圆曲线p取得相当大,n也相当大,要把n个解点逐一算出来列成上表是不可能的。这就是椭圆曲线加密算法的数学依据。比特币系统选用的secp256k1中k(k<n)为私有密钥(privte key),Q为公开密钥(public key),其他参数如下:

  • p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F
    • = 2^256 − 2^32 − 2^9 − 2^8 − 2^7 − 2^6 − 2^4 − 1
  • a = 0, b = 7
  • G =04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8
  • n = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141
  • h = 01

透明保险箱签名记账余额开放协议”里无法篡改的签名,就是基于比特币椭圆曲线加密算法 ECC (Elliptic curve cryptography)的一种椭圆曲线数字签名(ECDSA)。他对于数字的单向放大能力,造就了签名算法容易生成,容易验证,但是难以破解的特性。他和量子时代的OTS单次抗量子(匿名与隐私章节会单独介绍)签名一样,成为了区块链信任的基石,被用到不同的项目里。需要提醒的是,上述我们自己创造的协议,加上区块链的数学工具,仍然和真正的比特币协议有些许差异。我们不打算在这里解释具体的比特币交易协议是什么样的,但是通过我们对数学的信任,对交易的推导,相信大部分读者已经可以理解比特币颠覆性的运作机理。“信任源于认知”,有时候守门人也是可信的,那对于没有看过比特币源代码的人,我们只需要相信基本的经济规律。世界上这么多聪明人在没有串通的情况下,一致认同且投入大量的精力物力在比特币之中,他们不是为了骗你的那一点钱,这样不经济。“对于社会群体的信任源于经济学原理”,所以当比特币和区块链已经是社会群体现象时,对他的顾虑可以打消了。

拜占庭分布式系统

如果说密码学是区块链的左腿,那分布式系统就是区块链的右腿。这个计算机领域的热门话题包含了寻址协议,网络通信,传输协议,一致性校验等等问题,复杂度并不逊与密码学。其中皇冠上的明珠就是拜占庭容错的分布式,这个拜占庭问题源于一个流传久远的段子。始作俑者是莱斯利·兰伯特(Leslie Lamport),他是微软研究院的首席研究员,曾获得2013年图灵奖——计算机界的诺贝尔奖。这家伙觉得故事让问题变得受欢迎,因此他在提出观点和问题时常用故事背景吸引眼球,拜占庭将军的故事就是兰伯特在研究分布式系统容错性的时候编出的一个故事,原文如下:

We imagine that several divisions of the Byzantine army are camped outside an enemy city, each division commanded by its own general. The generals can communicate with one another only by messenger. After observing the enemy, they must decide upon a common plan of action. However, some of the generals may be traitors, trying to prevent the loyal generals from reaching agreement.

假设拜占庭帝国的几支军队在敌人的城池外扎营,每支军队听命于自己的将军,这些将军之间只能通过信使传递消息。在对敌军进行侦察后,将军们必须制订一份共同行动计划。但是,有些将军可能是叛徒,这些叛徒会阻碍那些忠诚的将军达成共识。

为了简化问题,将各支军队的行动策略限定为进攻或撤离两种。因为部分军队进攻部分军队撤离可能会造成灾难性后果,因此各位将军必须通过投票来达成一致策略,即所有军队一起进攻或所有军队一起撤离。系统的问题在于,将军里可能有叛徒,他不仅会发送错误信息,而且可能选择性的两面派。比如对支持进攻的说他支持撤退,又对支持撤退的说他支持进攻。比特币的信任和公平机制,可以证明是满足拜占庭容错 (Byzantine fault tolerance) 的。首先信息有数字签名不会被伪造,而且信息广播对所有人透明,一旦认证后不可篡改。所以只要叛徒将军的比例不超过50%,好将军还是可以达成一致的行动,并作出正确的选择。如果叛徒超过50%且相互串通,他们可以对所有好的将军说支持进攻,但其实内部达成不进攻的决议。这样以不到一半的兵力盲目进攻,会导致溃败。

但这里面临很多假设,通讯可靠性的假设,延迟假设,消息记录的假设,不同情况下会得出完全不同的共识机制。最轻的假设是问题节点只有一种报错,就是失联,如果联通,消息内容便是可靠的。那只要在网络层维护一个节点通讯录,略过超时无响应的节点,其余在线节点可以非常容易的达成数据一致。这就是中心化系统里最常见的分布式架构,解决的问题也仅限在节点宕机和部分网络崩溃的情况。假设稍微放开一点,节点间存在假消息,而且节点间的广播同步不做历史记录。你会发现慢慢的,诬陷的温床开始滋生。发送者C可以对A,B两个节点发送两个版本的消息。AB收到以后彼此广播同步会发现矛盾,A会觉得B是叛徒,而B觉得A是叛徒。因为C的两面派行为没有证据记录,这就造成了完美犯罪。现在有些共识机制的设计者希望通过严厉的惩罚来剔除作恶者,但在上述场景里,要追溯问题源头或定位恶意节点都是不可能的,严厉的惩罚是风险很高的。

拜占庭的故事构造的如此成功,区块链开发者无人不知。Lamport尝到了甜头,后来在《The Part-time Parliament》的论文中又讲了一个虚构的故事。这个故事发生在古希腊一个名叫Paxos的岛屿,作者将分布式一致性的问题比喻为岛上的立法机构如何对一项决议达成一致的问题。本来觉得用故事加以描述更易理解,但其结果完全相反,这篇文章的评审根本不吃这一套。当时的理论过于复杂,几乎没有人看懂,被埋没了多年,原文1998年才得以发表。后来Lamport又重新“正儿八经”地写了一篇《Paxos Made Simple》,似乎要做个简化版来照顾大家的智商。但这个题目和摘要真的害死人:

Abstract:
The Paxos algorithm, when presented in plain English, is very simple

论文的标题和摘要都说的很清楚了,简单啊!但作者其实十分恶意的讽刺了所有读者。我们引用另一篇文章中关于Paxos算法的描述,摘自USENIX ATC 2013的Best paper《In Search of an Understandable Consensus Algorithm》,大致含义说:Paxos真的太难懂了,很少有人不付出极大努力就能完全理解。在另一个高水平会议NSDI上,不少人对Paxos感到不爽。连点评者自己都和它做了很久的斗争,所以他这篇文章取名为“寻找一种易懂的一致性算法”...意思是还在寻找中,根本不像Lamport说的那么简单。后人无不感到Lamport深深的恶意,我们且来看看这个Paxos岛上到底发生了什么:

公元 10 世纪初,爱琴海上的小岛Paxos是一个兴盛的商业贸易中心。经济发展带来了政治的进步,Paxos 的公民们用议会形式的政府取代了原先的神权统治。议会的主要作用在于确定律法以保证城市可以有序稳定运转。所有律法都必须经由议会成员投票表决后方可生效实施,且已通过的律法必须被记录在案。但是对 Paxos人来说,做生意才是头等大事,城市职责反在其次,没有人愿意把他全部的时间投入到议会事务中。所以 Paxos 的议会必须在每个议员都可能随时缺席的情况下也能工作下去,这就是所谓的“兼职议会”。

一个现代的议会可以雇佣秘书来记录它的每一次活动和决议,但是在Paxos,没有一个人愿意始终呆在议会大厅里作为一个秘书从头到尾参与所有会议。取而代之的是每一个议员都会维护一个律簿,用来记录一系列已通过的法令,每个法令带有一个唯一编号。比如法令115要求工人按照15%费率缴个人所得税,法令135要求买东西也要交5%消费税...等等。如何保证议员手里的法令是最新的,又如何保证各个兼职议员手里的法令不冲突?了解比特币的朋友会觉得这个问题特别熟悉,没错,拜占庭和Paxos的故事都和区块链有关系,但分布式账本的概念其实和Paxos议会律簿更加接近。要完整解决去中心化的问题,不但要解决恶意节点,还需要能够运行在一个非常不稳定的兼职议会上。中本村结合前人的积累,创新的加入了“议会激励机制”,完成最后一脚。这种方法里的数学是如此“简单”,我们就不在这里赘述了,后面会继续通过一些小故事让大家理解。其实除了区块链,BFT容错还是很多航空航天信息系统的设计原则,是真正的火箭科技(Rocket Science)。

去中心化的进击

我们自己发明的“透明保险箱签名记账余额开放协议”,已经完全可以应用在现有的交易系统里,即使这个系统是中心化的也没问题。因为我们在开头已经说了,区块链只是用于修复社会性缺陷。以银行会计为例,据统计有27.5%的会计从业者都曾在系统中录入错误的数据。只要在交易和授权这一层用上区块链的加密协议,再加上一个三方见证,就可以修复这种人为因素导致的社会交易缺陷。另外从经济学角度讲,银行和国家的政策也是博弈平衡的结果,在大经济环境的约束下,银行对个人有意作恶的投入产出太低,也就失去了作恶动机。所以最早的区块链金融应用比如Ripple,被很多人批评过于中心化,是一种误解。但不可否认区块链确实蕴含着更大的野心,这个野心不是改造银行交易业务那么简单。在全球化的视角里,中心化最大的风险是超越国家的系统性风险,也就是国家遭受重大打击,金融体系崩溃,记账系统瘫痪,交易无法进行。面对这种情况,简单的分布式,多机房可以解决硬件问题,但是仍然解决不好人的问题。所以区块链索性彻底放开账户管理的权限,所有人都可以参与见证。这些见证者是超越国界的,但却被赋予了非常土的名字:矿工。银行业的区块链项目,没有甘于做矿工的,都想打造自己的平台。但银行不可能推出真正去中心化的产品,因为他们是旧体系的受益者,这是经济规律决定的。所以去中心化的进击主力,将会是另外一群人。

比特岛矿工事件

去中心化可以理解为对于人类社会缺陷的更深层修复,我们还是以比特岛为例来推演和放大这种缺陷。今天“比特岛”上发生了大事件,有一种恶意病毒肆意的传播。感染的人会记忆模糊,分不清敌友。他们疯疯癫癫,时而胡说八道,时而思维清晰,导致整个岛上没有一个人是可信的,包括阿稳和阿北。这时能够依赖的只有科学,所以钥匙和锁,以及数字签名都还正常工作。感染了病毒的阿北,开始胡乱记账:

2018年5月1日 17:30:00 阿稳支付给阿北1元,阿稳账户余额-3,阿北账户余额为3 ;
2018年5月2日 13:50:00 阿北支付给阿稳1元,阿稳账户余额-2,阿北账户余额为2 ;
2018年5月3日 11:35:00 阿北支付给阿稳1元,阿稳账户余额-2,阿北账户余额为2 ;

阿稳拿到账本简单计算就可以发现第三条支付之后的余额没有按规则变化,而如果自己擅自修改的话,阿北也可能不认账。所以阿稳打算把验证账本的权利,交给岛上剩下的意识清醒的人,以防阿稳自己哪天也感染了病毒。但是哪些人是清醒的?阿稳设计了一个小测验,做加减法。“透明的带锁带签名账本”被无限复制,分发给岛上所有的原住民,盒子上有100道题的算术小测验,原住民独立算完之后,跑到岛的中间比对答案。答案一致,且最快计算出来的,可以给自己的账户增加1元钱。这笔交易最后由帮他验证答案的其他原住民一起签名,达成共识。那些意识模糊,或者恶意捣乱的,因为测验答案不通过,所以被排除在账本见证权限之外。留下那批意识清醒的原住民在无需打开盒子的情况下检查这个“透明的带锁带签名账本”的合法性并投票。这些原住民就是矿工,获得的记账奖励就是挖矿,交易的投票验证就是共识机制。之前阿北胡乱记账的内容就因为不合法而被抛弃,仍然以上一周期的账本为准。比特币利用更巧妙的一种小测验形式,保证小测验的答案和账本的内容耦合在一起,当原住民算完小测验之后,他验证的那个正确账本也被锁定,无法篡改。感兴趣的朋友可以去阅读比特币的白皮书或者代码文档,到此为止,我们的加强版记账协议就和比特币一样做到了广义上的公开透明不可篡改。

原住民通过帮助阿稳和阿北记账,自己也积累了一些“小金库”。那些记忆模糊的原住民显然无法撼动这个系统,但是意识清楚的原住民中,也分裂出了恶意分子。因为每一笔记账经过钥匙和签名的双重保障,所以要篡改别人的账本内容是不可能的。而如果只是捣乱干扰验证,也并没有任何经济收益。但某一天这些恶意分子发明了一种重复消费(double spending)的诡计。邪恶原住民转账1元钱给友善原住民买一个香蕉,转账记录签名锁好交到岛中央进行验证。友善原住民看到记录后把香蕉交给了邪恶原住民。谁知邪恶原住民同时发起了另外一个转账,将同样的1元钱(尚未支付给友善原住民时的账本状态)转给自己,用自己的签名和锁锁上。这时在岛的中央出现了相互冲突的两个记账版本,这一元钱有的说支付给了友善原住民,有的说还留在邪恶原住民那里。见证者分为了两派,也都分别完成了自己的小测验。但是有效账本只能有一个,这时投票是唯一的方式。只要邪恶原住民相互串通好,超过50%的投票比例,就可以把白的说成黑的,完成这种“重复消费”攻击。比特币协议也存在这个风险,如果矿工严格按照现在的代码执行,那么哪怕发现了冲突的账本,也只能认可那个票数多的版本。

真理的意外流行

有没有办法避免这种攻击?我们虽然无法改变恶意矿工,但是至少我们可以隔离他们,产生分叉,将善良矿工保留在一个社群里持续运作。这里我们要介绍一种创新的意外流行算法(surprisingly popular),很多时候真理真的掌握在少数人手里。比如我们在街头调研,澳大利亚的首都在哪里,相信大多数人第一反应会是“悉尼”。但是我们现在多问一个问题:你认为别人的答案会是什么。就是这么一个小小的改变,带来了意外的效果。大部分人会认为自己的答案和别人的答案都是悉尼,而真正的内行人知道澳大利亚的首都其实是堪培拉,而且一般人会误以为是悉尼。还有一部分一知半解的,可能会觉得墨尔本是正确答案。通过两道问题的统计,只要有足够多内行存在,我们就会发现堪培拉会是那个“意外流行”的答案,也就是自己回答堪培拉的比例,要显著高于“以为别人会回答”堪培拉的比例。内行越多,这个意外流行的程度的就越大。只要10%的专家存在,就有足够把握获得正确的答案。

将这个算法应用到比特币协议中,矿工除了验证正确的那本账本以外,还需要留意异常的节点变化。进行”重复消费攻击“时需要在一段时间内将51%算力隐藏,在攻击者释放这部分攻击算力的时候,是有迹可循的。一种攻击方式是,平时对外同步正确的账本,攻击时突然拿出另外一个版本的账本。那么善良节点通过观察该异常节点前后账本间的矛盾就可以预判恶意攻击。另一种攻击方式是平时只维护那个攻击账本,不与外界同步,在攻击时直接释放攻击账本。那么善良节点对于历史不明的新节点要隔离同步,并行保存自己验证的版本,和那些新节点意外流行的冲突版本。最后在善良节点一致识别出攻击节点后,可以进行隔离分叉。这是一个全新的比特币升级协议,目前还没有人实现过,但可以预见的是,这将对系统产生更多额外的开销。

到底去中心化要到什么程度?对风险的防范是否要做到极致?目前比特币交易速度慢,成本高已经是其最为诟病的问题,这就是完全去中心化的代价。一个简单的交易,要动用这么多见证者,还要做那些无意义的算术题。过度的去中心化和风险预防显然会导致效率低下,资源浪费。一个人出门要带伞预防下雨,要带厚外套预防降温,要带现金随时消费,要带医疗包预防受伤,要带户口本预防突然警察查岗......那这样的生活就失去了意义。为了解决比特币这种负面作用,大量的升级协议,比如持币者权重(Proof of stake),委托权益共识(DPOS)等等,试图用更低的成本来达到群体的信任。他们的可信度是否服从经济规律,是否经得起人性的考验?我们拭目以待。

用户社群的变化

在区块链的去中心化时代,每个人,每个个体的身份也面临着转变,他们的组织形式面临重组。想象如果是一个中心化的组织,去攻击现在的货币和银行体系,那么国家机构能够非常方便的找到带头人,并予以控制,这个组织不攻自破。而去中心化的区块链,在安全情况下可以使用半中心化的共识机制(DPOS)来提升效率,而面临外部威胁的时候,又可以迅速转变到完全去中心化(POW)模式以自我保护。国家在调查这种区块链组织时,会发现每一个人都是全节点。就好像收集签名时大家围着一把雨伞循环签名,首尾相接,找不到谁是第一个,谁是最后一个。也正是这种组织形式,即使内部有人作乱,也很难真正影响到总体。

矿工是保障去中心化的核心

回到区块链的去中心化特性,其实是由矿工实现的。虽然区块链的发展经历了很多技术的升级和优化,比如密码学的改进,共识机制的改进等等。但不论技术如何改变,不变的是矿工。假设我们发明了100种新的共识算法,那最成功的不一定是技术最好最安全的那个,而是矿工支持最多的那一个。因为区块链项目代码必须开源,所以新技术相对容易学习,而要改变矿工社区背后的人,反而会遇到很大的惯性阻碍。这就是为什么在比特币和以太坊这些主流数字币之外,大部分新公链的市值都不高,不论有多少创新的技术。矿工算力,以及投资资金这些有限资源被头部公链吸收殆尽,市场流动性堪忧。同时这些创新技术正在逐渐被以太坊的开发者社区吸纳,在强大的矿工群支持下,技术的决定性在降低。

不过矿工群也不完全理性,比特岛上的原住民内部会形成小社会。有认知差异的地方,就有等级阶级。管理底层原住民无外乎让其忙碌,无暇思考,满足其基本需求,给他一点希望但不要太多。再进一步用情亲的羁绊,家族的传承,社会的责任给其洗脑。这样矿工自然集结成群,形成矿池。而利益开始流动,信息开始受到约束,媒体被挟持。这时博弈的平衡会走向两个方向,信息的进一步集中,或者思想的独立打破信息的垄断。这为之后矿工社区和数字币的利益冲突埋下了伏笔。

比特币在2017年曾经历过巨大的冲击,但是他挺过来了,正是因为社区的信心为比特币的价值提供了最佳的保证。当时的冲击就是网络分叉,好比善良的原住民和邪恶原住民在规则设计上产生分歧,要分道扬镳。唯一的差别是,这里并不区分善恶,只是选择的不同。这个分叉的目的是要解决比特币交易缓慢的老问题。经过开发者社区和矿工代表的磋商、妥协,最后分为两个阶段:第一次分叉是比特币核心开发者社区提出的,在不改变底层协议基础上,创建上层共享账簿 lightning network 。交易双方在主链一次性提取共同基金,就可以在私有通道里多次交易,方便快捷。而第二次分叉是比特大陆等矿工代表基于"New York Agreement"发起的SegWit2x。主要目的是将区块大小从1M扩容到 2M,这样全网账簿的体积也会扩大,门槛会提高,影响区块链的去中心化程度。对照下面比特币价格图表我们可以看到,第一次分叉提升区块链交易能力,带来了小幅升值。而第二次分叉因为太多的经济利益和政治思维,忽视中小玩家导致了最终分叉失败。这反而证明了比特币去中心化不可篡改的能力,矿工社区取得了最终胜利,也带来比特币价格的飞跃。
image

比特大陆推进的Segwit2x虽然失败了,但其强行进行了分叉产生出新的币种Bitcoin Cash (BCH)。虽然新币完全兼容比特币,在478558区块的比特币持有者可以等值映射到BCH网络里,但仅由少数矿工支持的新链,面临中心化的质疑。矿工参与去中心化的建设,并不是公益,而是以数字货币为激励。为了维护利益,吸引更多参与者,比特大陆利用其持币规模和市场影响力,直接将BCH推上交易所获得流动性。虽然币值经过几个月的攀升,最终还是回到发行价附近,但基础流动性还在,留住了矿工,这条链就存活下来。同期有很多相似的操作,产生了很多侧链,令矿工和投资者眼花缭乱。在区块链和实体经济还没有建立强有力的连接前,基于交易所的信仰交易,是把去中心化事业代代相传的纽带。最终如何定义数字货币的价值非常复杂,答案也随时间在不断演变,我们稍后会有完整的章节来讨论。这里BCH的案例充分展示了,矿工是去中心化的保证,而交易所带来的流动性是吸引矿工的关键

未来矿工的门槛会大大降低,去中心化的交易所会大量涌现。在这一轮行情之后,大量的普通百姓,开始把自己的资产转移到这个基于数学和经济原理的去中心化网络之中。为了保证全流程的安全,比特币地址的私钥(保险箱的钥匙)和签名都需要妥善的保管。但因为数字秘钥是一长串无规律的数字字母组合(32字节),人类记忆又是如此不可靠,就催生了数字钱包这个产品。最安全的是使用桌面版的离线开源钱包,并将长串秘钥写在纸上保存。在需要交易的时候,先断开网络,填入收款信息和秘钥进行签名。然后重新联网,将交易信息和签名结果同步到区块链网络,完成验证。但这样显然非常麻烦,完成一次交易可能需要10分钟的手工操作。便捷一些的是联网钱包客户端,可以是桌面或者手机版的。把秘钥保存在本地的某个文件内,这样在交易时只要复制粘贴即可。在客户端不被病毒攻击的情况下,是安全的。最方便快捷但也最不安全的就是交易市场,在交易市场你只要用邮箱注册一个自己的账户,输入较短的日常密码就可以交易。但背后真正关键的区块链地址私钥,是保存在交易市场服务器上的。一方面面临交易所主动的作恶风险,另一方面也面临交易所被黑客攻击的风险。

诉诸利益,而非诉诸理性

我们现在从未来往前回顾,似乎一切都顺理成章。但其实在2017年以前,比特币的价格一直不温不火,愿意接受其支付的商铺都是用信仰在交易。2010年Laszlo Hanyecz成为了世上第一个用比特币买东西的人,他买了个披萨,花了10000枚比特币。当天是5月22日,从那以后这一天被庆祝为比特币披萨节。在推特上,每天都有人根据当天的市值推算10000个比特币的价值,如今这笔交易价值上亿人民币。所以本杰明.富兰克林说:“如果你想要说服别人,要诉诸利益,而非理性”。早期被说服的,是各种法外交易。

2017年5月12日WannaCry勒索病毒通过MS17-010漏洞在全球范围大爆发,距离披萨节仅仅10天。病毒要求受害者支付价值数百美元的比特币到攻击者的比特币钱包,且赎金金额还会随着时间的推移而增加。于此同时segwit的激烈争论,一起推动比特币价格连续1个月上涨,从$1700涨到了近$3000。在此之前,比特币真正的转折发生在2013年。当时还没有以太坊,很难自己发币,比特币是所有的焦点。比特币基金会和联邦在当年8月进行了第一次多边会议,普遍观点认为比特币是罪犯用的,因为比特币正是当时最大的非法交易网站silk road的主流货币。因为需求量大,为了承载那些非法交易,当时比特币价格已在几百美元间徘徊。好消息是,监管部门还没有完全理解比特币,所以暂时没有提出监管要求。但是10月突如其来的噩耗,美国司法部门逮捕了Ross Ulbricht,关闭了他创建的丝绸之路网站,并将缴获的144,336枚比特币在2013年底以均价$334抛售。这本是灭顶之灾,但因为高流通量以及涨了一轮的价格,使这种货币获得了一般技术社区的普遍支持。奇迹般的,比特币坚持了下来,币值也稳定在数百美元。有人专门整理收集了那个时期的几个重大事件,可以说比特币的成长,充满了意外,是整个社区努力的结果,几百美元的价格坚持到了2017年的牛市。从2017年2月头开始,币值就冲到了$1000以上,并一发不可收拾。

比特币的原理没有变,变化的是看得见的利益。8年前买披萨的那个程序员,今年2月25日又买了两个披萨,这次支付了649000 聪,或0.00649比特币,这两块披萨的价格约为62美元。而且交易通过闪电网络完成,一种更“便宜快捷”的支付方式。你看,程序员推广新功能的时候,还是习惯了诉诸理性。那个披萨节早就被人遗忘啦,我们应该换一种角度诠释这个新闻:比特币闪电网络启用,交易成本大大降低,快速渗透到更多支付场景里,准备迎来比特币的新一轮涨幅吧!

随着利益的驱使,为了保护自己的财产,用户是不遗余力的。有人用指纹,声纹,虹膜,面部特征等作为密码,在支付时先清醒的对镜头说出某些短语,然后用指纹验证密码,最后完成交易签名。Winklevoss也单独设计了管理自己钱包秘钥的系统和设备,最后催生出Gemini安全交易平台。但不论怎么设计,这些工具都需要经过实地验证,再传播和使用。后续可能还会有工具的升级,账户、平台的转换等等。为了确保这些中间步骤的安全,我们始终要加强自身的认知理解力。比如遇到IOTA这类使用一次性签名的区块链项目,在搞清楚每次支付以后账户地址不能复用这种操作细节之前,千万不要轻易尝试。

追逐利益的乱象

但历史也不断告诫我们,被捧起来的利益是不稳定的。2017年9月4日中国禁止ICO的监管政策颁布,市场短暂的下跌,又迅速回稳。大量交易所移至海外,因为互联网的流动成本相对较低,所以市场消化很快。而相比之下2018年1月3日流传出来“央行在内部会议中决定查封一切比特矿场”的消息,则直接把市场腰斩。矿工是基于物理设备挖矿的,依赖芯片和电力供应,所以流动性较弱。面临不确定时,大量的套现抛售使比特币跌至7000$左右,奠定了2018年的基线。但这则消息后来证实是谣传,假消息似乎比以前的真消息作用更大,调控者没出手,咋呼一下市场就倒塌,可见区块链基于“利益”的说服力有多脆弱。投机者的套现退出虽然套牢了晚期的进入者,但是刺破泡沫后7000$的价值基线比以往更加坚固。

事后回顾,这次回调可以说是必然,因为当时的币值炒作,几乎都是黑市手段:玩分叉币,暗箱私募,庄家炒作。这样的市场怎么可能长久?本来“分叉”是区块链正常的升级过程,但在利益驱使下,变成了骗钱的工具。比如SBTC(超级比特币)就自称和比特币1:1分叉,在没有任何实际意义的情况下,玩概念圈钱。目前已经半死不活,全靠庄家自己炒冷饭,难怪有人戏称其为“SB套餐”。类似的套路以太坊上也在进行,无意义的分叉EMO(以太修)与ETF(以太雾)为了竞争谁是以太坊“太子”甚至多次擅自修改计划,抢先分叉。这样的太子怕是假的吧,目前看他们都清零了。但这都不妨碍分叉币及首次分叉(IFO)在当时迅速泛滥。典型的分叉币操作是:通过宣布分叉币,为每个用户按1:1的比例赠送新分叉币“糖果”。在用户普遍获得新币之后,自然会产生交易需求,这时可以引导舆论,以庞大的用户数量和交易需求倒逼交易所上币。而上币之后,分叉币持有者先用一定的资本拉高分叉币,营造出追捧假象,再将自己“预挖”的分叉币卖出套利。

如果说分叉币操作过程还算公开透明的话,那么私募代投就是完全暗箱操作,骗你没商量。当时监管收紧,ICO转到海外,国内投资者被迫进入地下。ICO项目发布者利用微信群、QQ群宣布私募,份额由群中成员进行瓜分,完全没有实名要求。当份额超出群中个人资金量时,个人再转向其他群二级私募,层层加价分发。这些发布私募信息的QQ群、微信群充分利用了信息不对称和人性对稀缺性的追捧来营造高门槛,部分“大佬”加入的微信私募群入群报价高达数百以太币。你看中的是买到币以后的升值空间,别人看中的却是你手里的本金。后来甚至出现了钓鱼陷阱“假私募群”,用户加入一个特殊的私募群,所有微信“投资者”都是假的,专门吸引投资者上钩。这类套路不但在币圈,在微商圈也同样盛行。花钱加入一个号称能赚钱的微信群,就好像买票支持一场成功学“大师”的讲座,对于渴望知识的边缘青年,有无穷的诱惑力。

这些乱象背后,都是人民面对恐慌和信息不对称时的非理性群体行为。政策越是打压,黑市越昌盛,形成政策监管的怪圈。唯有合理的规范和疏通,才能回归理性。证券市场百年来的经验自有其道理,加强注册认证,监管内部交易,打击庄家炒作,这样才能保护一般投资者,营造健康的投资环境。虽然不能赚快钱了,但希望能赚的持久。理性的说服力虽然缓慢,但是可靠。到此为止,我们通过一层层的推理,越过山头,逃过陷阱,走过了和比特币创建者一样的道路。一路上有对现有比特币的认同,也有对完全去中心化的批判;有对利益的渴望,也有回归理性的安稳;还提出了对比特币防御体系的改进算法,但这仍然不是区块链的终点。就像最初定义的,区块链是为修复人类社会性缺陷而存在的。我们后面还要继续叩问更加深刻的问题,发现更加隐蔽的社会性缺陷,并设计和重构区块链的未来。

为什么需要货币

区块链修复了交易信任问题,但比特岛上的交易似乎和我们日常的交易很不一样。在整个区块链设计过程中,核心的账本实际上替代了所谓的货币。就好像在移动支付如此便捷的今天,我们口袋里的纸币越来越少了。所有的交易也不过是数字的加加减减,那货币真的是必须的吗?在回答这个庞大的问题之前,我们先问一个更加具体的问题,我的货币余额可以小于零吗?

余额为负的账本

我们回到科学的范畴里寻找答案。世界上有火,也有水;有阳极,也有阴极;有正面,就有反面。而在金融的范畴里,我们有债务,也有债权。如果取债务平衡的起点为零点,那么债务可以用负数表示,而债权就是正数。数学的完美对称,使我们完全可以将金融体系纯数字化。不论债务还是债权都可以计算利息,因为债务为负,所以利息也为负要支付给债权人。债权人的利息为正,就是收取债务人支付的利息,最后两者平衡,求和为零。一般性债务不可怕,因为你可能同时也是别人的债权人。所以看上去在金融和会计的眼里,账户余额是完全可以为负数的。

但数学中负数的发明和会计学都是后来才有的,人类最初的贸易里,使用的是实物记账。比如比特岛上曾经也用过的贝壳,还有后来的黄金,白银等等。描述这种实物数量的数字,叫做自然数。因为物质不能为负,所以自然数里没有负数。比特币不假思索的继承了这种自然数的特性,但现在我们重构区块链,设计一种账本余额可以为负的“比特非平衡账本”。

在比特非平衡账本初始化的时候,任何人的账户余额都为0。支付交易时,支付方余额递减,收款方余额增加,系统总和仍然为零。这相当于一个熟人的赊账平台,只要双方没有异议,任何一方都可以存在负余额。负数账户向其他账户支付时,看似收款账户的余额增加了,没有拒绝的理由,但实际上每次支付背后都存在等价的物权或者服务转移。如果收款方无节制接受负账户的支付,兑换物品,那很可能面临事后自己的账户正余额无法消费的问题。因为负账户的债务人在消耗了赊来的物资和服务之后,变得懒惰,不愿意提供其欠款的等值服务。最后某一方负数太大时,债权人只能要求强制平仓,对方没钱就替其劳动还债,或者卖身。

当交易人数增多时,情况会变得有点复杂。有些人相信这个债务人,愿意接受其负账户的付款,而另外一些人不相信他,就不接受其付款。这背后代表的是这个人的信用,这里就完全和现实世界的金融体系对接了。每个人出生的时候,是没有信用的,也就没有钱,不能买东西。但是他们的父母为社会创造了价值,余额为正,可以将余额转移给这个新生儿,帮助其成长。新生儿长大,毕业以后,父母的资助也停止了,这个人的账户重新清零。他需要工作先积累自己的账户余额,然后去消费自己喜欢的东西。当然也有人贷款买房或者融资创业,前提是别人能接受他的负账户支付来兑换实物资产或者创业资源。但这里有个漏洞,我接受了负账户的付款,我再用这个款项支付给别人来兑换物资,我就不吃亏了,相当于债务的转移。这个问题在于负账户的流动性,负账户的付款不是通用现金,而是债务的证券化,简称债券。理论上收取了负账户的付款,只能反过来再支付到负账户身上。看上去金额不变,但是因为负账户所有者的生产力或者偿还能力有限,所以这个债务债券,是会贬值的。

为了解决负账户付款的流动性问题,我们引入债券的定价功能。首先这个定价权不能由债务人和债权人来行使,因为他们是利益相关方,会虚高定价。那在区块链里面,最合适的就是由矿工来定价了。每个矿工可以设置其能接受的某个负账户债券的折扣率,比如一个信用一般的人,他支付10元债券,其实只能当7元通用现金来使用,折扣率70%。足够多的矿工接受该负账户的债券后,交易被验证,从负账户里扣除10元,而收款账户获得7元。参与验证的矿工可以分得10% 0.7元手续费。约束矿工定价权力的是经济原理,因为他通过越多的负账户付款,区块链就会通货膨胀,他手里的挖矿收益就会递减。但如果他不通过任何负账户付款,而有其他矿工通过的话,他就拿不到收益。与矿工博弈的是负账户,也就是债务人,他们发起拍卖交易,只有折扣率满足他的底线,而且足够多的矿工同意,交易才能成功。在矿工和卖方讨价还价的博弈下达到区块链的流动性管理。交易结果对收款方是无差的,因为他就是收到了7元钱,给7元钱的货。这套体系和比特币兼容,因为比特币可以看做是一个特例:就是所有矿工设置负账户折扣率0%,那么所有账户如果支付超过其余额的金额,超过部分都会被清零,也就是余额不能为负。

现实世界的现金,信用,债权,债务已经完全兼容进这个“比特非平衡账本体系”。这里的矿工从简单的算术劳作,升级为金融矿工,赚取债券的手续费。系统还可以再加入债券利息,以鼓励更多的矿工参与,并通过调整利率来调整区块链的“货币”流通。当然为了维持区块链的信用,这套利率调整规则也需要按照去中心化的方式去设计。最后我们发现绕了一圈,终于拜托了负账户的约束,但是似乎“货币”这个概念,还是摆脱不掉。因为开放的正负账本体系没有平仓的要求,但是一定有坏账的风险。通过“货币”这种通货的总量控制,可以在无需强制平仓的前提下,保持总体风险可控。可见**“货币”本身就是修复人类社会性缺陷的一种设计,区块链要利用这种设计**,而不是盲目的去改变他。

货币和财富

账户余额的正负,除了对应债务和债权,还可以和财富的积累对应。过去积累的财富为正,未来的财富提前使用为负。货币作为财富的记账形式,也只能接纳有限时间的提前预支,以控制不确定性。现实生活中如此复杂的财富形式,以统一的形式表述,也是货币的价值之一。反过来看,可以用货币衡量的,都是财富:股权、品牌,固定资产,预期收益,版权等等。区块链的信任机制使其能够承载交易,而区块链的稳定通货体系,即使在负账本协议内,也可以完全达到货币的财富储备功能。比特币虽然简单粗暴的约定其发币总量为2100万枚,但也基本具备了财富储备的能力。财富是虚拟的,但也是内在统一的。而货币经过了长久的变化,在不断升级。

货币等价物历史上出现过很多,比如比特岛上用的贝壳,但是后来发现发币量不稳定。后来地球储量最为稳定的黄金和白银成为了最佳的货币等价物。但同样稀有的钻石为什么没有成为货币等价物?因为通俗的等价物要满足以下条件:

  • 发行量稳定可预估并且难以人为改变
  • 首次发现时的等价物分布与财富分布接近
  • 等价物质地稳定,不随时间损耗
  • 等价物难以人为合成或改造

钻石满足以上第一点和第三点,但碳基的钻石是可以人为合成的,无法满足第四点。即使我们有技术区分人造钻石和天然钻石,并设计定价标准,弥补了第四点也无济于事。最大的难关还是第二点,新发货币分布要和财富分布接近。远古时代流通范围小的时候,不论货币最初如何分布,最终都会在部落斗争的过程里达到货币、财富、强权的平衡同分布。后来的城邦文明时期,财富被统治者掌控和分配,所以货币选型是反过来由财富分布决定的。统治者收集金银,并以金银为基础发型货币。帝国争斗时期,金银已经是世界通用的货币标准,所以强权直接掠夺金银和土地,并不需要设计新的货币体系。直到第二次世界大战末期,全球在新的权力平衡下,再粗暴的金银掠夺就显得有些过时。而且连年战争,各国过度兑换黄金造成挤兑困难,导致金本位制度崩溃。所以当时44个国家的代表在美国新罕布什尔州“布雷顿森林公园”召开联合国和盟国货币金融会议,商讨新的货币体系以匹配现在的权力和财富分布。他们达成的以黄金为基础,各国推出固定汇率货币以便流通的体系,就是布雷顿森林体系(Bretton Woods system)。该体系在黄金的基础上,还算尊重历史的财富分配。直到各国完成战后恢复,开始寻求新一轮发展和财富争夺的时候,黄金的初始分布已经成为障碍。美国强权的崛起,使其抛弃了美元和黄金的挂钩。在美国贸易盈余,马歇尔援助计划(Marshall plan),石油美元等手段的推进下,美元成为了实际意义的国际货币。而美国黄金储备也拒绝向外界开放,布雷顿森林体系名负实亡。直到1976年,国际社会才象征性的通过了牙买加协定。国际货币的浮动汇率,实际上形成了货币、财富、强权的动态平衡。21世纪中国的崛起也首先反应在汇率市场,和黄金等传统货币无关了。

基于财富、资源和强权之上的货币,是随着时代变化的。每一次货币权利的更替,都会带来或多或少的财富重新分配。而分配过程庞大而复杂,无法保证完美的财富公平。所以每一次都是“货币战争”,以前是真的战争,现在是金融战争。基于现代货币体系的现代金融体系,已经相互耦合在一起。随着借贷的发生,债务和债权的债券化,创新金融资产大量流通。他和货币的交易转换主要基于流通性和价值计算,而杠杆的加入加剧了兑换的风险。如果对全球金融资产强制平仓的话,其规模已经超越了流通货币的承载能力。这就是为什么会爆发美国债务危机,以及触及国债上限的原因。货币是财富的表现形式,但债务不是。我们在允许账户余额为负的“比特非平衡账本”体系里已经验证,需要矿工对债务债券的约束,才能维持整个系统的财富价值稳定。而以美国为首的脱离管控的债务体系,正是区块链需要修复的人类社会性缺陷之一。

理解比特币

回到比特币本身,我们暂时抛开那些潜在的货币优化,维持现在比特币的版本,定义交易时验证支付账户不能为负,并将交易单位从最大的比特币到最小的“聪”限制在整数范围。比特币对标现在自然货币规则,并不是要直接替代它,而是提供一个渐进式财富转移认证通道。现在主权国家的货币权和金融权是封闭的,导致财富固化。虽然美国允许个人发币,但小玩家无法获得足够多的支付支持,而大玩家享受现有美元体系的财务积累不愿意改变。中国等国家更是严控金融系统,把发币和金融管控权限集中在党中央。可以大胆想象,如果开放这个门槛,那么Q币等大型公司都完全可以发行自己的货币系统,区块链不是必须的。所以这里比特币冲击的并不是货币本身,其实是封闭的权力系统,也是人类的社会性缺陷之一。这里又体现了经济规律,如果是公司发起这样的冲击,那带头人很容易被质疑,攻击而放弃。但是区块链就好像古代的循环签名,开放且普惠。政府无法确定所谓的带头人,面对大量的参与者法不责众,下不了狠手。这种无形的防御体系留给比特币这个项目一线存活的生机。虽然在很多国家禁止比特币和法币的兑换,但是一旦上链,比特币网络内的交易,还没有人能够阻止。

我们通过6个层次来深入理解比特币:

第一层,交易中间体。革命军要问军火商买枪械,银行转账容易被查,现金交易有危险,所以革命军先用美元买了100个比特币,然后到丝绸之路网站找军火商。军火交易的时候,将比特币转账给军火商,10分钟区块确认以后,军火商将枪械交给革命军。革命军拿到了货,军火商拿到了比特币,再去交易所里换成美元。虽然比特币每笔交易在区块链里都是公开的,但只记录了虚拟的钱包地址。军火商完全可以建100个小号,分批提现,让监管部门无从查证。这时比特币对美元的价格只要保持稳定,其币值高低对军火交易就没有影响。但尝到甜头以后,大量的非法交易,合法交易都跑到区块链上来,导致通货(比特币流通量)不足,也就带来比特币升值。如今1万美元一枚的比特币体系,能够承载的财富交易总量,是三年前100多美元时期的100倍。但纯粹的交易双方都只是短暂的持有这个交易中间体,所以并没有任何财富的变化。

第二层,交易中间商的投机品,通过囤货、哄抬物价来人为炒作。早期用比特币作为中间交易的商家,发现比特币有升值趋势,所以在卖掉货物,收到比特币支付的时候,不再提现,而是保存起来。比特币升值的越快,供给交易中间体的流通量反而会减少,对区块链体系是不利的。2017年底比特币价格剧烈波动以后,已经很少有人拿比特币做真正的日常交易了。交易所里大部分的买卖,都是投机者低买高卖,或者忍痛割肉的投机交易。之所以说是投机,因为在这一层面,还无法定义比特币的内在价值,所以不存在基于价值回归的投资逻辑,而只有投机。那些大玩家在仅有的流动性里面,可以非常容易的操纵市场,对于想要简单交易的商家非常不友好。索性剩下真正有商品交易需求的人,可以转向DAI靠抵押债务稳定或者USDT(Tether) 靠中央储备和美元挂钩的稳定数字货币。这类货币都会通过流动性干预来保证币值对美元的稳定。

第三层,赌场代币。假设某一天有人建造了一个只使用比特币的赌场游乐园。里面吃喝玩乐,五脏俱全。赌场越好玩,来玩的人越多,购买代币的兑换率就越高。成功的赌场经营者,可以从代币兑换过程中收到大量过桥资金。用这些资金,他们继续扩充赌场的设施,把赌场建成了一座城市。这个概念在Second Life这种虚拟现实游戏里也同样适用。但有一天大家觉得无聊要退币走人的时候,会导致挤兑风险,强制平仓是无法弥补每个人的损失的。那聪明的赌场经营者,应该在发生这种风险之前,在积累了足够的过桥资金之后,赶快携款走人。需要说明的是,这里的赌场不只是比特币本身的网络,而是以比特币为门户,所有可以和比特币快速兑换的数字货币组成的新经济体。对这个经济体未来前景的判断,是影响比特币价值评估差异的最根本变量。老派投资人比如巴菲特,因为不认同区块链经济体的总体价值,所以对比特币的认知还停留在第二层:投机品。而以矿工、开发者联盟为主体的赌场建设者,对赌场的价值深信不疑,暂时还没有携款潜逃的迹象,是他们撑起了现在比特币的市值。以比特币单价1万美元计算,全部发行完成,比特币会具有210 Billion$的市值。这从侧面代表了这些开发者和矿工共同创造的赌场经济体的价值。

第四层,开发商预售。看到赌场赚钱,很多人也想盖赌场,但是缺乏资金,所以先发行代币来众筹资金,就叫ICO。这个过程有大量信息不对称和违规操作,但这也是投资区块链的重要途径。好比投资圈的一级市场和二级市场,在一级市场进行风险投资,可以获得更高的回报,但是风险也大。ICO就是区块链项目的风险投资,更准确是天使投资。众所周知天使投资只有4%的成功率,要投过大量的项目,才能从中筛选出真正的好项目。所以没有足够的财力和精力,就不要玩ICO。这里的玩法和天使投资如出一辙,主要参考赌场设计图纸(白皮书,PPT),建筑工程队质量证书(团队能力),还有赌场老板不会跑路的信用担保(个人声誉)。一般个人投资者没有这个判断能力,所以更加适合等项目上线,赌场盖好有人进去玩过之后,再进行投资判断。

第五层,国际贸易和生产力。国家间的外汇贸易和一般交易稍有不同,国家货币由国家信用担保不会跑路。所以这个时候我们需要把第三层里的赌场,升级为一个虚拟的主权国家。同时把其他现实中的主权国家,也看做赌场游乐园。比如中国开了赌场自得其乐,赢钱容易。美国人看了都要来,就是美元兑换人民币。那人民币不愿意卖怎么办?美国忽悠说我这里有酷炫的可以上网的电话。所以喜欢用电话上网的人用人民币换给了喜欢赌钱的美元。一国的国力反映了货币的话语权,和发币量一起反映国家的市值。而国力是指管辖范围内的综合生产力。比特币这个赌场如果只是交易中间商,那国力非常薄弱。就像巴拿马,虽然有个非常重要的运河,但是国民生产力落后,都是帮别人赚钱。比特币需要从交易平台扩展到以太坊这样的计算平台,最后通过计算的力量,来支撑区块链经济体的市值。如果没有这层支撑,所谓的比特币价值储存功能,都将是泡沫,财富会流向生产力支撑强的货币平台。2018年3月上线的第一个运行在以太坊的围棋游戏EthernalGo,算是一个微小的进步,但前面道路还很漫长。

第六层,财富分配。不论是建赌场还是建国,新发货币甚至新型资产都会带来财富重新分配。前面我们也论证了,货币,财富,强权最后是会统一在一起的。所以比特币的财富分配,逃不过现存世界的强权体系。首先持币量最多的个人玩家里,就有和Facebook创始人打官司的“富二代”投资兄弟Winklevoss twins。据说他们拥有比特币市值的1%。金融玩家也早已入场,老的财富积累在新分配里保有话语权。早期的很多矿工因为长时间的币值波动,没有坚持下来,被后来的玩家攫取了劳动成果。而个人小玩家因为对区块链的认知理解不同,也导致了分配的不同。不过现在比特币在很多国家不被认可,所以有效的财富转移有局限性。未来可能出现更多的区块链经济体,如何在货币,财富和强权间达到新的平衡?似乎天下所有致富的捷径都不能重复走第二遍。

深入理解比特币之后,环顾四周,已经有非常多的新数字货币加入流通。如果只是解决第一层的效率问题,而没有根本上优化货币和生产力体系的话,这些币都无法超过比特币现在的高度。而针对比特币,我们早前的章节已经至少提出两个大的升级建议了。从一个交易,转移财富的平台,升级到真正的货币,金融,经济生产平台,才是区块链真正要走的路。一路上我们会运用数学工具和经济规律,来优化人类的社会性缺陷。

区块链上的储物盒

如果说交易是一枚硬币,那货币只是硬币的一个面,另一个面是权利转移(物权,信息权等等)。为了完成这个转移的闭环,我们先设计一个非常简单的转移模型:区块链上的快递盒子。这个盒子事先编写好代码,一旦启动就不可更改。盒子和区块链有通信,可以监听区块链上的某些特定事件来做出应对。区块链也不是比特币这种交易链,而是以太坊这样的智能合约区块链。他除了代币叫做以太币ETH外,最大的特点是可以在区块链虚拟机上执行事先发布不可篡改的代码,简称智能合约。稍后我们会单独介绍这个计算的力量,现在我们先借用这个功能,同样通过前面军火交易的例子,来完成区块链经济体的一个闭环交易。

这天革命军要新进一批军火,他们找到了军火商,并把枪械的名称型号等标准化信息提供给了军火商。双方对100ETH的报价达成一致后,开始准备交易。军火商准备好枪械,放进区块链上的盒子里。这个盒子有两个地址,一个是关联的支付账户地址,还有一个是实物的存取地址。卖方发起一个智能合约,由区块链见证之后植入到这个带锁的盒子里,一直到交易结束前,都不能修改。合约内容如下:

Loop 统计支付到收款地址的每一个付款方的累计付款金额
If any(支付地址累计付款 >= 100 ETH) then 停止接收其他任何付款
   Try get(向满足条件的地址请求设置取货密码)
     If 设置成功 then 将付款转付到 军火商账户地址XXXXX and 退回其他账户的付款
     else if 等待时间超过1小时 then 退回该账户支付的金额,回到第一步从头开始统计
     else retry
Else If 卖方继续等待 then 刷新统计
Else If 卖方终止交易 then 退回所有支付款项到原账号 and 由卖方设置开锁密码取货

卖方设置完毕后把盒子的支付地址和取货地址都发给买方。买方和矿工见证协议无误后,给盒子通电。买方开始向盒子的支付地址打款。如合约设计的,付满100ETH之前,卖家可以随时取消交易。买家不可以单方面取消,但是买家可以和卖家协商。此时钱还没付完,钱和货都锁着不能用,卖家不会恶意阻挠买家的协商请求,因为卖家被锁住的货价值更高。如果此时付款地址泄露给了其他人,这个人也想买货,那公平交易,谁先交钱谁拿货,其他的钱原样退回。

买家没有犹豫,快速付完100ETH之后,收到了在1个小时内设置开锁密码的消息。这时卖家已经不能反悔了,买家设置密码123,完成物权转移。与此同时,盒子账户里的100ETH也如数转移到卖方的军火商账户地址,同步完成资金转移。这样一个区块链上的实物闭环交易就完成了,从此黑帮交易再也不用打打杀杀。但是等一等,黑帮片里经常还会发生另外一幕,就是买回去的货发现是次品,后悔莫及!这是现在很多人将区块链技术移植到线下场景最容易犯的错误,物权在上链前的那一刻,缺乏质检验证。这里因为交易的物品是枪械,我们可以在区块链盒子里预埋一个X光扫描仪,通过扫描枪械结构来判断其真假。但这种方式并不通用,而且不同物品的检查需求千差万别。所以真正要完成交易闭环,还需要一个区块链去中心化的质检服务。

我们把新的盒子改造成一个试验箱,通过封闭的手套可以进入箱子,操作和检查箱子里的物品,但是无法取走。然后像比特岛那样,随机邀请矿工来检查货品。只要诚实的矿工占主导,就可以确定箱子里的货品是否可靠。这种众筹式的实物检查模式,和区块链分布式交易合规检查的原理是一样的,但成本更高。所以再一次我们强调,去中心化不是区块链的目的,我们要在效率和信任间取得平衡。为了优化上述流程,达到真正可用,还需要非常多的工具,等准备充分以后,我们会在后面的章节回来重新解决这个难缠的问题。

什么是公平

小时候老师一直教育我们人人平等。但是每个人出生的时间,空间,继承的基因和财富是那么不同,怎么可能做到平等?前面说比特币深层含义是一次财富分配,从目前的结果看,优惠了一部分人,但是把更多的人排除在外。所以经济学有个段子说,如果从现在起,把世界上所有的财富平均分配。那么一周后,还是会有百万富翁诞生,会有人变成乞丐。所以公平不是绝对的,是相对而言的。既然区块链对信任的修复可以做到数学的精度,那么对公平的修复,也许做不到绝对,但是至少能提升。追求公平的终点,最后可能还会回到政治和经济学原理。

回顾中国漫长的文明进程,有句老话“没有功劳,也有苦劳”,这就把公平分成了两个方向。苦劳是你的付出,功劳是你的收获。大量非标和需要创造性的工作里,这两者难以匹配。但是随着工业革命的进程,工作流已经被大量标准化的分拆,在机器的世界里,有机会做到一致的公平。剩下那些非标的内容,我们可以设计一种交易市场,在货币的统一度量下,在多方的交易撮合下,也达到一致的公平。不论是绝对的机器公平,还是撮合下的市场公平,都被用到了不同的区块链项目里。这也是最近区块链发展最活跃的领域。公平就是在中心化和去中心化之间搭起效率的桥梁,公平、可信的半中心化,是通往安全高效的道路。

工作量的公平 POW

这里绝对的公平就是比特币最早的工作量公平(proof of work)。比特岛上原住民都要计算算术题以获得参与资格,这很像中国古代的科举制度。虽然有诸多诟病,但不可否认,在这个数十亿人口的国家,通过考试来分配工作和激励,是最公平的,但可能也是效率低下的。这个考试机制的设计有两个基本要求:

  1. 考试内容和工作能力要紧密相关
  2. 考试题目不能提前泄露,防止作弊

比特币的工作量证明,专门为此而设计。首先每一次的证明需要加载这段时间的所有交易账本作为一个区块(block),这些账本本身就是矿工们要验证的交易。然后我们在这个账本块后面加上一个小尾巴,使账本和小尾巴组成的字符串,经过哈希变换以后,头部出现足够多的0。这里每个账本块由全世界的交易组成,无法提前预知,而哈希变换是一个完全随机的过程,连续出现10个零,就好像丢10个筛子丢到10个6那么难。一旦账本块和这个小尾巴被验证之后,就会被所有的矿工验证。虽然找到这个小尾巴很那,但是验证起来很容易。被验证的块,一个个连起来就是区块链。如果有人改动了区块链账本里的任何一个字符,都会导致哈希结果错误。非对称加密和数字签名确保了交易双方的交易权限,而区块链工作证明保证了交易结果的正确可靠,两者配合确保区块链的不可篡改性。

规矩定下了,矿工就各显神通。很多人用计算能力更强的显卡来挖矿,还有矿工使用专门定制的ASIC(application-specific integrated circuit)芯片。这些都无可厚非,因为工作量的考试题,和验证账本的需求是耦合在一起的。矿挖的快,就是账本验证的快,理所应当获得更多的比特币奖励,这就是经典的按劳分配。但因为有些专用芯片挖矿效果特别好,占据了矿工收益的大头,招来了中心化过高的质疑。但既然是在规则范围内,质疑也站不住脚。反而那些质疑者的内心才是中心化的,因为他们在试图用规则外的方法维护其并不正当的利益诉求。芯片被制造出来,人人都可以购买使用,只要其生产没有侵害他人利益。

但围绕挖矿芯片的速度优化代码,还真有专利争议。AsicBoost在2018年发起了最具争议的

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 适合区块链开发者使用的10个工具

下一篇: hadoop3.x集群搭建

精华推荐