# 以太坊创始人之V 神

By [leaf](https://paragraph.com/@leaf-6) · 2022-11-19

---

*   有人看到了这种局限，他就是以太坊的创始人，V 神。
    
*   诞生期在研究比特币的过程中，V 神逐渐认识到，比特币背后的区块链技术不光可以用在加密货币中，还有更多可能性，但比特币的架构却阻碍了技术的发展，因此他希望能够扩展比特币的脚本功能，使其更加智能。如果直接在比特币上打补丁，其扩展能力也极为有限。因此，V 神将他的精力集中到如何创建一个替代比特币的解决方案中，不久就发表了以太坊白皮书
    

在白皮书中，V 神阐述了以太坊构架愿景：在加密货币的基础上，增加智能合约功能，这样开发者就可通过智能合约编程把一切有价值的客观 / 主观事物锚定到以太坊进行交易， 实现价值的传递。这也就是区块链发展的最终形态是价值网络这个论调的由来。智能合约到底是怎样发挥作用的呢，我接着前面房屋产权登记的例子解释一下。有了相关 部门的数字证明，业主就可以通过智能合约把房产证等信息转换成可交易的数字资产。当然这个过程是长期的，需要区块链在社会治理领域落地以后才可实施。

*   2015 年 7 月 30 日，以太坊主网正式启动，以太坊从此走上历史的舞台。以太坊的核心我们可以认为就是智能合约的加持。而智能合约是软件工程师基于以太坊协议，自主编写的程序代码。不过我们都清楚，天底下几乎不存在没有 BUG 的软件系统，且以太坊智能合约是开源的，任何人都可以随时随地查看部署在以太坊上的智能合约源码，这就给黑客钻漏洞留下了空子。
    
*   最著名的一次黑客攻击事件发生在 16 年 4 月，黑客将The DAO合约中锁定的价值约1.5 亿美元的以太币偷走约 6000 万美元，并立刻在交易所抛售，给整个加密货币市场造成 了不可挽回的损失。黑客事件发生以后，以太坊社区发生了激烈的讨论。一部分人主张将以太坊主网回滚至黑客攻击之前；而另一部分人崇尚无为而治，主张不应该依靠外力干预已被认可的既定事 实。可以说这是对区块链信仰的一次重大考验。然而，经过社区讨论，16 年 7 月 20 日进行以太坊硬分叉，将以太坊主网分裂成两个网络，ETH 以及 ETC。ETH 删除了黑客攻击的一切痕迹，并将被盗走的以太币归还给原始拥有者，现在我们所说的以太坊指的就是回滚的这一分支。而 ETC 则保留了黑客攻击在内的全部交易，以保持区块链赖以生存的去中心化以及不可篡改的基本原则。
    

区块链的认知与影响：从小众到大众 2008年末，中本聪（Satoshi Nakamoto）发表关于比特币的文章。2009年初，以区块链作为技术基础的比特币问世。那时，几乎没有人预见到，区块链、数字货币和数字经济的“星星之火”，仅仅经过十年光景，已经形成“燎原之势”。主要表现为以下的五大转变：

第一，完成从小众认知到大众参与的转变。比特币产生于极为小众的密码朋克圈；关于比特币的第一篇，也是唯一由比特币团队所写的文章，发表在一个专业性很强的密码学界的网站上。至于比特币最初的价值，不仅不为大众所认知，也不为金融界精英所认知。

区块链、数字货币、数字资产的参与者，已经从少数人变成了多数人，不仅有专业人士、精英，也有草根民众。在世界范围内，几十万、上百万人总是有了。这样的人数相比较于全人类人口，比例甚小，但是，其增长率是强劲的。完全不知道比特币为何物的人群在持续缩小。

这是一个“英雄不问出处”的领域。在参与群体中，以年轻人为主体。只是中国与西方国家还是有所差别：在美国，卷入到币圈的孩子平均年龄也就是20岁左右，基本来自中产阶级和精英阶层。在中国，年龄层偏高一点，除了北京、上海和深圳这些大都市，还有相当部分年轻人来自二三线城市，呈现非常草根的状态。不论国外还是国内，都市年轻人有一些共同点：富有理想，学习能力强，敢于尝试新事物，甚至有冒险精神。

第二，完成从少量企业参与到越来越多的企业卷入，以及刺激基于区块链技术的新型企业涌现的转变。在过去十年，一方面，出现以区块链技术为核心的产业，或者区块链与诸如大数据行业结合形成的新产业；另一方面，区块链进入到传统产业，传统资本也不断提高在区块链和数字货币领域的投资，由此形成交叉产业。总之，在区块链、数字货币推动下，正在形成一个新的产业集群。

第三，完成大多数国家政府从采取“放任主义”到严格制度规则和实施监管的转变。在2010年前后，世界绝大多数国家政府并没有对区块链，特别是数字货币加以关注，基本是任其自由成长。但是，在比特币价格不断增长，甚至比特币交易平台发生一系列事故之后，一些国家开始关注，创立制度法规，实施监管。2017年“ICO”风潮席卷全球，发生所谓的“割韭菜”事件，损害了民众利益，引发政府认真对待。无论如何，从发达市场经济国家到新兴市场经济国家，越来越多的政府废弃对数字货币的“无为而治”，采取积极面对的态度。

第四，完成对世界经济的影响从微乎其微到日益增强的转变。从2009年比特币挖矿开始，至2014年以太坊ICO成功，区块链和数字货币并没有构成对任何国家宏观经济和世界经济的实质性影响。但是，在过去三四年，情况变得不一样。随着区块链、数字货币、数字资产的急速发展和影响力增强，已经开始改变现存的经济运行模式、产业结构、分工格局和就业趋势，甚至商业周期机制。

第五，完成从只有金融和技术专业人士关注到社会其他领域关注的转变。听说现在知道和关注区块链和比特币的人群，已经从金融和技术专业人士蔓延到几乎各个社会领域，成为一个社会热点。同时，凭借区块链媒体，相关基金和企业发布的大量白皮书和大量会议形成了信息冲击，尤其是比特币的“财富神话”加速了上述过程。最值得注意的是，区块链和数字货币颠覆了很多传统思维和理念，推动了一场新型的、静悄悄的社会运动。

归纳：区块链和数字货币已经从星星之火到燎原之势。以数字货币为例，几乎每天都有新的数字货币诞生。据统计，截至2017年底，全球数字货币的种类已经增至1334种，比2016年增加了980种。其中最主流的五种是比特币、比特币现金（BCH）、以太坊、瑞波币和莱特币。区块链与数字货币已经形成一个不可逆的格局。在这个格局中，形成历史上前所未有的科学技术、资本和权力的大面积和全方位的组合。在之前的人类历史上，不曾出现政府权力、各类资本资源和科学技术同时关注一个问题。在这个格局中，传统财富体系正在发生改变和转型。

区块链发展大体分为两个阶段：以非中心化数字货币为典型特征的区块链1.0；以智能合约为典型特征的区块链2.0。

目前尚未产生关于区块链3.0形态的“共识”。总的来说，“链圈”相信区块链具有真实、可追溯、可信、公平的特征，可以通过共识机制的算法建立信用关系，保证合同、合约自动执行，减少社会交易成本。

第二，“币圈”。“币圈”的主体包括将比特币作为一种信仰的所谓“比特币原教旨主义者”，他们相信全球货币终将实现非国家化；早期通过“挖矿”获得比特币的群体；以传统资本进入数字货币的投资者；以及部分相关媒体。在“币圈”中，确实不乏在ICO或者数字货币交易中获得可观财富的个体和机构。“币圈”也包括一般民众，由于数字货币和区块链技术的学习成本和跨入门槛较高，普通人以“炒股”“炒国库券”经验理解“炒币”。2017年9月之后，“币圈”中的不少玩家已套现离场。

第三，“矿圈”。“矿圈”包括矿机生产商，例如“比特大陆”和“嘉楠耘智”；分布于电力成本很低的地方“矿池”；以及矿工。挖矿属于资源高度消耗的活动，与挖矿关系最大的是存储。但是，比特币的挖矿不宜归结为一般经济活动的能源消耗，被认为是能源浪费。因为比特币是一种通过工作量证明的高价值财富形态

以上三个“圈”所构成的生态具有这样的特征：

*   （1）相互依存程度不断增加；
    
*   （2）在全球范围内形成了区域性分工；
    
*   （3）内部的创新动力强劲；
    
*   （4）资本进入规模不断扩大；
    
*   （5）推动数字经济的升级。支持这个生态的有利益因素，也有坚持实现去中心化和维持分散记账的理念。就各国政府而言，并没有对三个“圈”的分别政策；主要在认知“链”和“币”的关系方面，有的认为是不可分割的，有的认为是可以分割的，形成不同政策。
    

区块链是一种建立在数学、物理学基础上的综合性技术，与互联网+、大数据、云计算、人工智能都存在着深刻的联系和互动关系。在IT革命时代，大部分科技资源、人力资源和支持科技研发的金融资源都集中在美国硅谷。而这次革命是全球性的，科技、人力和金融资源地理分布广泛。

第二，这次革命触及人类经济互动的核心，即数字货币。比特币的最大意义并不在于创造了一种支付工具、造就了财富新载体，其根本意义是打开了货币制度改革的“潘多拉”盒子。从此，不仅非政府和民间数字货币出现“大跃进”式的发展，而且推动了法定数字货币或者央行数字货币的开发。于是，原本的货币体系出现解构。进一步说，如果数字货币形成气候，最终将影响世界各国的基础货币，影响M0 和M2 的结构和数量。

第三，这次革命导致“通证经济”应运而生。在网络技术中，Token原指“令牌”，代表一种权利或权益证明，中文翻译为“通证”。通证可以代表一切权益证明，或者说，人们的全部权益证明都可以用通证来代表。当然，这是一种理想状态。所谓通证经济，没有一个标准化的定义，是指以Token为基础的经济生态。包括三个要素：权益证明、加密性、可流通。至于通证经济模式，相当多元化，最具代表性的有：货币模式、积分模式、资产模式、数据模式。从长远看，通证经济和共享经济存在着相当大的共同性。

第四，这场革命正在改变传统企业的组织形态。区块链技术带来了新型经济组合及新的价值组合的可行性。在区块链基础上，“全体员工共治企业”或者“分布式自主运作企业”开始产生。例如在以太坊平台上运行ConsenSys。这样的新型企业的核心特征是非中心化，所有权、架构、运作、奖励和治理融合于分布式管理模式，形成鼓励创新、员工激励和集体行动的新机制，造就出更包容和可持续发展的经济体。这种基于区块链的新型经济组织，改变了传统层级化的架构——权力和财富高度集中，大部分的活动都是在公司内发生的公司模式

第五，这场革命为政府提供了新的治理手段。

*   治理的本质是对政务数据的系统性开发和管理。区块链技术所包含的共识机制、加密算法、智能合约、不可篡改、可溯源、安全可信等技术，有助于政务数据资源发掘、存储、分析和确权，有效避免了层级过多导致的数据失真，保障政府系统可以快速和高效收集真实且完整大数据，为政府决策提供了优质数据支撑，有利于实现构建“数字”的目标。
    
*   关于趋势：此次以区块链、数字货币和数字经济为代表的革命，是全球性的，融合科技、产业和金融业的革命，业已形成不可逆转的态势。这场革命还引发了世界地缘政治的变化。现在这样的大经济体，不必久远，在明后两年，或者更长一点时间之后，区块链和加密数字货币会进入发展的历史新高点。
    

“数字化”的传统资产。这两类“资产”是相互渗透和相互影响的。因为有数字资产，逻辑上就有数字资产投资、数字资本、数字财富。在这些概念之间存在着连接的机制，形成不同于传统资产的市场特征。例如，纳斯达克（NASDAQ）所要建立的数字资产交易所，就是一种关于教育数字资产的重要实验。特别要强调的是，数字资产是以区块链作为基础且技术含量极高的资产，所以不同于传统资产，例如不动产、矿产、机械。区块链涉及相当多的科学学科。所以，研究院已经开始和科学院数学所，以及一些大学探讨关于测度数字资产指数的合作。其中一个思路是选择五种以上的加密数字货币，建立一个复合指数体系。加密数字货币的波动是相当复杂的，包括内生因素和外生因素。就像地震海啸，地震原本决定于内在的地质结构变化，但是地震又导致了海啸，海啸又反过来影响地震。

在研究和实践数字资产方面，CIDA具备四种资源优势：

（1）智力资源优势。研究院有既懂传统经济，又对数字经济有研究基础的智力资源。现在，只懂传统经济，不懂数字经济，或者只懂数字经济，对传统经济和传统经济运行没有认知的人，都不足以面对新的经济和科技混合时代。

（2）战略合作伙伴资源。研究院的成立背景、定位和理念，特别是研究院发起成员的原本的国内外关系，有助于研究院形成全球性的战略合作伙伴网络。

（3）跨学科研究资源。区块链是尚处于早期阶段的综合技术，其发展有待于基础科学和应用科学的引进和开发。例如需要数学家、计算机科学家的参与，而在经济和金融领域里的应用，需要经济学家和货币学家，甚至金融家、银行家。此外，区块链技术基础很可能因为量子计算和量子计算机的进展而改变。

*   研究院具有组织跨学科研究的资源和能力，为此设计成立了“技术与学术委员会”。
    
*   （4）区块链落地资源。区块链未来发展在很大程度上取决于其应用、产业化和商业化。。
    
*   包括学术和技术前沿、人才、经济实体分布、地方政府规划在内的信息系统；（2）提出一年计划和三年规划；
    
*   （3）内部组织架构设计。
    
*   主要以三个概念为基础。其一，Node。每个团队成员都是一个节点，都在节点上发挥其功能。其二，Matrix。区块链就是矩阵，所以团队产业需要适应多维工作方式。其三，Cluster。CIDA对外合作采用集合模式
    

一个是传统的物理和物质世界。在这个世界里，传统农业生产、农民、农村并没有完全消失，继续存在于身边。同时，工业社会还在持续扩张，从机械、机器到汽车、家用电器，工业产品无所不在。中国民众经历了街上几乎没有汽车到汽车遍布的过程。还有，农村逐步消亡，城市爆炸性增长。即使在世界范围内，物质匮乏的贫穷时代也正在走向消失。所以，人们不得不讨论诸如生产是不是过剩、产能是不是过剩等问题。

另一个是信息社会，基于互联网、移动互联网等建立起来的新世界。在这个世界里，生产要素完全不同。传统世界的生产要素是劳动力、资本、土地等，而在信息世界，主要生产要素是数据、信息、知识，整个社会最终要向数字经济和数字货币转型，其最重要标志就是“数字化”。在数字货币或者数字化世界，需要认知数码科学、计算机科学，或者算法的基本原理。现在，以数字经济和数字货币作为经济基础的数字社会已经来临，而且开始渗透到人们的日常生活中，并改变人们的生活模式。

但是，对于绝大多数人来说，没有办法像理解和体验物质世界那样理解已经开始主导我们的数字经济时代的本质。数字经济或者数字社会的来临，并不取决于我们是否理解和懂得数字经济和数字社会。这样的情况在历史上并非是第一次。当工业革命发生的时候，绝大多数人也并不理解和不懂得工业社会

区块链是基础设施。区块链是新型经济。就如同我们传统经济需要公路、铁路、航空、码头一样，这些都是基础设施，只是区块链基础设施没有以物理状态展现在人们眼前而已。区块链是经济形态。这很好理解。区块链本身迅速成长，派生出来一个新的经济形态，比如各类加密数字货币，目前和区块链连接的经济体在绝对量上是有限的，只有几千亿美金，但是发展潜力却是很大的。它是一种经济形态和经济体区块链是实验。链改就是一种实验。区块链还会产生各种新兴经济模式，派生出难以估计的各种新型的科学、社会使用。区块链是价值观。包括人们对去中心化或者非中心化的期望和理解。

区块链首先是科学 公认的区块链至少需要六个层次，如果区块链支持智能合约，就需要更多的层次。最底层是一些通用的基础模块，比如基础加密算法、网络通讯库、流处理、线程封装、消息封装与解码、系统时间等；中间是区块链的核心模块，一般包含了区块链的主要逻辑，如P2P网络协议、共识模块、交易处理模块、交易池模块、简单合约或者智能合约模块、嵌入式数据库处理模块、钱包模块等；最上面一层，往往是基于JSON-RPC \[2\] 交互模块，还可以做出更好的UI界面，也可以是一个web-service。支持智能合约需要增加更多的层，比如增加BaaS层，让区块链上的智能合约提供自治的服务。

根据区块链的上述技术性描述，支撑区块链的是密码学。密码学真正的完善和成功是1970年代以后的事情。这还仅仅是数学和密码学，如果说到计算机科学和算法语言，追溯的则更是科学问题。而密码学又和素数定理联系在一起，素数定理是描述只能被1和自身整除的素数与全体自然数关系的定理。从高斯（Gauss）提出这个定理，到最终被证明，每一步都推动了密码学的发展。而没有这些发展，根本就没有区块链的可能性。

区块链社会运动”集结了广泛的社会阶层和机构。支撑区块链的不同凡响的思想和技术吸纳了科技精英、知识精英、商业精英、媒体精英，以及政治精英，还有相当多普通民众，并且逐渐吸引从企业到政府的关注和参与。特别是，区块链是以青年人为主体的“跨代际”运动。因为区块链的“跨界”结构，不仅改变货币、金融、投资、产权、财富的传统内涵和形式，还会改变传统的企业、组织和非组织的模式，并很快进入“治理”领域。

“区块链社会运动”是典型的全球化运动。区块链技术与原理，以及作为区块链基础结构的互联网，不受制于主权、意识形态、文化和语言。所以，很容易形成全球性的区块链“共识”。这是一种源于全新思想的“共识”，是基于理性、科学、技术的“共识”，远远超过历史上的所谓“华盛顿共识”，或者其他类型的“共识”。凯恩斯说过：“我相信，与思想的蚕食能力相比，既得利益的力量被严重高估了。”区块链在世界范围不断扩大的影响力和应用场景，证明凯恩斯的这个说法是对的。此外，因为区块链与全球化的关联性，或早或晚会导致国际分工体系和生态的调整和改变，为全球可持续发展提供坚实基础。

区块链应用或落地场景 认识比特币应用或落地场景，需要考虑这样几个关系：（

1）近期和长期的关系。区块链在近期存在着应用或落地场景的难题，仍处于初级阶段。因为区块链技术不够成熟，相关知识普及程度不够。但是，从中长期看，机会是不断增长的。

（2）传统产业和非传统产业的关系。区块链需要数字化作为前提。具有数字化天生基因的产业，主要是成长和发育于互联网的产业，更容易区块链化；而传统的第一和第二产业，区块链化的难度较大。

（3）刚性需求和弹性需求的关系。区块链目前的应用或落地场景需要有刚性需求为前提。而在现阶段，对区块链存在刚性需求的行业和产业是有限的。

（4）宏观效应和微观效应。区块链技术的宏观效应相比微观效应更容易证明和显现，但是，宏观需要微观的组合。所以，区块链应用或落地场景最好具有宏观和微观效益的重合性。

区块链引发的观念变革，涉及这几个方面：

（1）相信和追求以区块链技术为基础的公平和效率的均衡。

（2）通过区块链，维护人与生俱来的数据权，包括各种隐私权。反对对民众大数据的无偿剥夺。

（3）支持和参与基于区块链的社区、社会企业和其他自组织，建立区块链基础上的跨越时空的组合。

（4）坚持区块链的价值观，分配新财富的新规则需要符合新时代的道德标准。

（5）以区块链为基础结构信任体系，并通过区块链商业关系。

区块链的七大未来趋势：

*   （1）产业区块链成为区块链行业发展的主战场，联盟链、私有链成为主流方向。
    
*   （2）区块链推动经济社会治理变革。
    
*   （3）不断增加的大型传统企业引入区块链。
    
*   （4）区块链与数字化经济社会结合越来越紧密，“云链用量”成为衡量数字经济发展新指标。
    
*   （5）跨国区块链行业联盟的组建推动垂直领域的区块链应用。
    
*   （6）区块链与多方计算、安全计算、联邦学习结合，解决数据的隐私保护与共享问题。
    
*   （7）分布式商业将继续实验，探索可扩展的商业模式
    

正确认知比特币 ICO是Initial Coin Offering的简称。ICO里的“coin”，就是Bitcoin（比特币）的coin。只是ICO融资除了比特币，还有以太币。比特币和以太币的本质都属于加密数字货币。因此，反思ICO需要从正确认识比特币开始。

第一，比特币诞生的必要条件。2008年末，比特币论文发表，2009年初，比特币出世。这不是偶然的，需要三个必要条件：（1）密码学与其他数学分支的组合。比特币是人为设计的货币，先有了区块链的思想，才有了比特币。而不是相反。所以，比特币是密码朋克充分运用了密码学的成果，再加上其他相关应用数学成果。（2）以互联网为代表的基础设施。

第二，比特币的基本特征。比特币是所谓货币的新物种，不应该用传统货币的“尺子”去衡量比特币。

*   比特币的基本特征是：（1）比特币的存在形态就是没有任何传统物质作为载体的一个源代码。
    
*   （2）比特币没有中心发行单位。每枚比特币都没有父母，是通过“挖矿”独自产生的。
    
*   （3）比特币的交易过程全部记录在超级账本上，是可以追溯的。
    
*   （4）比特币发行总量是有最终上限的，即2100万枚。事实上，如果比特币可以维持到2141年，那时的比特币存量会小于2100万枚，因为在百余年中相当多的比特币会丢失。（5）比特币的核心设计理念就是切断无限发行导致贬值的机制。由此，从根本上解决了所谓信用货币导致通货膨胀的机理问题。至于是否可将比特币定义为“通缩货币”，还需要讨论。
    
*   比特币的社区生态。比特币的出世，刺激了所谓“币圈”“链圈”“矿圈”，还有“媒体圈”的形成。
    
*   而在每个圈子中，又出现了不同的派别。例如，比特币分叉造成的合理性分裂。与此同时，因为传统资本的进入，大量交易所的成立和运行，围绕比特币形成了产业链和价值链，进而形成了一个社区生态。在这个没有传统地域边界的数字货币的社区中，有原住民、开荒者，有资本的新移民，以及无产者。特别值得注意的是在这个生态中的“码农”群体，他们经过专业训练，至少懂得算法语言C++ava，或者Go中的一种至两种。
    
*   第五，比特币的理念。我们并不知道谁是中本聪，也没有必要知道。历史证明，创造比特币的团队以匿名方式发表他们的计划，在完成比特币早期阶段的试验之后消失，是正确的。需要肯定的是，虽然比特币的唯一论文，几乎只字不提其理念，但是，该团队在设计比特币时是有特定理念的，为某种社会责任所驱动，很可能有对资本主义批判的理想主义成分。所以，比特币“原教旨主义者”所坚持的基本原则，是值得肯定的。在实际经济生活中，比特币对于墨西哥在美国的移民是有所帮助的：他们以前通过西联汇款（Western Union）转钱到家乡，手续费6%，需要3天；现在通过比特币，只要7分钟，成本极低。
    
*   第六，比特币的局限性。比特币的历史很短，其局限性很多。最近发生所谓的比特币分叉，就是为了解决比特币的特定局限性。除此之外，还有比特币“挖矿”的人工、电力、机器成本的不断上升问题；比特币价格的波动引发的投机问题；以及因为比特币的匿名特征，很多财富通过比特币实现避税等问题。
    

区块链提供“确权”技术。现在，大家公认的区块链分为公链、私链和联盟链。无论哪种区块链，微观基础都是数据和信息的“确权”。区块链技术具有天然的“确权”手段，通过Hash值的形式实现对用户的数据和信息的存储，并通过区块链去中心化和分布式记账，有效保证存储的电子数据不被篡改，从而保障数据的真实性和原始性，构成“确权”的前提条件。特别是，区块链势必体系实现结合，s law（代码即法则）最终会从一种提法变成现实，进而通过区块链的“确权”得到法律的保障。

第五，区块链具有产业化的巨大潜力。现在，区块链产业化包括两个方向：（1）直接创造基于区块链的新型产业，例如金融业、观念产业；（2）对传统产业实行链改，或者说区块链化，例如艺术和文化产业、食品业、运输业。现在看，区块链产业化不过是刚刚开始，真正成功的案例还是非常有限的。最大的瓶颈是人才错位和短缺。懂得产业的企业家，对区块链了解不够，对区块链相对熟悉的技术人才，却没有产业经验。所以，区块链的培训是当务之急。遗憾的是，现在到处开办的所谓区块链学习班，大多停留在概念上，将区块链和炒币联系在一起。

第六，区块链有助于改变现存的经济组织形态。区块链为人们提供了实现“自组织”的技术基础，或早或晚地改变现在的传统企业，主要是公司的组织形式。人们会以区块链为基础，通过“节点”实现分工合作。不仅如此，区块链有助于“通证经济”（Token Economy）的发育

FinTech。FinTech可以定义为传统金融机构，包含传统银行和非银行金融机构，所主导推动的是自身与科学技术的结合。下图是世界范围内使用区块链技术的部分银行和金融机构名单

Programming Interface, API），通过互联网实现传统银行和其他金融资源、产业资源进行结合，并为终端的消费者提供服务。这样的机制使得银行主体和终端直接融合，导致了银行主体的变化，进而改造了传统银行的基本形态和服务模式。

![](https://storage.googleapis.com/papyrus_images/18ef97c67034696f0b1b1cd0d4f55519780efdaa3479210afe8c6821be74f654.png)

社会、市场和消费者正在成为推动银行业科技化、促进金融—科技结合的最重要的动力。传统金融体系重点转型领域集中在支付系统的科技改造方面。支付系统是从银行到用户，包括机构用户和个体用户的最直接的功能体现。

![](https://storage.googleapis.com/papyrus_images/4a7071b134dad9b7e13627ca83c079d5b03ae350c3bd4994d7ff09d66f6b05ee.png)

区块链和智能合约如何影响具有数百年历史、作为传统金融活动核心支撑的复式记账体系（Double Entry Bookkeeping），带来了重大的革新作用。

![](https://storage.googleapis.com/papyrus_images/9760b578cad86143db48c597067f3eb12989a7c4fe6217d1501123b9265149bf.png)

物质产品的市场价值取决于供求双方对产品价值“认同”的均衡。观念产品市场价值的实现，则是消费者“认同”的规模对其影响更大。供给方的“认同”只有得到消费者的“认同”，其产品的潜在价值才可转化为实际的市场价格。例如，王菲、麦当娜的商业价值，来自听众的“认同”。即使有些歌手比她们唱得更好，因为没有被大众认同或足够认同，其产品就没有价格，或没有足够高的价格。

“认同”是一种主观现象。人们对观念产品价值的“认同”是多因素、多样性、多属性的，会因不同时间、不同环境、不同制度、不同国度、不同文化、不同心境、不同年龄，引致不同的价值认同。“认同”包括主动认同与被动认同。例如，人们对色彩的认同常常是主动的；而广告引发的认同则属被动认同。

在实际经济生活中，观念产品价值的“认同”主要是通过“关注”与“体验”两个途径实现。所谓“关注”是消费者在心理、学习和信息的刺激下对特定产品产生的兴趣和注意力。所谓“体验”是消费者通过身体的特定部分对特定产品消费的经验过程。“关注”与“体验”互动，互为前提。

“边际效用递增”VS“边际效用递减”理论：依据传统边际价值论，消费的边际效用递减，由此构建供需曲线。边际效用理论建立在人类对物质产品的生理体验基础之上。但是，人类对观念产品的心理体验不是效用递减，而是效用递增。“粉丝”就是由反复多次消费所构成的群体。“粉丝”的每一次消费效用都高于最初消费的使用效用。“粉丝”形成原理在于，人们对一个观念产品的消费，需要一个培养、学习、养成的过程，其间包括不断加深认识、呼应、强化与认同，所以呈现的过程不是“边际效用递减”，而是“边际效用递增”的反复使用和消费过程。

“边际成本趋零”VS“边际成本递增”理论：“边际成本递增”理论是传统经济学，特别是微观经济学的重要基石。然而，在观念经济中，观念产品生产的边际成本，在理论上可以为零。因为，观念产品在使用中，不仅不会损耗，而且可以反复使用，一次使用并不损害下一次使用价值。在许多场合，观念产品使用次数越多，价值越高。例如QQ和微信。观念产品的生产和消费证明“边际成本递增”理论的局限，以及改造和替代以物质生产为前提的传统厂商理论的必要性。

“区间策略价格”VS“唯一均衡价格”理论：均衡理论是传统经济学的核心理论。供给曲线和需求曲线的交点是“完美”的均衡价格，并被认为是唯一的，且可以最大化地满足生产者和消费者利益。供求曲线所呈现的是典型的物质产品的供需均衡状况。换一种说法，根据传统经济学，一物一价，先有价格，后有生产，任何进入市场的产品都有既定的价格作为参照，供给是价格的函数，价格决定供给量，价格上升，供给增长。传统物质产品存在价格收敛。对于观念经济产品而言，并不存在唯一的均衡价格。典型观念产品价格不是唯一的均衡价格。观念产品可以以零成本无限供给，因此供给量无法取决于价格。观念产品价格是观念认可度与观念认可人群的剩余这二者的函数。也就是说，观念认可度越高，这种观念产品的价格越高，持认可度的人群剩余越多，该种观念产品的价格就越有高的可能。

\*

![](https://storage.googleapis.com/papyrus_images/dea940f9ff52a2baef1b36e0edac7f3958be8674b47178e93d86a20875ffe258.png)

![](https://storage.googleapis.com/papyrus_images/8795d9fbe5943b25d51fd548c76538276540a01ea882cd5c7f17e08c8b81c84b.png)

野蛮生长期
=====

![](https://storage.googleapis.com/papyrus_images/cb378e1fd27878662fe99d3cd3d1809d015d2edc3b34d5b6be300f8cd8840fd5.png)

![](https://storage.googleapis.com/papyrus_images/81d2964f6acc727e60de2c2ccebe1a4042f2bb39a0b397da577fe20030513980.png)

![](https://storage.googleapis.com/papyrus_images/11b5d121c609884aab68e748e0c1f582f863502ba699aca34063f9a4a494983c.png)

软分叉和硬分叉
=======

为什么 The DAO 事件会直接推动后续区块链的野蛮发展呢？且听我慢慢为你道来。所有的软件系统都会有 BUG。一般情况下，我们会在之前软件版本的基础上修改源码，新 版本相比旧版本只有部分逻辑的不同，程序基本规则也没有太大的变化，两个版本的程序之间简单做些适配，就可以互相认知，可以说是无缝兼容的。我们把这种情况称之为迭代。而另一些时候，因为架构的调整、规则的变更，两个版本的程序之间已经无法兼容。这时我们就无法称之为迭代了，而是用重构指代这种变化。通常情况下，多次迭代叠加的结果 就是重构，可以理解为量变引起质变。而在区块链中，网络是由多个节点彼此相连组成的，节点间必须可以互相通信。几个小版本的软件迭代不影响区块链网络的运行，一些节点升级，而另一些节点继续使用原始版本，是不会引起区块链网络的割裂。这种情况就是所谓的软分叉，其本质就是可兼容的程序版本更新。

![](https://storage.googleapis.com/papyrus_images/6418210fd430bc973c23b619cc37702965af58ad638057e1bf5fcf39167bf5ec.png)

而一旦社区决定对区块链协议进行了重构，则必须协调整个网络节点都进行升级。你可以设想一下，如果一半节点继续使用原来的版本，而另一部分节点升级了新版本的程序，在这种情况下，一个区块链网络就被割裂成了两个。虽然他们的数据从属于共同的祖先，但是在某一时刻，他们独自派生出不同的数据走向。这就是硬分叉的逻辑，其本质是不可兼容的程序版本更新。

![](https://storage.googleapis.com/papyrus_images/e7ecc284747a161d368e9a4e7ecf63dd2149e8bc6b9fe589bc89192a48a25cb6.png)

这就不难解释，为什么每一次区块链网络的升级都是一件大事，需要社区去协调从哪一个区块启用新版本，废弃老版本。回到 The DAO 事件本身，以太坊通过硬分叉分裂成 ETH 跟 ETC，两个网络都保持独立运营。从逻辑上讲，并没有什么问题，是可以说得通的。但坏就坏在其凭证是有价值的，在硬分叉前，我拥有 1 枚 ETH，而硬分叉以后，我既有 1枚 ETH，同时我又拥有了 1 枚 ETC。相当于我在什么都没有操作的情况下，凭空多了一枚有价值的凭证，虽然其价值可能相较原始的 ETH 来说相对较低。

*   “潘多拉的盒子”被打开了。 一些人的心思被解放了。如果我有理由述说比特币 / 以太坊存在的不足，提出解决方案，写一个白皮书，阐述我的观点及实现路径。我是不是也可以通过硬分叉的方式，创造属于
    

我的区块链呢？
-------

同时，如果我能拉人站台，让他们为我拉票，是不是也会有更多的人认同我的观点？通过这样的操作，是不是也逐渐有人会为我的理想买单，而一旦有人为我买单，我就凭空创造 了“财富”泡沫。一场轰轰烈烈的造链行动就开始了，各类基于硬分叉的旁系网络开枝散叶。最高兴也是最能推动这场行动的人，其实还并不是其创造者，而是在硬分叉前持有 BTC/ETH 的散户，他 们得到了数不清的旁系凭证，当然希望其价值更高。所以他们就不断鼓动身边的人进场，进而不断推动这虚假的繁荣

不可描述的推手
=======

![](https://storage.googleapis.com/papyrus_images/31a91c828155317ff7a226390d313c02e6cd44c84cc53075eef6e61eeaa020da.png)

![](https://storage.googleapis.com/papyrus_images/0c2dacf583c58f5ffabea37b5d83ffd8521fc3d5d64729eec8fa23b7546de15c.png)

![](https://storage.googleapis.com/papyrus_images/0e6492ab9e41ec5528a925ddfac176ae5005864d8b6e87df18ab0e8f527c010f.png)

*   除硬分叉外，野蛮的背后还有不可描述的推手，因为某些众所周知的原因，不宜多说。自有了这不可描述的推手之后，就像鱼遇到了水，一切都那么的自然。市场迎来了新一轮 的疯狂。任何人只要有一些跟区块链沾点边的点子，都可以立马写一篇白皮书，找一群人运营社区，宣传自己的理想，换取投资人的赏识，蛊惑他们用真金白银为自己的“理想”买单。不可否认，最初确实有很多团队真正在依靠这种融资的方式认认真真做事，但市场并不会
    
*   因为你的认真给予你等比例的回报，反而是那些牛皮吹上天的赚到了大钱，且扰乱了市场。只有你想不到，没有他们做不到。疯狂并没有持续太久，泡沫被无情刺穿。自此，市场逐渐冷清。时间就来到了区块链发展的新阶段，也就是现在，在下一讲中我将详细为你描述区块链技术的现状。
    

总结
--

在这一讲中，我阐述了我对区块链技术自萌芽到野蛮发展的三个历史阶段的认知。比特币，以太坊是一种现象，而区块链技术是其背后的本质。

![](https://storage.googleapis.com/papyrus_images/54839b3e1dbfc2a6c49b28b9ee584aa13b69455c6615401dd3fdaf238a26f79b.png)

*   区块链技术萌芽于比特币，诞生在以太坊，经历过乱象丛生的爆发，但也正是因为那些疯狂岁月，让千千万万个你我知道并了解到区块链技术。
    
*   历史无对错，只有结果。希望你通过我的讲解能够了解区块链技术的历史发展进程，并对区块链技术的未来充满想象及期待。
    
*   可以尝试阅读一下比特币白皮书以及以太坊白皮书，它们可以说是区块链领域的圣经。而且你也可以顺便了解一下中本聪及V 神这两个人，都是颇具传奇色彩的人物
    

![](https://storage.googleapis.com/papyrus_images/ca5f69ba2c3943c90ed1df8946f1fa5bdd6014d76bd20998a65510dda6a683fe.png)

回顾了区块链技术自诞生到野蛮生长的三个阶段，自政府主动干预之后，整个市场因为比特币价格的腰斩而萎靡不振，热衷于赚取热钱快钱的投机者逐渐退出，只留下了一片狼藉。

在这样的背景下，区块链的发展逐渐由币价驱动转向技术驱动，投机者的退出意味着留下的都是对区块链技术抱有信心的积极分子，他们推动着区块链技术继续向前，让区块链技术成为现在的样子。而这一讲，我们一起关注区块链技术的发展现状

![](https://storage.googleapis.com/papyrus_images/74458e91b8286db1852d8d4d30aa33e6a0ef094d3348f309f404b44508d13c52.png)

![](https://storage.googleapis.com/papyrus_images/02639e5dd303a4f4cf9ccba47eaf970c73502ed0fd174bae8c94ba47c4c63e3e.png)

!\[开发应用一样。而另一部分人意识到，只要比特币 / 以太币等数字货币存在一天，对其币价的市场操纵永远也不可能停歇，短时间内也看不到其与主权货币稳定汇率的可能性，国家政策也是呈现 对有币区块链打压的趋势。与其这样，还不如跳出这个圈子，专注于区块链技术在企业领域的研究，而这个圈子我们称之为联盟链圈，其侧重点是研究如何根据企业自身业务定制联盟区块链，就好比现在各 家手机厂商基于安卓开源系统做定制化的系统研发。 不同的圈层就这样建立了，区块链技术自此如同硬分叉一样，割裂成公链圈与联盟链圈，如同两条射线，驱动着区块链技术朝向不同的方向发展。 公链圈的创新 公链圈的发展离不开投资激励，一切的技术应用创新都围绕着如何繁荣交易市场。为什么这么说呢？通过总结归纳，我们可以将公链圈的创新大致可以分为两类，一类是应用层面的，主要包括去中心化金融和去中心化存储；另一类是技术创新层面的，最突出的就是跨链，我们分别来看看。 去中心化金融 去中心化金融，通常我们称之为 DeFi，是 Decentralised Finance 的缩写，这是公链圈最直接的发展驱动力。DeFi 就是运行在区块链网络上的金融服务 想要理解它，我们必须先搞明白什么是金融，以一个金融小白的视角来看，金融是通过重新分配资产来获得资产增值的一种渠道，它的本质在于信用、风险和杠杆。金融成立的前提就是控制不确定性风险，只是传统金融跟区块链控制风险的手段不同。 如果你有去银行办理抵押贷款的经历，肯定会觉得流程繁琐，叫人抓狂。那你有没有想过，为什么贷款要这么多证明，经过层层审核才能贷到款呢？这个问题，我们可以从风险控制的角度来理解，传统金融服务对风险的控制主要是考察借贷人的历史信用记录以及抵押物的市场价值，如果借贷人信用不佳或抵押物价值低，可能就无法贷款。像银行这样的传统金融机构，不光要在贷款前严格把关，而且还要承担坏账 的风险。 但是 DeFi 就不一样了，它可以通过智能合约来把控风险，其优势在于一切都是由程序代码自动控制。在不满足初始约定条件的情况下，合约会强制平仓，将抵押物没收。而且 DeFi还有一个重要优势，那就是不存在坏账，几乎不需要风险控制，因此 DeFi 可实现超额抵押，也就是杠杆。 其实，现在数字货币交易所中的合约本质上就是 DeFi，以少量现货作为保证金用来博取数字货币价格上涨下跌带来的额外收益，但在市场价格上下急剧波动的行情中，几乎无人是 赢家，庄家除外。 虽然 DeFi 是一个非常新颖的金融创新，但其未来的发展还是不太明朗的，尤其是在国内。DeFi 的主战场在以太坊，而以太坊是匿名的公有区块链网络，匿名意味着无法被金融部门 监管 / 审查，传统金融行业在重重监管下都经常出现各种金融丑闻，更不用说不受监管的DeFi。 对投资人来说，风险是巨大的，此处的风险不同于上面提到的坏账风险，而是要警惕人为造成的投机风口及暗箱交易。 IPFS（InterPlanetary File System）是一个基于内容寻址的分布式的新型超媒体传输协议。IPFS支持创建完全分布式的应用。它旨在使网络更快，更安全，更开放。IPFS是一个分布式文件系统，它的目标是将所有计算设备连接到同一个文件系统，从而成为一个全球统一的存储系统。某种意义上讲，这和Web最初的目标非常相似，但是它是利用BitTorrent协议进行Git数据对象的交换来达到这一个目标的。IPFS正在成为现在互联网的一个子系统。IPFS有一个更加宏伟而疯狂的目标：补充和完善现有的互联网，甚至最终取代它，成为新一代的互联网。这听起来不可思议甚至是一个疯狂的目标，但是的确是IPFS正在做的事情。 IPFS项目通过整合已有的技术（BitTorrent、DHT、Git和SFS），创建一种点对点超媒体协议，试图打造一个更加快速、更加安全、更加开放的下一代互联网。实现互联网中永久可用，数据可以永久保存的全球文件存储系统，同时该协议拥有内容寻址、版本化特性，尝试补充甚至最终取代伴随我们了20多年的超文本传输协议（即：HTTP协议）。IPFS是一个协议，也是一个P2P网络，它类似于现在的BT网络，只是拥有更强大的功能，使得IPFS拥有了可以取代HTTP的能力，为我们打造更好的Web。Filecoin是运行在IPFS上的一个激励层，是一个基于区块链的分布式存储网络，它把云存储变为一个算法市场，代币（FIL）在这里起到了很重要的作用。代币是沟通资源（存储和检索）使用者（IPFS用户）和资源的提供者（Filecoin矿工）的中介桥梁，Filecoin协议拥有两个交易市场，数据检索和数据存储，双方在市场里面提交自己的需求，达成交易，IPFS和Filecoin相互促进，共同成长。解决了互联网的数据存储和数据分发，特别是对于无数的区块链项目，IPFS/Filecoin将作为一个基础设施存在。这就是为什么我们看到越来越多的区块链项目采取了IPFS作为存储解决方案，因为它提供了更加便宜、安全、稳定的存储解决方案。

1980年，Martin Hell的学生，Merkle Ralf提出了Merkle-Trees数据结构和生成算法。Merkle-Tree最早是要建立数字签名证书的公共目录，能够能够确保，在点对点网络中传输的数据块是完整的，并且没有被篡改的。我们前面提到在比特币网络中，每一个区块都包含了交易信息的哈希值。这一哈希值并不是直接将交易顺序连接，然后计算它们的哈希，而是通过默克尔树生成的。默克尔树生成算法，会将每笔交易做一次哈希，然后两两将计算后的哈希值再做哈希，直到计算到默克尔根。而这个默克尔根，就包含了全部的交易信息。这样，能大大节省钱包的空间占用。例如在轻钱包中，我们只需下载与自己钱包对应的交易信息，需要验证的时候，只需找到一条从交易信息的叶节点到根结点的哈希路径即可，而不需要下载区块链的全部数据

\]([https://images.mirror-media.xyz/publication-images/Y\_2GgLzoV\_Z8GJodjTa3k.png?height=574&width=558](https://images.mirror-media.xyz/publication-images/Y_2GgLzoV_Z8GJodjTa3k.png?height=574&width=558))

![](https://storage.googleapis.com/papyrus_images/d3da93b0eac1a1930a25b75cf53dc35bdcf5d4a3ce6fcb4a119569a4266b881a.png)

1980年，Martin Hell的学生，Merkle Ralf提出了Merkle-Trees数据结构和生成算法。Merkle-Tree最早是要建立数字签名证书的公共目录，能够能够确保，在点对点网络中传输的数据块是完整的，并且没有被篡改的。我们前面提到在比特币网络中，每一个区块都包含了交易信息的哈希值。这一哈希值并不是直接将交易顺序连接，然后计算它们的哈希，而是通过默克尔树生成的。默克尔树生成算法，会将每笔交易做一次哈希，然后两两将计算后的哈希值再做哈希，直到计算到默克尔根。而这个默克尔根，就包含了全部的交易信息。这样，能大大节省钱包的空间占用。例如在轻钱包中，我们只需下载与自己钱包对应的交易信息，需要验证的时候，只需找到一条从交易信息的叶节点到根结点的哈希路径即可，而不需要下载区块链的全部数据

![](https://storage.googleapis.com/papyrus_images/cf443da71b8eec9b04b36d7f40ed1d671b2f4c6d8bfd65f7e4cb00b270d83fb2.png)

还有两位有杰出贡献的数字朋克是Hal Finney和Nick Szabo，他们重新考虑将技术整合了起来。Nick Szabo他不仅是一位计算机科学家，同时精通法律。Szabo受到David Chaum的启发后，希望利用密码协议和安全机制，提出了数字合约的构想。数字合约能在网络上，没有第三方协助，利用程序验证并执行合同。它与传统合同相比更安全，并且减少了相关成本。这在后续的加密数字货币设计上有着极大的影响。比特币网络可以提供非图灵完备的脚本语言实现部分智能合约功能；以太坊则进一步，在EVM上运行Solidity语言，提供了图灵完备的智能合约环境，这也为后续分布式APP奠定了基础。

Nick做出的贡献还不只是发明了智能合约，在2008年，Nick Szabo发起了Bit Gold项目。在项目计划书中，Nick阐述的Bit Gold架构，这现在的比特币完全相同，同样是工作量证明机制，同样是链式网络结构，同样的新区块包含旧区块的数字指纹，包含时间戳等诸多特性。然而，Bit Gold项目最终工程还是没有顺利完成。目前Bit Gold可查寻的源头只有在Bitcoin Talk论坛的帖子，后续的可查证资料就很少了。有一些比特币爱好者们一度认为Szabo就是中本聪本人，不仅因为Bit Gold与Bitcoin的相似之处令大家充满想象，甚至是在词法和句法上，中本聪的比特币论文与Bit Gold论文相似之处，而且Nick家不远的地方，有一位叫中本聪的日本人，大家猜测这是Nlick为了掩人耳目而故意隐藏自己的身份。Nick本人都对此表示否认并觉得这是个很搞笑的八卦，当然这也成为数字货币里最大谜团，究竟中本聪是谁呢

IPFS的优势 IPFS的优势在于其强大的技术积淀，精巧的架构设计，以及强大的开发者生态。

1.技术优势：

IPFS技术可以分为七层子协议栈，从上至下为身份、网络、路由、交换、对象、文件、命名，每个协议栈各司其职，又互相搭配

![](https://storage.googleapis.com/papyrus_images/51ce77ff9ea84e8bc700c1b58d9d029d3f5aad7161a3202e749048aef66925a0.png)

1）身份层和路由层： 对等节点身份信息的生成以及路由规则是通过Kademlia协议生成制定，KAD协议实质是构建了一个分布式松散Hash表，简称DHT，每个加入这个DHT网络的人都要生成自己的身份信息，然后才能通过这个身份信息去负责存储这个网络里的资源信息和其他成员的联系信息。如同微信名片分享，在无法通过直接搜索微信号的情况下，如果你要找一个人，可以通过有这个人联系方式的朋友分享名片来建立联系。

（2）网络层： 比较核心，使用的LibP2P可以支持任意传输层协议。NAT技术能让内网中的设备共用同一个外网IP，我们都体验过的家庭路由器就是这个原理。

（3）交换层： IPFS吸取了Bittorrent的技术，并在其之上进行了再创新，自研了Bitswap模块，使用Bitswap进行数据的分发和交换，用户分享数据会增加信用分，分享得越多信用分越高。相反，如果用户只下载数据而分享数据，信用分会越来越低，直到被其它节点忽略。这一设计可以解决女巫攻击，信用分不可能靠机器刷去提高，一直刷检索请求，信用分越刷越低。请求次数和存储量的变量之间有一个比较精妙的算法，类似一个抛物线，前期可以容忍一些“吃白食”情况，达到一定次数后不再信任。

（4）对象层和文件层： 这两层适合结合来谈，它们管理的是IPFS上80%的数据结构，大部分数据对象都是以Merkle DAG的结构存在，这为内容寻址和去重提供了便利。文件层是一个新的数据结构，和DAG并列，采用Git一样的数据结构来支持版本快照。

（5）命名层： 具有自我验证的特性（当其他用户获取该对象时，使用指纹公钥进行验签，即验证所用的公钥是否与NodeId匹配，这验证了用户发布对象的真实性，同时也获取到了可变状态），并且加入了IPNS这个巧妙的设计来使得加密后的DAG对象名可定义，增强可阅读性。

新旧技术的更替，无非就两点：第一，能提高系统效率；第二，能够降低系统成本。IPFS把这两点都做到了。

这是一个IPFS技术模块的和功能间的映射关系图，同时也是一个纵向数据流图。刚才所说的八层协议，其实每一层的实现都绑定在对应的模块下，进行了一个直观的图表设计

![](https://storage.googleapis.com/papyrus_images/b4759ace676e28ccb769ae4ab2445dd864317e5bb5742e0c37871873930e7ac2.png)

Mutiformats是一系列hash加密算法和自描述方式（从值上就可以知道值是如何生成）的集合，它具有SHA12565123B等6种主流的加密方式，用以加密和描述nodeID以及指纹数据的生成。

LibP2P是IPFS核心中的核心，面对各式各样的传输层协议以及复杂的网络设备，它可以帮助开发者迅速建立一个可用P2P网络层，快速且节约成本，这也是为什么IPFS技术被众多区块链项目青睐的缘由。

IPLD其实是一个转换中间件，将现有的异构数据结构统一成一种格式，方便不同系统之间的数据交换和互操作。现在IPLD支持的数据结构，是比特币、以太坊的区块数据。这也是IPFS为什么受到区块链系统欢迎的原因之二，它的IPLD中间件可以把不同的区块结构统一成一个标准进行传递，为开发者提供了成功性比较高的标准，不用担心性能、稳定和bug。

IPFS应用了这几个模块的功能，集成为一种容器化的应用程序，运行在独立节点上，以Web服务的形式，供大家使用访问。

最后是Filecoin，作为去年7月才宣布的项目，它的开发进度至今保密。Filecoin把这些应用的数据价值化，通过类似比特币的激励政策和经济模型，让更多的人去创建节点，去让更多的人使用IPFS。

本节只对IPFS的技术特性进行了概要介绍，将在原理篇中对每个技术细节做系统性详解。

2.社区优势：

协议实验室是由Juan Benet在2014年5月份发起。Juan Benet毕业于斯坦福大学，在创建IPFS项目之前，他创办的第一家公司被雅虎收购。2015年，他发起的IPFS项目在YCombinator孵化竞赛中拿到了巨额的投资，同时成立了协议实验室公司。并于2017年8月底，完成了Filecoin项目的全球众筹，在Coinlist（协议实验室独立开发、严格遵从SAFT协议的区块链融资众筹平台）上共募集了2.57亿美金，具有强大的投资者和开发者社区。

![要为读者构建IPFS大致的概念和框架，只涉及很少量的技术描述。我们知道了IPFS是一种基于内容检索，去中心化，点对点的分布式文件系统。目前，这一开源项目由Protocol Labs维护，它的创始人是Juan Benet。IPFS项目是通过整合已有的分布式存储方式和密码学的成果，实现互联网中能永久可用，数据永久保存的全球存储系统。它整合了分布式哈希表，BitTorrent和Git，自验证文件系统四种技术的优点。使用DHT实现内容检索；借鉴BitTorrent，实行分块存储，分块传输和奖励机制；Git中应用的默克尔DAG使得大文件分享，修改变得简单高效；而自验证文件系统确保了数据始终属于用户。我们回顾了区块链的基本知识和重要研究历史，了解了区块链从加密算法到比特币和以太坊的历史进程。同时，我们指出了当前区块链和互联网难以解决的问题，以及IPFS在这二者中有可能会带来哪些改变。Filecoin是IPFS的经济模型，是IPFS借鉴Bitcoin，为鼓励矿工贡献出网络资源，使网络更加稳定而向矿工发放的代币奖励。IPFS的优势包括团队技术积淀，开发者社区和精巧的设计。我们提到了IPFS的八层协议栈，从上至下为身份、网络、路由、交换、对象、文件、命名、应用；IPLD、LibP2P、Multiformats三个组件。同时说明了IPFS与Burst，Storj和Sia三类区块链网络云盘项目的区别对比。第四节里，主要介绍了应用领域的几个典型的例子，他们包括分布式社交创作平台Akasha，基于Steemit的去中心化视频平台Dtube；以及目前区块链与IPFS结合的公有链案例；正在开发的分布式缓存模型IPFS-GEO](https://storage.googleapis.com/papyrus_images/842df843a397aa45ee00b27e84763f6d1bd4ee19a34976aa45206da96ec7cc3e.png)

要为读者构建IPFS大致的概念和框架，只涉及很少量的技术描述。我们知道了IPFS是一种基于内容检索，去中心化，点对点的分布式文件系统。目前，这一开源项目由Protocol Labs维护，它的创始人是Juan Benet。IPFS项目是通过整合已有的分布式存储方式和密码学的成果，实现互联网中能永久可用，数据永久保存的全球存储系统。它整合了分布式哈希表，BitTorrent和Git，自验证文件系统四种技术的优点。使用DHT实现内容检索；借鉴BitTorrent，实行分块存储，分块传输和奖励机制；Git中应用的默克尔DAG使得大文件分享，修改变得简单高效；而自验证文件系统确保了数据始终属于用户。我们回顾了区块链的基本知识和重要研究历史，了解了区块链从加密算法到比特币和以太坊的历史进程。同时，我们指出了当前区块链和互联网难以解决的问题，以及IPFS在这二者中有可能会带来哪些改变。Filecoin是IPFS的经济模型，是IPFS借鉴Bitcoin，为鼓励矿工贡献出网络资源，使网络更加稳定而向矿工发放的代币奖励。IPFS的优势包括团队技术积淀，开发者社区和精巧的设计。我们提到了IPFS的八层协议栈，从上至下为身份、网络、路由、交换、对象、文件、命名、应用；IPLD、LibP2P、Multiformats三个组件。同时说明了IPFS与Burst，Storj和Sia三类区块链网络云盘项目的区别对比。第四节里，主要介绍了应用领域的几个典型的例子，他们包括分布式社交创作平台Akasha，基于Steemit的去中心化视频平台Dtube；以及目前区块链与IPFS结合的公有链案例；正在开发的分布式缓存模型IPFS-GEO

![](https://storage.googleapis.com/papyrus_images/b6e3f8748283ecd595fb35fc4bcc6726295d50f384dff214303b15f1693a4dd2.png)

而另一方面，DAG（Directed Acyclic Graph，有向无环图）则是对另一种数据结构形式的探索。在一般的区块链项目中，所有节点保存的信息都是相同的；而采用DAG技术的项目，则允许各个节点保存不同的信息。在DAG中，区块可以随时产生，而一个区块与多个父区块进行连接（图3-4）。这样一来，所有人可以随时记账，交易信息的记录速度大为提高。

![然而由于多个区块同时产生，且均有效，DAG 无法以“唯一最长链”来保证一致性。在这方面，有的项目以“历时性”来保证 DAG 上账本的一致性。具体而言，在 DAG 中一个新区块将随机选择两个次新的区块进行连接，同时对与之相连的所有区块进行交易信息的验证。经历了多次验证的区块，其交易内容存在冲突的可能性很低，可被认为是已确认的交易信息。这一方案里，一致性的验证依赖于区块网络的延伸和增长。其他项目则以“全连接”来保证账本一致，即每个新的区块都与之前所有区块相连，并验证此前的所有交易信息。还有的项目以“次序”来保证一致性，由区块递归投票来确认新的区块等。
DAG 带来吞吐量的提高，然而“一致性”始终是个有待解决的复杂问题，目前问题的解决都需要付出一些代价：可能是交易信息的确切验证时间有所延误；也可能是节点与节点之间需要进行大量的网络通信，使得实际交易速度仍有待观察](https://storage.googleapis.com/papyrus_images/339d643589c534497b4384f0d246ea51441e3e9efb44c92ebce870d24d903338.png)

然而由于多个区块同时产生，且均有效，DAG 无法以“唯一最长链”来保证一致性。在这方面，有的项目以“历时性”来保证 DAG 上账本的一致性。具体而言，在 DAG 中一个新区块将随机选择两个次新的区块进行连接，同时对与之相连的所有区块进行交易信息的验证。经历了多次验证的区块，其交易内容存在冲突的可能性很低，可被认为是已确认的交易信息。这一方案里，一致性的验证依赖于区块网络的延伸和增长。其他项目则以“全连接”来保证账本一致，即每个新的区块都与之前所有区块相连，并验证此前的所有交易信息。还有的项目以“次序”来保证一致性，由区块递归投票来确认新的区块等。 DAG 带来吞吐量的提高，然而“一致性”始终是个有待解决的复杂问题，目前问题的解决都需要付出一些代价：可能是交易信息的确切验证时间有所延误；也可能是节点与节点之间需要进行大量的网络通信，使得实际交易速度仍有待观察

技术的边界
-----

人们在设计一款新产品时，都必须了解当下技术的边界：哪些技术已经可以完全使用了，哪些技术还要等待一段时间。对于需要等待的技术，人们不得不在之后再进行考虑。当然，科学和技术有一些不同，科学研究可以给出理论上的极限边界，而从工程设计的角度更多考虑的是如何在大概率情况会出现的大致边界内，整体上做到最好。这类似于一种优化问题，需要知道给定的约束条件，才能正确地求解。

就共识机制而言，前人的研究已经给出了两个重要的边界：

● Fischer-Lynch-Paterson 定理：它证明了在一个多进程的异步系统中，只要有一个进程不可靠，那么就不存在一个协议，此协议能保证有限时间内使所有进程达成一致；

● CAP 原理：分布式计算系统不可能同时确保一致性（Consistency）、可用性（Availability）和分区容忍性（Partition tolerance），设计中往往需要弱化对某个特性的保证。

其中一致性是指系统中服务节点对于处理结果达成的一致；可用性是指在有限时间内，任何非失败节点都能应答请求；分区容忍性是指网络可能发生分区，使得节点之间的通信得不到保障。

科学家认为在分布式场景下达成完全一致性是不可能的，但是工程上的许多问题的解决，都在于如何进行合理地取舍，可以牺牲一部分代价来换取分布式场景的一致性。目前，基于区块链设计的各种共识机制的不同主要来源于以下两个方面：

第一、算法假设的条件不同。如 Paxos、Raft 等算法假设节点不会故意发送错误的消息，这是一个比较强的条件。在比特币使用的PoW共识机制的前提条件是并不预先知道系统内有多少记账的节点，而联盟链里常使用的 PBFT 等协议则假设节点需要许可。

第二、付出一些代价以换取一定程度的一致性。例如根据CAP原理，弱化可用性，在系统故障时拒绝服务，Paxos、Raft 等算法就是弱化了可用性来保证结果的一致性。再如比特币牺牲了一部分容错性（有可能出现分叉），但是保证了整个区块链系统在一定时限后的一致性。

算法当然不是万能的，它的边界决定了必须要引入一些其他的激励和约束机制来使得整个系统正常工作。在基于PoS（Proof of Stake，权益证明）的区块链项目中，创建新的区块并不需要消耗算力，而节点作恶也并没有什么惩罚；对于一个节点来说，利益最大化的选择是在多条链上同时挖矿，这会造成严重的分叉现象，一般需要针对这些情况引入额外的规则，如加入惩罚的协议等。

4.2 公有链的常用共识机制 就目前而言，公有链里的共识机制设计主要围绕去中心化和增强激励，目前的许多新型区块链体系，支持可插拔的共识机制模块，可以根据应用场景和需求，切换使用不同的共识机制。

保持主链的“唯一性”，对公有链来说至关重要，因为这是解决“双重支付”问题的关键：为了避免双重支付的出现，就应当获悉所有历史交易信息，以确保这笔交易与此前的历史不发生冲突。如何在双方信息不对称、不确定的环境下，使得交易仍可顺利进行，这就是“拜占庭将军问题”。

比特币的 PoW（Proof of Work，工作量证明）机制通过以下途径来解决拜占庭将军问题：

● 维持周期循环，保证节点步调一致：调整难度来保证网络一直需要花费10 分钟找到一个数学难题的解，并产生一个新区块。在这 10 分钟内，网络上的参与者发送交易信息并完成交易，最后才会广播区块信息，这样就杜绝了节点无限制、无规律地发送命令的状态。

● 通过算力竞赛，确保新区块由单个节点生成：比特币通过时间戳和电子签名，确保在某一个时间段内只有一个（或少数几个，这时属于分叉现象）节点可挖出新区块。

● 通过区块链，使用一个共同账本：比特币网络中的各个节点，在每个循环周期内是信息同步的。

论采取什么样的方式，只要保证时间统一、步调一致、单点广播、一个链条就能解决加密货币这种分布式系统的拜占庭将军问题。

PoS 作为另一种共识机制，矿工掌握的加密货币数量占比等于其挖出新区块的概率。这会导致首富账户的权力更大，有可能支配记账权，也会造成权益越来越中心化，但是 PoS 确实大大减少了挖矿的能源成本。长远来看，可能会有更多的币种向PoS方向发展。

除了以上两种比较常见的基本的主流共识机制，目前的公有链共识机制的创新点在于两者之间的混合，从而在保留去中心化特征的同时提高数据处理的效率。例如以 Decred 为代表的 PoW/PoS 混合共识：挖矿的过程和比特币类似，也需要完成一定量的工作量证明，但是在达成共识的环节有所区别，不同于比特币需要全网节点来验证区块，最终以最长的链为主链，混合机制引入PoS 投票来决定刚挖出的区块是否有效，大大提高了验证的速度。除此以外还有以 Hcash 为代表的 PoW/PoS 混合共识，结合双层链结构。将 PoW 难度分成两级，分别发布在两条链上，使得PoW矿工和PoS矿工都能参与系统共识并发挥作用。

4.3 联盟链的常用共识机制 联盟链更注重隐私、安全和监管，因此会加入更多的管控元素，采用类似于传统的拜占庭家族共识机制。联盟链相对于公有链而言，弱化了对于去中心化的强调，同时由于节点准入制，相当于已经赋予了节点一定的信任。

DPoS（Delegated Proof-of-Stake，股份授权证明）机制里有股票权的人是通过选举产生和更换的，而不是像 PoS 这样根据币的数量来产生的。它通过不同的策略，不定时地选中一小群节点，由这一小群节点做新区块的创建、验证，签名和互相监督，大幅减少了区块创建和确认所需要消耗的时间和算力成本。DPoS不需要太多的信任，所选的这些委托人不能改变交易的细节，如果节点存在试图作恶、提供的算力不稳定、计算机宕机等行为，公开的社区可以快速将他投票驱逐。

如果说 PoW 和 PoS 都是以经济模型为主解决共识问题，那么 PBFT （Practical Byzantine Fault Tolerance，实用拜占庭容错算法）就是以算法模型来解决共识，它不存在代币分发机制，能耗很低。过程可以简述为大家先投票选出领导者，领导者记账后，其他人投票通过。在 PBFT 算法中，可证明只要会出错的拜占庭节点小于系统全部数量的1/3，那么整个系统就可以正常工作。目前的改进算法方向大致包括使用 P2P 网络、动态调整节点的数量，减少协议使用的消息数量等。

联盟链的共识机制算法的创新也包括了例如 DPoS 和 PBFT 的混合，将DPoS的授权机制应用于PBFT中实现动态授权，已有研究证明这样的算法在最佳出块为 20 秒的时间间隔下，TPS 可以达到 10000-12000，时延控制在 100-200ms 之间。正是由于联盟链保留了部分的“中心化”，从而得到了交易速度增快，交易成本大幅降低的回报。

4.4 共识的成本 很显然，共识是需要成本的，公有链如PoW付出了大量的算力成本、硬件损耗时间和自然资源，以进行运算，求解一个不具实际意义的难题，来竞争记账权；而在联盟链上要达成共识，则如民主投票一样，需要经过一轮又一轮的磋商，交换意见，最后达成一致。如何降低民主的成本，如何用最少的磋商次数、最小的沟通成本达成共识是算法追求的目标，也是决定区块链这台机器是否跑得足够快的重要因素。

归根到底，我们应关注的是共识机制在代价与效果之间的平衡。区块链技术毕竟最终都需落地。对于企业而言，企业当然应该仔细思量自己的投入产出比，以决定是应该使用区块链技术，还是说存在成本更低的替代性方案。例如使用分布式数据库来解决企业之间的信息不对称性，对数据设置查看权限和加密等级来实现不可篡改，并配合一系列的管理办法，加上大部分场景里可能龙头企业并无太大的动机去实现数据篡改，并且有足够的动力去维护数据库，在这种情况下，设计得再复杂的共识机制也许并不如一个好的商业模式来的有效。

零知识证明
-----

零知识证明是一种基于概率的验证方式，验证内容包括“事实类陈述”和“关于个人知识的陈述”。验证者基于一定的随机性向证明者提出问题，如果都能给出正确回答，则说明证明者大概率拥有他所声称的“知识”。Zerocoin（零币协议）将零知识验证用于铸造零币和赎回零币的过程中，以隐藏一笔交易对应的发送方和接收方信息。Zerocash（零钞协议）采用更新颖的 zkSNARKs 技术，将需要验证的交易内容转换成证明两个多项式乘积相等，结合同态加密等技术在保护隐藏交易金额的同时进行交易验证。缺点在于若网络受到攻击，在网络上出现超发的零钞，人们无法发现这一情况或采取措施；Zerocoin 和Zerocash 均需要进行预先的“信任设置”，没有达到真正的“去信任”。英特尔SGX、zkSTARKs等新技术有可能解决上述问题，但仍需实践的检验。

6.1 零知识证明原理 零知识证明是一种加密方案，最初在20世纪80年代由MIT研究人员在论文中提出：“零知识协议是一方（证明方）可以向另一方（验证方）证明某事是真实的方法，除了这一具体陈述是真实的事实以外，不透露任何额外的信息。例如对于登录网站而言，在 Web 服务器上存储了客户密码的哈希值，为了验证客户实际上知道密码，目前大部分网站采用的方式是服务器对客户输入的密码进行哈希计算，并与已存结果对比，但是这种方式的弊病在于服务器在计算时就可以知道客户的原始密码，一旦服务器被攻击，用户的密码也就泄露了。如果能够实现零知识证明，那么就可以在不知道客户密码的前提下，进行客户登录的验证，即使服务器被攻击，由于并未存储客户明文密码，用户的账户还是安全的”。

基本的零知识证明协议是交互式的，需要验证方向证明方不断询问一系列有关其所掌握的“知识”问题，如果均能够给出正确回答，那么从概率上来讲，证明方的确很有可能知道其所声称的“知识”。例如某人声称知道一个数独难题的答案，一种零知识证明的方式是验证方随机指定这一次按列、按行还是按九宫格来检测，每次检测不需要看到数字摆的具体位置，只需要检测出来是否包含了1～9个数字即可，只要验证的次数足够多，那么可以大概率相信证明方是知道数独题目的解的。但是这样简单的方式还不能让人相信证明方和验证方均没有造假，在数独的案例中，两者有可能事先串通好，从而使得证明方在不知道答案的前提下通过验证。如果他们想让第三方信服，验证方必须也要证明自己每次的检测方案是随机的且自己没有和证明方串通。

由于第三方观察者难以验证交互式零知识证明的结果，因此当向多人证明某些内容时，需要付出额外的努力和成本。而非交互式的零知识证明顾名思义，不需要互动过程，避免了串通的可能性，但是可能会额外需要一些机器和程序来决定试验的序列：例如在数独的例子中，通过程序的方式来决定哪一次按行、哪一次按列来检测，但是这个试验序列必须保密，否则验证方预先知道了试验的序列就有可能利用这个信息提前准备，在并不知道真实“知识”的情况下通过验证。

零知识证明的内容可以概括为两类：“事实”类陈述：例如证明“一个特定的图可以进行三着色”，或者“一个数 N 是合数”；关于个人知识的陈述：例如“我知道这个特定图的染色方案”或者“我知道N的因式分解”。

但并不是所有的问题都有零知识证明的加密方案， Goldreich、Micali 和Wigderson给出了理论上存在零知识证明解的有效范围。他们发现对于复杂度为多项式级的决策问题（问题的答案仅为是/否），存在已知的零知识证明方案。只需要在这样的 NP 问题中找到想要证明的论述，并转化为三色问题的一个实例，那么就可以利用已有的协议实现零知识证明。由于三色问题属于 NPC\[1\]问题，任何其他的NP问题都可以转化为这个问题的实例。

6.2 区块链中的零知识证明应用 在区块链上的交易中，如比特币和以太坊网络，除了使用地址来替换交易双方的真实身份，使得交易具有部分匿名性以外，发送、接收地址和金额都是已知的，别人有可能通过网络上的各种信息和现实世界发生的交互记录等，将比特币地址和真实身份对应起来，也因此具有隐私暴露的隐患。Zerocoin 设计了一种全新的思路，无法通过交易历史分析来获得用户真实身份。Zerocoin 里需要消耗一定价值的要交易的货币，以生成具有独特序列号的一枚零币。零知识证明可以在不透露花费了具体哪个货币的基础上，验证出你的确花了这笔钱。为了将这笔钱转给他人，逻辑上需要使这枚零币不能再被别人花费，零币的办法是大家共同维护一个作废列表，存着所有已经花费的零币的序列号。矿工在验证这笔花费交易时，运用零知识证明的方法，不需要知道具体花掉哪一个零币，也可以验证零币的序列号是否在作废列表里。由于花费交易并没有输入地址和签名的信息，在整个交易过程中，矿工也并不知道这个零币的来源，因此也就难以对交易历史进行分析而获取用户身份。

在零币里，交易的金额是可以知道的，而采用 zkSNARKs 技术的 Zerocash连交易金额都可以隐匿，账本唯一公开记录的内容就是交易的存在性。可以证明对于 NP 中的所有问题存在 zkSNARKs。它引入了多项创新技术，使它们可以在区块链中使用

最重要的是，zkSNARKs 减少了证明的大小和验证它们所需的计算量。它的过程可以简述如下。

（1）将要验证的程序拆解成一个个逻辑上的验证步骤，将这些逻辑上的步骤拆解成由加减乘除构成的算数电路。

（2）通过一系列的变换，将需要验证需要验证的程序转换成验证多项式乘积是相等的，如证明t（x）h（x）=w（x）v（x）。

（3）为了使得证明更加简洁，验证者预先随机选择几个检查点 s，检查在这几个点上的等式是否成立。

（4）通过同态编码/加密的方式使得验证者在计算等式时，不知道实际的输入数值，但是仍能进行验证。

（5）在等式左右两边可以同时乘上一个不为 0 的保密的数值 k，则在验证t（s）h（s）k等于w（s）v（s）k时，就无法知道具体的t（s）、h（s）、w（s）和v（s） ，因此可以保护信息安全。

不同于Zerocoin的密码学原语RSA累加器，zkSNARKs技术较新，未经广泛验证，存在风险，同时由于更强的匿名性， Zerocash 的漏洞更难发现，和Zerocoin 相比，Zerocash 由于交易金额信息也是未知的，所以如果有攻击者无限制地发行零钞，这样的情况是无法检测的。

除此以外，Zerocoin 和 Zerocash 均需要提前内置生成参数，用户在使用这些网络的时候，必须信任这些参数没有被泄露，但是一旦这些参数被泄露，整个网络将面临毁灭性打击。复杂的信任设置使得 Zerocash 存在争议，即使他们设计了一套“仪式”（例如录下砸坏存有密钥计算机的过程）来证明自己的安全性。

可能的解决办法包括利用像英特尔 SGX 和 ARM TrustZone 这样的现代“可信执行环境”。就英特尔的 SGX 技术而言，即使应用程序、操作系统、BIOS 或 VMM 遭到了破坏，私钥也是安全的。除此以外，最新提出的zkSTARKs技术不需要进行信任设置。

根据 zkSTARKs 白皮书中所述，zkSTARKs 是首次实现可以不依赖任何信任设置来完成区块链验证，同时计算速度随着计算数据量的增加，而指数级加速的系统。它不依赖公钥密码系统，更简单的假设使得它理论上更安全，因为它唯一的加密假设是散列函数（如 SHA2）是不可预测的（这一假设也是比特币挖掘稳定性的基础），因此也使其具有抗量子性。作为一种新颖的技术，和zkSTARKs一样，它也需要经过时间的检验。

![](https://storage.googleapis.com/papyrus_images/cc01e30f2e79ab869584d20f3180791558393225d91fba025d7eed826f30da50.png)

*   交易示例 以一笔虚构的交易为例。假如1枚比特币与10枚以太币的价值等同，发送者（Sender）手上拥有 1.1 枚比特币，希望购买接收者（Receiver）提供的价值10 枚以太币的服务。则发送者可以联系一个同时具有比特币地址与以太坊地址的连接方（Connector），并协商好代币转换的手续费为 0.1 枚比特币。那么交易的流程如图7-2所示（方案一）：
    
*     
    

![](https://storage.googleapis.com/papyrus_images/36b47afe08b6529a6ba1e608d79a1ebe904c4a83da017845051af89e7338f9fd.png)

在这一过程里，风险较高的是传输 1.1 枚比特币的步骤：连接方有可能在收取 1.1 枚比特币后马上退出交易，使得发送方利益受损。合理的方案是把比特币的交付延后处理。当以太币实现交付后，再进行比特币交付，交易风险即转移至连接方（方案二）。

为了同时保障连接方的利益，需解决的问题是确保接收方在获得10枚以太币的同时，发送方的 1.1 枚比特币也送往连接方，两个事件需要同时发生。这实际上是交易“原子性”的体现：要么款项完全实现转移，要么款项完全未转移，不存在中间的状态。这一问题由预共享密钥（Pre-Shared Key，PSK）技术解决。

如果把 1.1 枚比特币看作一个交易包，10 枚以太币看作另一个交易包，在PSK技术中，这两个交易包都由同一个密钥启动，从而实现“两者同时发生”。

发送方预先由加密算法得到一个密钥，把密钥发送给接收者，把相关信息发给连接方。同时，发送方将自己的 1.1 枚比特币锁定在交易包 1 里，需要密钥才能转移款项。

连接方通过发送方给出的信息，制作一个包含10枚以太币的交易包2并发给接收者。当接收者用密钥打开交易包2时，接收者获得10枚以太币，同时密钥也被发送给连接接方，连接方可以使用该密钥获得交易包 1 里的 1.1 枚比特币。这样一来就实现了代币之间的互换。

为避免款项锁定时间过长，交易包1、2均需约定限制时间，超出时间后，款项即解锁、返回原地址，这就是时间锁（Timelock）功能。而上文提到的预共享密钥则使用了哈希加密（Hashed），因此该技术方案被称为哈希时间锁协议（Hashed-Timelock Agreements）。

7.3 局限性 这一技术依然存在一定的局限性：

（1）连接方需承担一定的风险。在 PSK 技术中，连接方需向交易包 1 注入密钥才能获得比特币，也就是比特币和以太币的交付并非完全在同一时间发生。由于两个币种的交付均约定了限制时间，若交易包 2 的限制时间大于交易包1，有可能使得接收者获取10个以太坊后，连接方无法收回应得的1.1枚比特币，而蒙受损失。这一风险可通过设定交易包 1 的限制时间总大于交易包2来避免（图7-3）

\*

![](https://storage.googleapis.com/papyrus_images/93bddba45200094677bfe82ffabdbaac8923eca87657a455685c96e13907194f.png)

2）对于不支持哈希时间锁技术的区块链项目，只能通过另外的账本平台进行上述过程。额外的记账平台可保存代币之间转移的交易记录。然而由于记账平台本身不发生代币的转移，本质上记录的是赊账、借账的信息，需交易双方之间相互具备充足的信任度，交易才可进行。而通过账本平台，只要保证双方具备信任基础，非区块链的资产亦可通过这一记账方式进行交换。

本质上，不同资产之间的交易、流转，只需提供信任基础（产生联系），保证交易的原子性（资产交割），即可进行。而在哈希时间锁协议中，代币的锁定实现了资产质押，为交易提供了信任基础。而密钥的传递，则保证了交易的原子性。同时时间锁的引入，避免了交易时间过长而造成的纠纷或意外。除区块链项目外，这一模式可应用到不同资产类别的流转中。

哈希时间锁协议技术已由 Ripple Interledger 项目基本实现，在可运行智能合约的区块链项目中，币与币交易的落地或将逐渐变得普遍。这一技术提供了一种区块链项目生态的可能性：如BTC等主流区块链项目作为主结算系统，而其他应用项目针对性地解决用户的不同需求。当用户享受服务、进行结算时，使用代币互换技术进行支付。这样一来，主流项目传递价值；应用项目面向细分需求，同时为主流项目分摊服务压力；用户各取所需。最终将构建起一张全球共用的可信任的结算网络，在此基础上运行一切去中心化的应用，真正实现丰富的区块链应用生态。

*   \[1\] [https://bitcointalk.org/index.php?topic=193281.msg2224949#msg2224949](https://bitcointalk.org/index.php?topic=193281.msg2224949#msg2224949)
    

分片技术

*   数据分片的概念 传统概念里的分片技术是将数据库分割成多个碎片并放置在不同的服务器上。在现代的云服务中，数据常常被托管在不同站点并进行分区。这一做法的原因包括使多台计算机之间的负载平衡，进而提高可扩展性；通过多站点存储数据，来提高可用性等。
    

而区块链分片技术则是基于数据库分片概念的一种扩容技术。

无论在区块链领域，还是数据库领域，分片时要进行的第一步工作都是提取数据的关键特征值，并将关键特征值按照一定的规则来划分给不同的碎片进行处理。关键特征值的选择非常重要，它关系着数据的唯一性保障以及分片的效果。关于特征值的选取方法，一个言简意赅的标准：“以你所认为的基本数据模式为标准”。因此在区块链项目中经常可以看到分片的依据是用户的私钥/账户地址等，因为这些值是唯一的且不随时间改变的，分片时逻辑比较清晰。

8.2 传统数据库的分片方式 传统数据库的分片主要有三种方式：

（1）哈希运算后取模：例如规定全网络划分为 3 个分片，则将数据经过哈希运算后用 3 求模，根据结果分配至特定的碎片，此种策略的目的是减少分片负载不均衡的发生，因为哈希函数计算出来的结果毫无规律，也就打破了因为一些关键特征值和负载的量相关的情况，因此数据更有可能均匀分散于各个分片之间。一个反例则是，如果数据的关键特征值是注册时间顺序的话，刚注册的数据更为活跃，则有可能会把它们都分到某一个分片里。但是这一方法的缺点在于如果有新的分片加入，重新平衡分片比较困难；其优点则在于不需要额外维护状态信息。

（2）一致性哈希：无虚拟节点的一致性哈希方式是指数据按照特征值映射到首尾相连的哈希环上，同时也将节点按照一定规则映射上去，数据顺时针找到的第一个节点为其所存储的节点。有虚拟节点的一致性哈希和此类似，不过是将虚拟节点映射到哈希环上，因此，一个实际的物理节点可以占据哈希环上的多个范围。此种方法需要维护状态信息，也就是数据具体被分到哪个节点了，但是优点在于如果碎片的数目需要增加，则重新平衡分片更为容易。但是分片状态信息的维护需要考虑一致性问题，较为复杂。

（3）人为划分区间：按照关键特征值划分成不同区间，每个节点对应一个或多个区间，类似一致性哈希的方式，也需要维护状态信息。

8.3 分片中的一致性挑战 在区块链技术中，需要有机制来知道哪个节点实现了哪个分片，在传统数据库系统中分片信息（即元数据，指哪些数据划分到了哪个碎片内）一般需要专门的服务器存储，有时为了减轻元数据服务器的压力，分布式系统会在其他节点缓存元数据。在区块链中的思路也大体一致，需要保证在节点之间缓存的元数据的一致性，或者引入一个类似的主服务器来保证性能，但这些方案都需面对数据一致性的挑战。

多个副本的一致性、可用性是 CAP 理论讨论的范畴，主要有两种可用的方案。

第一种是主从同步，首先选出主服务器，只有主服务器提供对外服务，主服务器将元数据的更新信息以日志的方式存至某个共享的存储空间，然后从服务器从共享存储空间读取日志并应用，达到与主服务器一致的状态，如果主服务器被检测到故障，那么会重新选出新的主服务器。

在网络分割的情况下，有可能出现大家认为原来的主服务器已经宕机了，就选举出新的主服务器，但是原来的主服务器还在继续提供服务的“双主”现象。为了解决这种问题，需要想办法把旧的主服务器隔离，使其不能正常对外提供服务。为了保证元数据的强一致性，在准备进行切换的时候，新的主服务器必须要在确认元数据完全同步之后，才能继续对外提供服务。

为了达到这个目的，一种方式是当元数据变化时，立即通知所有的缓存服务器，并锁定数据，如果系统要完成的任务需要多个碎片里同时对状态进行更新，那么在更新完成之前，访问将被拒绝。另一种在高度可扩展的NoSQL数据库中经常实现的复制数据之间保持高度一致性的方法是使用读写仲裁和版本控制。这种方法避免了锁定数据，代价是读取和写入数据的过程中会带来额外的复杂度。

第二种方式是通过分布式一致性协议来达到多个副本件的一致，如 Paxos和Raft协议，协议可以实现所有备份均提供对外服务，并且保证强一致性。

在区块链网络中，根据对象的不同，技术可分为状态分片、交易分片和网络分片。其中，网络分片采用较多的技术方案。

区块链的状态分片是指每个节点只存储了一部分的区块链状态信息，需要解决的一致性问题与上述类似。

而交易分片的实现更为简单。在基于账户的区块链系统中，每一笔交易将会有一个发送者的地址，然后系统可以根据发送者的地址分配一个碎片。这确保了两笔双花交易将在相同的碎片中得到验证，因此系统可以很容易地检测到双花交易，而不需要进行任何跨碎片的通信。如果节点是确定的，那么几乎不存在上述讨论的元数据的更新带来的问题。但是如果交易验证时涉及跨碎片之间的通信，通常成本很高，将影响网络的吞吐量和经济效益。

区块链的网络分片指将矿工划分成几个组，同时验证交易，提高系统并行处理交易的能力。通常可以通过定期以随机数生成来决定选取达成共识的节点，将其映射到已经编好号的分片中。但是如果有节点宕机，重新分配节点时，就需要在分片之间形成一致性共识。

值得注意的是，在区块链中采用网络分片技术，也就是将矿工分成几个子网络分别负责验证该碎片上的交易，需要保证恶意节点的数目足够小，因此在分配矿工的规则上注意保证随机性。

总结：

分片技术的关键在于由于每个片区里的数据是分开更新的，在设计应用逻辑时，必须确保在平衡效率的前提下，对信息进行成功更新，同时也需要预留出一定的鲁棒性，来应对达成最终一致性过程中可能出现的问题。在区块链中应用分片技术，还需要考虑的问题是对各种攻击如女巫攻击、DDOS 攻击、双花攻击的防御，需要在权衡效率的同时，保证每个分片内的总节点数目足够多，并且诚实的节点占大多数，分片技术对安全性要求极高，同时，区块链系统中的节点数目比传统数据库中的可能要多，并且面临带宽的限制，需要充分考虑到延迟带来的不一致性导致的性能和安全性问题，因此很少有落地的相关项目。需要在大规模的网络中进行长时间的测试验证，并结合严谨的理论方案证明，才能令人信服。

---

*Originally published on [leaf](https://paragraph.com/@leaf-6/v)*
