This is a read note of Blockchain Guide.

1 Genesis

2009, bitcoin. 2015, Ethereum and Hyperledger, ICO. 2020, DAO collaboration? 以区块链为基础的分布式账本科技则可能解决传递可信信息的问题.

Tech

  • David Chaum: e-cash, 1983
  • Adam Back: HashCash, 1997
  • Wei Dai and Nick Szabo: B-money and Bit Gold, 1998
  • P2P: 1999

Genesis: 2008 年 10 月 31 日(东部时间),星期五下午 2 点 10 分,化名 Satoshi Nakamoto(中本聪)的人在 metzdowd 密码学邮件列表 中提出了比特币(Bitcoin)的设计白皮书《Bitcoin: A Peer-to-Peer Electronic Cash System》,并在 2009 年公开了最初的实现代码。首个比特币是 UTC 时间 2009 年 1 月 3 日 18:15:05 生成。

比特币使用区块链、货币发行协议和基于工作量的共识技术,首次真正从实践意义上实现了安全可靠的非中心化数字货币机制。比特币网络上线以来,在无人管理的情况下,已经在全球范围内无间断地运行了 10 年时间,成功处理了千万笔交易,最大单笔支付超过 1.5 亿美金。难得的是,比特币网络从未出现过重大的系统故障。

从技术角度,一般认为,区块链具有如下特点:

  • 分布式容错性:分布式账本网络极其鲁棒,能够容忍部分节点的异常状态;
  • 不可篡改性:共识提交后的数据会一直存在,不可被销毁或修改;
  • 隐私保护性:密码学保证了数据隐私,即便数据泄露,也无法解析。

随之带来的业务特性将可能包括:

  • 可信任性:区块链技术可以提供天然可信的分布式账本平台,不需要额外第三方中介机构参与;
  • 降低成本:跟传统技术相比,区块链技术可能通过自动化合约执行带来更快的交易,同时降低维护成本;
  • 增强安全:区块链技术将有利于安全、可靠的审计管理和账目清算,减少犯罪风险。

所有跟信息、价值(包括货币、证券、专利、版权、数字商品、实际物品等)、信用等相关的交换过程,都将可能从区块链技术中得到启发或直接受益。

2 Technology

2.1 Basics

狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求。广义上,区块链还指代基于区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。

区块链包括三个层级的数据结构:

  • 交易(Transaction):一次对账本的操作,导致账本状态的一次改变,如添加一条转账记录;
  • 区块(Block):记录一段时间内发生的所有交易和状态结果等,是对当前账本状态的一次共识;
  • 链(Chain):由区块按照发生顺序串联而成,是整个账本状态变化的日志记录。这个账本只允许添加、不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成(如下图所示),后继区块中记录前导区块的哈希(Hash)值。某个区块(以及块里的交易)是否合法,可通过计算哈希值的方式进行快速检验。网络中节点可以提议添加一个新的区块,但必须经过共识机制来对区块达成确认。

首先,用户通过比特币客户端发起一项交易,消息广播到比特币网络中等待确认。网络中的节点会将收到的等待确认的交易请求打包在一起,添加上前一个区块头部的哈希值等信息,组成一个区块结构。然后,试图找到一个 nonce 串(随机串)放到区块里,使得区块结构的哈希结果满足一定条件(比如小于某个值)。这个计算 nonce 串的过程,即俗称的“挖矿”。nonce 串的查找需要花费一定的计算力。

一旦节点找到了满足条件的 nonce 串,这个区块在格式上就“合法”了,成为候选区块。节点将其在网络中广播出去。其它节点收到候选区块后进行验证,发现确实合法,就承认这个区块是一个新的合法区块,并添加到自己维护的本地区块链结构上。当大部分节点都接受了该区块后,意味着区块被网络接受,区块中所包括的交易也就得到确认。

比特币区块链面向转账场景,支持简单的脚本计算。很自然想到如果引入更多复杂的计算逻辑,将能支持更多应用场景,这就是智能合约(Smart Contract)。智能合约可以提供除了货币交易功能外更灵活的功能,执行更为复杂的操作。引入智能合约后的区块链,已经超越了单纯的数据记录功能,实际上带有点“智能计算”的意味了;更进一步地,还可以为区块链加入权限管理、高级编程语言支持等,实现更强大的、支持更多商用场景的分布式账本系统。

根据参与者的不同,可以分为公有(Public 或 Permissionless)链、联盟(Consortium 或 Permissioned)链。联盟链由若干组织一起合作(如供应链机构或银行联盟等)维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,典型如超级账本项目。在架构上,现有大部分区块链在实现都至少包括了网络层、共识层、智能合约和应用层等分层结构,联盟链实现往还会引入额外的权限管理机制。

根据使用目的和场景的不同,又可以分为以数字货币为目的的货币链,以记录产权为目的的产权链,以众筹为目的的众筹链等,也有不局限特定应用场景的所谓通用链。通用链因为要兼顾不同场景下的应用特点,在设计上需要考虑更加全面。

2.2 挑战

数据的隐私性需求要求严格控制数据的来源、所有权和使用范围,传统手段很难满足这些特性,需要有机结合零知识证明、同态加密等新的密码学手段。而这些新技术在实际应用中还存在不少问题。

共识是分布式系统领域经典的技术难题,学术界和业界都已有大量的研究成果(包括 Paxos、拜占庭系列算法等)。 问题的核心在于确保某个变更在分布式网络中得到一致的执行结果,是被参与多方都承认的,同时这个信息是不可推翻的。该问题在公开匿名场景下和带权限管理的场景下需求差异较大,从而导致了基于概率的算法和确定性算法两类思想。最初,比特币区块链考虑的是公开匿名场景下的最坏保证。通过引入了“工作量证明”(Proof of Work)策略来规避少数人的恶意行为,并通过概率模型保证最后参与方共识到最长链。算法的核心思想是基于经济利益的博弈,让恶意破坏的参与者损失经济利益,从而保证大部分人的合作。同时,确认必须经过多个区块的生成之后达成,从概率上进行保证。这类算法的主要问题在于效率的低下和能源的浪费。类似地,还有以权益为抵押的 PoS 和 DPoS 算法等。后来更多的区块链技术(如超级账本)在带权限许可的场景下,开始考虑支持更多的确定性的共识机制,包括经典的拜占庭算法等,可以解决快速确认的问题。 共识问题在很长一段时间内都将是极具学术价值的研究热点,核心的指标将包括容错的节点比例、决策收敛速度、出错后的恢复、动态特性等。PoW 等基于概率的系列算法理论上允许少于一半的不合作节点,PBFT 等确定性算法理论上则允许不超过 1/3 的不合作节点。

交易性能包括吞吐量和确认延迟两个方面。目前,公开的比特币区块链只能支持平均每秒约 7 笔的吞吐量,安全的交易确认时间为一个小时左右。以太坊区块链的吞吐量略高一些能到几十笔每秒,但交易性能也被认为是较大的瓶颈。可将交易处理卸载(off-load)到链下。只用区块链记录最终交易信息,如比特币社区提出的 闪电网络 等设计。类似地,侧链(side chain)、影子链(shadow chain)等思路在当前阶段也有一定的借鉴意义。类似设计可将整体性能提升 1~2 个数量级。联盟链场景下,参与多方存在一定的信任前提和利益约束,可以采取更优化的设计,换来性能的提升。目前开源区块链系统已经可以满足不少应用场景的性能需求,但离大规模交易系统每秒稳定数万笔的吞吐性能还有较大差距。据公开的数据,VISA 系统的处理均值为 2,000 tps,峰值为 56,000 tps;某金融支付系统的处理峰值超过了 85,000 tps;某大型证券交易所号称的处理均(峰)值在 80,000 tps 左右。

扩展性对于区块链网络系统来说,跟传统分布式系统不同,这个问题往往并非那么简单。实际上,大部分区块链系统的性能,很大程度上取决于单个节点的处理能力。对这些系统来说,节点需要满足 高性能、安全、稳定、硬件辅助加解密能力。要解决这个问题,根本上是放松对每个节点都必须参与完整处理的限制(当然,网络中节点要能合作完成完整的处理),这个思路已经在超级账本等项目中得到应用;同时尽量减少核心层的处理工作,甚至采用多层处理结构来分散交易。在联盟链模式下,还可以专门采用高性能的节点作为核心节点,用相对较弱的节点作为代理访问节点。另外,未来必然会涉及到不同账本之间互通的需求(跨链)。目前无论是基于公证人(Notary)、侧链/中继链锚定(Sidechains / Relays)还是哈希锁定(Hash-locking)机制,在实践中仍存在一些不足。

安全防护是最敏感也是挑战最大的问题。作为分布式系统,区块链首先要考虑传统的网络安全(认证、过滤、攻防)、信息安全(密码配置、密钥管理)、管理安全(审计、风险分析控制)等问题。其次,尤其要注意新场景下凸显的安全挑战。首先是立法。其次是代码实现的漏洞管理。另外,公有区块链所有交易记录都是公开可见的,这意味着所有的交易,即便被匿名化和加密处理,但总会在未来某天被破解。安全界一般认为,只要物理上可接触就不是彻底的安全。实际上,已有文献证明,比特币区块链的交易记录大部分都能追踪到真实用户。公有链普遍缺乏有效的治理和调整机制,一旦运行中出现问题难以及时修正。即使是有人提交了修正补丁,只要有部分既得利益者联合起来反对,就无法得到实施。比特币社区已经出现过多次类似的争论。最后,运行在区块链上的智能合约应用五花八门,可能存在潜在的漏洞,必须要有办法进行安全管控,在注册和运行前进行形式化验证和安全探测,以规避恶意代码的破坏。运行智能合约的环境也会成为攻击的目标。近些年区块链领域的安全事件大都跟智能合约漏洞有关。

数据库和存储系统。观察区块链的应用,大量的读写操作、Hash 计算和验证操作,跟传统数据库的行为十分不同。LevelDB、RocksDB 等键值数据库,具备很高的随机写和顺序读、写性能,以及相对较差的随机读的性能,被广泛应用到了区块链信息存储中。但目前来看,面向区块链的数据库技术仍然是需要突破的技术难点之一,特别是如何支持更丰富语义的操作。正如此前预测,目前已经出现了引入区块链特性的“账本数据库”,包括甲骨文和亚马逊等产品。它们通过签名来防抵赖,并追溯数据修改历史,提供审计功能。此外,在高吞吐量的场景下,本地账本结构会快速累积大量数据。这些数据的保存、索引、清理,发生故障后的恢复,新加入节点的数据获取等,都是值得探索的开放问题。

互操作和运营治理。两种系统如何共存,如何分工,彼此的业务交易如何进行合理传递?出现故障如何排查和隔离?已有数据如何在不同系统之间进行迁移和灾备?

2.3 趋势

2018 年 3 月,国际银行间金融电信协会(The Society for Worldwide Interbank Financial Telecommunication,SWIFT)基于超级账本项目经过一年多的成功验证,宣布认可分布式账本技术可满足银行间实时交易,同时遵守监管的报告要求。

相关标准化组织也在积极从标准和规范角度探讨如何使用分布式账本。包括:

  • 国际电信联盟电信标准化组织(International Telecommunication Union Telecommunication Standardization Sector,ITU-T)自 2016 年起发起 3 个工作小组(SG16,17,20)来分别进行分布式账本整体需求、分布式账本安全需求和分布式账本在物联网领域应用等方面的研究;
  • 国际标准化组织(International Organization for Standardization,ISO)成立 5 个课题组,探讨制定关于分布式账本架构、应用、安全保护、身份管理和智能合约方面的相关规范;
  • 电气电子工程师协会(IEEE)成立 P2418.2 项目,探讨区块链系统数据格式标准;
  • 国际互联网工程任务组(Internet Engineering Task Force,IETF)成立了 Decentralized Internet Infrastructure Proposed RG (dinrg)。该研究组将集中在非中心化架构服务中的信任管理、身份管理、命名和资源发现等问题;
  • 万维网联盟(World Wide Web Consortium,W3C)成立了三个相关的研究小组,分别探讨区块链技术和应用;数字资产管理规范以及跨账本互联协议等。

3 应用

3.1 场景与行业

需要思考区块链解决方案的合理边界。面向大众消费者的区块链应用需要做到公开、透明、可审计,既可以部署在无边界的公有链,也可以部署在应用生态内多中心节点共同维护的区块链;面向企业内部或多个企业间的商业区块链场景,则可将区块链的维护节点和可见性限制在联盟内部,并用智能合约重点解决联盟成员间信任或信息不对等问题,以提高经济活动效率。

  • 区块链在不引入第三方中介机构的前提下,可以提供去中心化、不可篡改、安全可靠等特性保证。因此,所有直接或间接依赖于第三方担保机构的活动,均可能从区块链技术中获益。
  • 区块链自身维护着一个按时间顺序持续增长、不可篡改的数据记录,当现实或数字世界中的资产可以生成数字摘要时,区块链便成为确权类应用的完美载体,提供包含所属权和时间戳的数字证据。
  • 可编程的智能合约使得在区块链上登记的资产可以获得在现实世界中难以提供的流动性,并能够保证合约规则的透明和不可篡改。这就为区块链上诞生更多创新的经济活动提供了土壤,为社会资源价值提供更加高效且安全的流动渠道。

适用的行业各有不同的特点,但或多或少都需要第三方担保机构的参与,因此都可能从区块链技术中获得益处。

  • 金融服务:区块链带来的潜在优势包括降低交易成本、减少跨组织交易风险等。该领域的区块链应用目前最受关注,全球不少银行和金融交易机构都是主力推动者。
  • 征信和权属管理:征信和权属的数字化管理是大型社交平台和保险公司都梦寐以求的。
  • 资源共享:以 Airbnb 为代表的分享经济公司将欢迎去中心化应用,可以降低管理成本。
  • 贸易管理:区块链技术可以帮助自动化国际贸易和物流供应链领域中繁琐的手续和流程。
  • 物联网:物联网也是很适合应用区块链技术的一个领域,预计未来几年内会有大量应用出现,特别是租赁、物流等特定场景,都是很合适结合区块链技术的场景。

3.2 金融服务

金融包括货币、证券、保险、抵押、募资、捐赠等诸多行业。金融交易本质上交换的是价值的所属权。为了完成一些贵重资产(例如房产、车辆)的交易,往往需要依靠中介和担保机构,不仅过程繁琐,而且手续费用高昂。之所以需要第三方机构介入,是因为交易双方无法充分信任对方提供的信息。一方面,证明所属权只能通过相关机构开具的证明材料,存在造假风险;另一方面,交换过程手续繁琐,存在篡改和错误的风险。区块链技术可以为金融服务提供有效、可信的所属权证明,以及相当可靠的合约确保机制。

  • 数字货币:银行活动主要包括发行货币、完成存贷款等功能。为了保障货币价值稳定,发行机构必须能时时刻刻保证交易的可靠性和确定性。为了做到这一点,传统的金融系统设计了复杂的安全流程,采用了极为复杂的软件和硬件方案,其建设和维护成本都十分昂贵。即便如此,这些系统仍然存在诸多缺陷,每年都会出现安全攻击和金融欺诈事件。此外,交易过程还常常需要经由额外的支付企业进行处理。这些实际上都增大了交易成本。以区块链技术为基础的数字货币的出现,对货币的研究和实践都提出了新的启发,被认为有可能促使这一领域发生革命性变化。2016 年 6 月,加拿大央行公开正在开发基于区块链技术的数字版加拿大元(名称为 CAD 币),以允许用户使用加元来兑换该数字货币。经过验证的对手方将会处理货币交易;另外,如果需要,银行将保留销毁 CAD 币的权利。英国央行(英格兰银行)在数字货币方面进展十分突出,已经实现了基于分布式账本平台的数字货币原型系统——RSCoin。
  • 支付清结算业务:但当资金的清算涉及到多个交易主体和多个认证环节时效率仍然不高,特别涉及到跨境多方交易等场景时。区块链技术在处理交易时即确保了交易记录的不可篡改性和对交易结果的有效确认,有望节约清结算的人力和时间成本,降低机构间的争议,提高自动化处理效率。2018 年 3 月,环球同业银行金融电讯协会(SWIFT)完成了涉及到 34 家银行的分布式账本验证。2018 年 8 月,IBM 推出了基于区块链的全球支付解决方案 —— WorldWire。新的支付清算系统包括:
    • Abra:区块链数字钱包,以近乎实时的速度进行跨境支付,无需银行账户,实现不同币种的兑换,融资超过千万美金。
    • Bitfinex:组建 Tether Limited 公司来发行稳定币 USDT,作为最流行的稳定币,市值超过 10 亿美金。稳定币通过绑定代币到法定货币以保障价格的稳定性。如果抵押过程公开并支持审计,则可以降低用户因为代币价格波动带来的风险。
    • Bitwage:基于比特币区块链的跨境工资支付平台,可以实现每小时的工资支付,方便跨国企业进行外包工资管理。
    • BitPOS:澳大利亚创业企业,提供基于比特币的低成本的快捷线上支付,适用于餐饮行业。
    • Circle:由区块链充当支付网络,允许用户进行跨币种、跨境的快速汇款。
    • Circle 获得了来自 IDG、百度的超过 6000 万美金的 D 轮投资。2018 年 9 月,Circle 推出了稳定币 USDC,上市 2 个月,USDC 的市值已达到 2 亿美元。
    • Ripple:实现跨境的多币种、低成本、实时交易,引入了网关概念(类似银行),结构偏中心化,可以与银行等金融机构合作完成跨境支付。
  • 证券交易的前、后处理:
    • 2015 年 10 月,美国纳斯达克(Nasdaq)证券交易所推出区块链平台 Nasdaq Linq,实现主要面向一级市场的股票交易流程。通过该平台进行股票发行的发行者将享有“数字化”的所有权。
    • BitShare 推出基于区块链的证券发行平台,号称每秒达到 10 万笔交易。
    • DAH 为金融市场交易提供基于区块链的交易系统。获得澳洲证交所项目。
    • Symbiont 帮助金融企业创建存储于区块链的智能债券,当条件符合时,清算立即执行。
    • Overstock.com 推出基于区块链的私有和公开股权交易“T0”平台,提出“交易即结算”(The trade is the settlement)的理念,主要目标是建立证券交易实时清算结算的全新系统。
    • 高盛为一种叫做“SETLcoin”的数字货币申请专利,用于为股票和债券等资产交易提供“近乎立即执行和结算”的服务。
  • 供应链金融:供应链金融是一种重要的融资模式。传统上一般由银行基于真实贸易,以核心企业信用为担保来连接上下游企业。供应链金融可为供应链上的企业提供自偿性融资,有助于缓解小微企业融资难的问题,增强供应链活力。供应链金融的业务特点(中小企业风险高、风险关联、关联企业多、票据低效),使得其十分契合区块链的技术特点。区块链上数据都带有签名和时间戳,提供高度可靠的历史记录,可以有效降低银行对信息可靠性的疑虑,实现核心企业信用在链上的分割与流转。最终提高整个供应链的金融效率。供应链金融区块链平台主要以联盟链的形式打造,具有如下业务优势:
    • 时间戳设计保证债权拆分、流转后信用不变,整体流程完整可追溯;
    • 分布式数据存储打破信息不对称,防止信息篡改和造假;
    • 智能合约自动执行,减少人工干预,提高资金流通效率。
  • 众筹管理。区块链自身带来的多方信任合作机制,有望提高众筹的效率和安全性。该领域的尝试目前主要是“首次代币发行(Initial Coin Offering,ICO)”形式。ICO 设计思想十分简单。项目发起方通过售卖项目早期的数字资产(代币)向外界融资,投资者可以直接以比特币等形式参与。当项目上线后,如果能得以健康成长,项目代币价格上涨,投资者可以获得回报,并且可以选择任何时候卖出这些代币而无条件退出。各国开始加强监管,要么将其纳入已有监管体系,要么暂时禁止 ICO 活动。2017 年 8 月 28 日,美国证监会发布关于谨防 ICO 骗局的警告,后将 ICO 纳入证券监管;
    • 2014 年,比较出名的如比特股 Bitshares 和以太坊 Ethereum 先后发起 ICO,并且随着平台自身的发展,投资者获取了大量的回报。这些早期项目支持了区块链领域的初创企业,同时探索了新的众筹模式。
    • 2016 年 4 月 30 日上线的 DAO(Decentralized Autonomous Organization)项目,试图打造基于以太坊的众筹平台,更是一度创下历史最高的融资记录,数额超过 1.6 亿美金。
    • 2017 年开始,传统风投基金也开始尝试用 ICO 来募集资金。Blockchain Capital 在 2017 年发行的一支基金创新地采用了传统方式加 ICO 的混合方式进行募资。
    • 2018 年初 Telegram 通过两轮 ICO 共募集资金 17 亿美金,值得注意的是,在第二轮时已经明确限制最低投资门槛为 100 万美元。
  • 征信管理:保险和互助经济相关的应用场景。保险行业区块链倡议组织(Blockchain Insurance Industry Initiative,B3i)诞生于 2016 年下半年,面向保险行业,探索基于分布式账本的新型技术。

3.3 权属管理与溯源

区块链技术可以用于产权、版权等所有权的管理和追踪。其中包括汽车、房屋、艺术品等各种贵重物品的交易等,也包括数字出版物,以及可以标记的数字资源。目前权属管理领域存在的几个难题是:物品所有权的确认和管理;交易的安全性和可靠性保障;必要的隐私保护机制。

而利用区块链技术,物品的所有权是写在数字链上的,谁都无法修改。并且一旦出现合同中约定情况,区块链技术将确保合同能得到准确执行。这能有效减少传统情况下纠纷仲裁环节的人工干预和执行成本。例如,公正通(Factom)尝试使用区块链技术来革新商业社会和政府部门的数据管理和数据记录方式。包括审计系统、医疗信息记录、供应链管理、投票系统、财产契据、法律应用、金融系统等。它将待确权数据的指纹存放到基于区块链的分布式账本中,可以提供资产所有权的追踪服务。

区块链账本共享、信息可追踪溯源且不可篡改的特性同样可用于打击造假和防范欺诈。Everledger 自 2016 年起就研究基于区块链技术实现贵重资产检测系统,将钻石或者艺术品等的数字指纹信息(包括钻石超过 40 个数据点的颜色、清晰度、切割和重量等信息)记录在区块链上。并于 2017 年宣布与 IBM 合作,实现生产商、加工商、运送方、零售商等多方之间的可信高效协作。

应用案例:

  • 2018 年 2 月,麻省理工学院向应届毕业生颁发了首批基于区块链的数字学位证书。
  • Chronicled:基于区块链的球鞋鉴定方案,为正品球鞋添加电子标签,记录在区块链上。
  • Mediachain:通过 metadata 协议,将内容创造者与作品唯一对应。
  • Mycelia:区块链产权保护项目,为音乐人实现音乐的自由交易。
  • Tierion: 将用户数据锚定在比特币或以太坊区块链上,并生成“区块链收据”。
  • Ziggurat:基于区块链提供文字、图片、音视频版权资产的登记和管理服务。

3.4 资源共享

短租共享。社区能源共享。大数据共享。

电商平台。 传统情况下,电商平台起到了中介的作用。一旦买卖双方发生纠纷,电商平台会作为第三方机构进行仲裁。这种模式存在着周期长、缺乏公证、成本高等缺点。OpenBazaar 试图在无中介的情形下,实现安全电商交易。 具体地,OpenBazaar 提供的分布式电商平台,通过多方签名机制和信誉评分机制,让众多参与者合作进行评估,实现零成本解决纠纷问题。

减小共享风险。传统的资源共享平台在遇到经济纠纷时会充当调解和仲裁者的角色。对于区块链共享平台,目前还存在线下复杂交易难以数字化等问题。除了引入信誉评分、多方评估等机制,也有方案提出引入保险机制来对冲风险。 2016 年 7 月,德勤、Stratumn 和 LemonWay 共同推出一个为共享经济场景设计的“微保险”概念平台,称为 LenderBot。针对共享经济活动中临时交换资产可能产生的风险,LenderBot 允许用户在区块链上注册定制的微保险,并为共享的资产(如相机、手机、电脑)投保。区块链在其中扮演了可信第三方和条款执行者的角色。

3.5 物流与供应链

Gartner 一项调查显示,接近 60% 的物流相关企业计划考虑使用分布式账本技术。该行业往往涉及到诸多实体,包括物流、资金流、信息流等,这些实体之间存在大量复杂的协作和沟通。传统模式下,不同实体各自保存各自的供应链信息,严重缺乏透明度,造成了较高的时间成本和金钱成本,而且一旦出现问题(冒领、货物假冒等),难以追查和处理。

来自美国加州的 Skuchain 公司创建基于区块链的新型供应链解决方案,实现商品流与资金流的同步,同时缓解假货问题。017 年 3 月,马士基和 IBM 宣布,计划与由货运公司、货运代理商、海运承运商、港口和海关当局构成的物流网络合作,构建一个新型全球贸易数字化解决方案 TradeLens。2017 年 8 月,国际物流区块链联盟(Blockchain In Transport Alliance,BiTA)正式成立。

3.6 物联网

一种可能的应用场景为:物联网络中每一个设备分配地址,给该地址所关联一个账户,用户通过向账户中支付费用可以租借设备,以执行相关动作,从而达到租借物联网的应用。

典型的应用包括 PM2.5 监测点的数据获取、温度检测服务、服务器租赁、网络摄像头数据调用等等。另外,随着物联网设备的增多、边沿计算需求的增强,大量设备之间形成分布式自组织的管理模式,并且对容错性要求很高。区块链自身分布式和抗攻击的特点可以很好地融合到这一场景中。

美国的 Filament 公司以区块链为基础提出了一套去中心化的物联网软件堆栈。通过创建一个智能设备目录,Filament 的物联网设备可以进行安全沟通、执行智能合约以及发送小额交易。 基于上述技术,Filament 能够通过远程无线网络将辽阔范围内的工业基础设备沟通起来,其应用包括追踪自动售货机的存货和机器状态、检测铁轨的损耗、基于安全帽或救生衣的应急情况监测等。

现有的互联网能正常运行,离不开很多近乎免费的网络服务,例如域名服务(DNS)。任何人都可以免费查询到域名,没有 DNS,现在的各种网站将无法访问。因此,对于网络系统来说,类似的基础服务必须要能做到安全可靠,并且低成本。区块链技术恰好具备这些特点,基于区块链打造的分布式 DNS 系统,将减少错误的记录和查询,并且可以更加稳定可靠地提供服务。

3.7 其它场景

  • 云存储。 Storj 项目提供了基于区块链的安全的分布式云存储服务。服务保证只有用户自己能看到自己的数据,并号称提供高速的下载速度和 99.99999% 的高可用性。用户还可以“出租”自己的额外硬盘空间来获得报酬。
  • 医疗。医院与医保医药公司,不同医院之间,甚至医院里不同部门之间的数据流动性往往很差。考虑到医疗健康数据的敏感性,笔者认为,如果能够满足数据访问权、使用权等规定的基础上促进医疗数据的提取和流动,健康大数据行业将迎来春天。
  • 通信和社交。BitMessage 是一套去中心化通信系统,在点对点通信的基础上保护用户的匿名性和信息的隐私。BitMessage 协议在设计上充分参考了比特币,二者拥有相似的地址编码机制和消息传递机制。BitMessage 也用工作量证明(Proof-of-Work)机制防止通信网络受到大量垃圾信息的冲击。类似的,Twister 是一套去中心化的“微博”系统,Dot-Bit 是一套去中心化的 DNS 系统。
  • 投票。Follow My Vote 项目致力于提供一个安全、透明的在线投票系统。通过使用该系统进行选举投票,投票者可以随时检查自己选票的存在和正确性,看到实时记票结果,并在改变主意时修改选票。 该项目使用区块链进行记票,并开源其软件代码供社区用户审核。项目也为投票人身份认证、防止重复投票、投票隐私等难点问题提供了解决方案。
  • 在线音乐。Ujo 音乐平台通过使用智能合约来创建一个透明的、去中心化的版权和版权所有者数据库来进行音乐版权税费的自动支付。
  • 预测。Augur 是一个运行在以太坊上的预测市场平台。使用 Augur,来自全球不同地方的任何人都可发起自己的预测话题市场,或随意加入其它市场,来预测一些事件的发展结果。预测结果和奖金结算由智能合约严格控制,使得在平台上博弈的用户不用为安全性产生担忧。
  • 电子游戏。2017 年 3 月,来自马来西亚的电子游戏工作室 Xhai Studios 宣布将区块链技术引入其电子游戏平台。工作室旗下的一些游戏将支持与 NEM 区块链的代币 XEM 整合。通过这一平台,游戏开发者可以在游戏架构中直接调用支付功能,消除对第三方支付的依赖;玩家则可以自由地将 XEM 和游戏内货币、点数等进行双向兑换。
  • 存证。展开解释存证或版权案例 “纸贵版权” 引入公证处、版权局、知名高校作为版权存证联盟链的存证和监管节点,所有上链的版权存证信息都会经过多个节点的验证和监管,保证任何时刻均可出具具备国家承认的公证证明,具有最高司法效力。同时,通过在公证处部署联盟链存证节点服务器,存证主体即可视为公证处。在遭遇侵权行为时,区块链版权登记证书可作为证据证明版权归属,得到法院的采信。

4 Distributed System

Consistency:

  • 可终止性(Termination):一致的结果在有限时间内能完成。
  • 约同性(Agreement):不同节点最终完成决策的结果是相同的。
  • 合法性(Validity):决策的结果必须是某个节点提出的提案。

强一致性主要包括下面两类:

  • 顺序一致性(Sequential Consistency):又叫因果一致性,最早由 Leslie Lamport 1979 年经典论文《How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs》中提出,是一种比较强的约束。所有进程看到的全局执行顺序(total order)一致(否则数据副本就不一致了);并且每个进程看自身操作的顺序(local order)跟实际发生顺序一致。例如,某进程先执行 A,后执行 B,则实际得到的全局结果(其它进程也看到这个结果)中就应该为 A 在 B 前面,而不能反过来。如果另外一个进程先后执行了 C、D 操作,则全局顺序可以共识为 A、B、C、D 或 A、C、B、D 或 C、A、B、D 或 C、D、A、B 的一种(即 A、B 和 C、D 的组合),决不能出现 B、A 或 D、C。顺序一致性实际上限制了各进程内指令的偏序关系,但不在进程间按照物理时间进行全局排序,属于实践中可行的最强保证。以算盘为例,每个进程的事件是某根横轴上的算珠,它们可以前后拨动(改变不同进程之间先后顺序),但同一个横轴上的算珠的相对先后顺序无法改变。
  • 线性一致性(Linearizability Consistency):Maurice P. Herlihy 与 Jeannette M. Wing 在 1990 年经典论文《Linearizability: A Correctness Condition for Concurrent Objects》中共同提出,是一种更强的保证。在顺序一致性前提下加强了进程间的操作排序,形成理想化的全局顺序。线性一致性要求系统看起来似乎只有一个数据副本,客户端操作都是原子的,并且顺序执行;所有进程的操作似乎是实时同步的,并且跟实际发生顺序一致。例如某个客户端写入成功,则其它客户端将立刻看到最新的值。线性一致性下所有进程的所有事件似乎都处于同一个横轴,存在唯一的先后顺序。

相对强一致性,类似最终一致性这样在某些方面弱化的一致性,被笼统称为弱一致性。

共识特指在分布式系统中多个节点之间对某个事情(例如多个事务请求,先执行谁?)达成一致看法的过程。因此,达成某种共识并不意味着就保障了一致性。

一般地,把出现故障(Crash 或 Fail-stop,即不响应)但不会伪造信息的情况称为“非拜占庭错误(Non-Byzantine Fault)”或“故障错误(Crash Fault)”;伪造信息恶意响应的情况称为“拜占庭错误”(Byzantine Fault),对应节点为拜占庭节点。显然,后者场景中因为存在“捣乱者”更难达成共识。

根据解决的场景是否允许拜占庭错误情况,共识算法可以分为 Crash Fault Tolerance (CFT) 和 Byzantine Fault Tolerance(BFT)两类。

对于非拜占庭错误的情况,已经存在不少经典的算法,包括 Paxos(1990 年)、Raft(2014 年)及其变种等。这类容错算法往往性能比较好,处理较快,容忍不超过一半的故障节点。对于要能容忍拜占庭错误的情况,包括 PBFT(Practical Byzantine Fault Tolerance,1999 年)为代表的确定性系列算法、PoW(1997 年)为代表的概率算法等。确定性算法一旦达成共识就不可逆转,即共识是最终结果;而概率类算法的共识结果则是临时的,随着时间推移或某种强化,共识结果被推翻的概率越来越小,最终成为事实上结果。拜占庭类容错算法往往性能较差,容忍不超过 1/3 的故障节点。此外,XFT(Cross Fault Tolerance,2015 年)等最近提出的改进算法可以提供类似 CFT 的处理响应速度,并能在大多数节点正常工作时提供 BFT 保障。Algorand 算法(2017 年)基于 PBFT 进行改进,通过引入可验证随机函数解决了提案选择的问题,理论上可以在容忍拜占庭错误的前提下实现更好的性能(1000+ TPS)。

理论证明告诉我们,即便在网络通信可靠情况下,一个可扩展的分布式系统的共识问题通用解法的下限是——没有下限(无解)。这个结论,被称为“FLP 不可能原理”。该原理极其重要,可以看做是分布式领域里的“测不准原理”。