本文介绍了当前几种主流区块链技术的特点及彼此的区别,并提出了企业区块链技术选型的要点。
一、比特币
比特币是数字货币领域的领头羊,是区块链技术的第一个、也是最成功的应用。专业人士对于比特币的看法呈现明显的两极分化,而比特币的市值却一路攀升。从企业实施区块链项目的角度,比特币的数字货币属性都及其明显。笔者认为比特币本身如下特点决定了比特币的技术架构并不能很好的满足企业对于商业应用的需求:
1. 匿名,反监管。在任何一个商业网络内,匿名都是不可接受的;对任何一个政府而言,监管都是必须的。
2. 工作量证明的共识算法。这种算法对企业应用来说是一种巨大的资源浪费。
3. 智能合约缺失。比特币只能处理很简单的脚本,并不具备图灵完备的智能合约执行能力,因此除了能很好的实现数字货币的属性,很难胜任其他更加复杂的商业逻辑。
因此笔者不推荐用比特币作为企业区块链的技术框架, 除非贵司的应用是一款纯粹的数字货币。
二、以太坊
根据以太坊官方的宣称,以太坊(Ethereum)目标是打造成一个运行智能合约的去中心化平台(Platform for Smart Contract) ,平台上的应用按程序设定运行,不存在停机、审查、欺诈、第三方人为干预的可能。以太坊平台由Golang、C++、Python 等多种编程语言实现。当然,为了打造这个平台,以太坊提供了一条公开的区块链,并制定了面向智能合约的一套编程语言。 智能合约开发者可以在其上使用官方提供的工具来开发支持以太坊区块链协议的应用(即所谓的 DAPP) 。
以太坊区块链的特点主要包括:
1) 单独为智能合约指定编程语言 Solidity;
2) 使用了内存需求较高的哈希函数:避免出现算力矿机;
3) uncle 块激励机制:降低矿池的优势,减少区块产生间隔为 15 秒;
4) 难度调整算法:一定的自动反馈机制;
5) gas 限制调整算法:限制代码执行指令数,避免循环攻击;
6) 记录当前状态的哈希树的根哈希值到区块:某些情形下实现轻量级客户端;
7) 为执行智能合约而设计的简化的虚拟机 EVM。
以太坊的核心概念:
1) EVM:以太坊虚拟机,轻量级虚拟机环境,是以太坊中智能合约的运行环境。
2) Account:账户,分两类:合约账户存储执行的合约代码;外部账户为以太币拥有者账户,对应到某公钥。
3) Transaction:交易,从一个账户到另一个账户的消息,包括以太币或者合约执行参数。
4) Gas:燃料,每执行一条合约指令会消耗一定的燃料,当某个交易还未执行结束,而燃料消耗完时,合约执行终止并回滚状态。
共识算法: 目前采用了 PoW 作为一致达成保证,未来可能迁移到 PoS 上。
降低攻击: 设计核心思想是通过经济激励机制防止少数人作恶。所有交易都要提供交易费用,避免 DDoS 攻击;程序运行指令数通过 gas 来限制,所消耗的费用超过设定上限时会被取消,避免恶意合约。
提高扩展性: 以太坊未来希望通过分片机制可以提高整个网络的扩展性。分片之前整个网络的处理取决于单个节点的处理能力。分片后,只有同一片内的处理是同步的、一致的,不同分片之间则可以是异步的。
以太坊是一家以经营公有链为主的企业, 其公有链的性质导致其交易的效率偏低, 由于其缺乏用户身份和权限管理的机制,导致其在企业应用中受到诸多限制。
以太坊企业联盟 EEA 与 2017 年成立,目前仍缺乏有效的信息披露。
三、超级账本
Hyperledger 项目是首个面向企业的开放区块链技术的重要探索。在 Linux 基金会的支持下,吸引了包括 IBM、Intel、摩根等在内的众多科技和金融巨头的参与。
2015 年 12 月,开源世界的旗舰——Linux 基金 会牵头,联合 30 家初始企业成员(包括IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、SWIFT、Cisco 等) ,共同 宣告 了 Hyperledger 项目的成立。该项目试图打造一个透明、公开、去中心化的分布式账本项目, 作为区块链技术的开源规范和标准, 让更多的应用能更容易的建立在区块链技术之上。项目官方信息网站在 hyperledger.org,目前已经有超过 200 家全球知名企业和机构(大部分均为各自行业的领导者)宣布加入 Hyperledger 项目,其中包括40 余家来自中国本土的企业,包括百度,万达,小米,招商银行,中信,浙江大学,中国银钞造币等国内知名机构。
如果说以比特币为代表的货币区块链技术为 1.0, 以以太坊为代表的合同区块链技术为 2.0,那么实现了完备的权限控制和安全保障的 Hyperledger 项目毫无疑问代表着 3.0 时代的到来。
IBM 贡献了数万行已有的 Open Blockchain 代码,Digital Asset 则贡献了企业和开发者相关资源,R3 贡献了新的金融交易架构,Intel 也贡献了跟分布式账本相关的代码。
Hyperledger 社区由技术委员会(Technical Steering Committee,TSC)指导,首任主席由来自 IBM 开源技术部 CTO 的 Chris Ferris 担任,管理组主席则由来自 Digital Asset Holdings 的 CEO Blythe Masters 担任。另外,自 2016 年 5 月起,Apache 基金会创始人Brian Behlendorf 担任超级账本项目的首位执行董事。
该项目的出现,实际上宣布区块链技术已经不再是仅面向“社会实验”性质的应用场景,它已经正式被主流机构和企业市场认可; 同时, Hyperledger 首次提出和实现的完备权限管理、创新的一致性算法和可拔插、 可扩展的框架, 对于区块链相关技术和产业的发展都将产生深远的影响。
Hyperledger Fabric 区块链架构的显著特点是:
1. 具备身份识别和权限控制
2. 可插拔的共识算法和数据存储设计
3. 智能合约支持多种编程语言
4. 交易通道保证只有交易相关方才能看到交易内容
四、Ripple
Ripple 是世界上第一个开放的支付网络,通过这个支付网络可以转账任意一种货币,包括美元、欧元、人民币、日元或者比特币,简便易行快捷,交易确认在几秒以内完成,交易费用几乎是零,没有所谓的跨行异地以及跨国支付费用。
Ripple 是开放源码的点到点支付网络,它可以使你轻松、廉价并安全的把你的金钱转账到互联网上的任何一个人,无论他在世界的哪个地方。因为 Ripple 是 p2p 软件,没有任何个人、公司,或政府操控,任何人可以创建一个 ripple 账户。
新版 Ripple 引入两个措施解决孤立小圈子的问题:其一是推出 Ripple 币——XRP,它作为 Ripple 网络的基础货币,就像比特币一样可以整个网络中流通,而不必局限于熟人圈子;其二是引入网关(Gateway)系统,它类似于货币兑换机构,允许人们把法定货币注入、抽离 Ripple 网络,并可充当借、贷双方的桥梁。
Ripple 的一个主要特点是去中心化,它需要维护一个包含所有帐号、所有交易(因此也就是所有账户余额)的总帐本,这个总帐本分布在所有网络节点中并时刻保持同步。其核心机制与比特币类似,但也存在以下重要区别:
1)Ripple 网络支持多种货币。除了自己的 Ripple 币,它还支持法定货币(例如美元、欧元、日元等),并打算在 2013 年 4 月 19 日前后支持比特币,未来有可能支持所有虚拟货币。
2)Ripple 网络自动进行汇率换算。也就是说,用户可以用任何一种类型的货币向他人支付另外任何一种类型的货币,从而实现所有货币的全网流通。
3)Ripple 的交易确认过程可在几秒钟之内完成。Ripple 引入了一个“共识(Consensus)”机制,通过特殊节点的投票,在很短的时间内就能够对交易进行验证和确认。
4)Ripple 客户端不需要下载区块链,它在普通节点上舍弃掉已经验证过的总帐本链,只保留最近的已验证总帐本和一个指向历史总帐本的链接,因而同步和下载总帐本的工作量很小。
5)Ripple 无需也不能挖矿。
6)Ripple 币的总量非常不能增加,而且只能递减。该公司已经创造出了 1000 亿个单位的 Ripple 币,计划最终向外发行 75%的 Ripple 货币供应,并承诺永不增发。用户在进行每次交易时要花费一定的 Ripple 币(金额非常非常低,大约是 1/1000 美分),这个交易费不交给任何人,只是凭空消失。因此 Ripple 币只会越来越少,但减少的速度非常慢。
对比比特币我们可以发现,Ripple 网络的功能远远超出了比特币,它包括:
1)现实与虚拟货币的双向流通;
2)多币种的 P2P 兑换与支付;
3)P2P 网络信贷;
4)个人网络清算。
这四个功能结合起来,已经构成了一个基本完整的、去中心化的、全货币的金融体系。如此雄大的野心,应来源于公司领导层对于金融与科技行业的丰富经验与激进规划。
在这一雄心勃勃的规划之下,未来的网络金融体系已经呼之欲出,这或许是风投机构拥抱OpenCoin 公司的一个主要原因。另一个主要原因据信来源于对 250 亿个 Ripple 币的觊觎——OpenCoin 将保留 25%的 Ripple 币以便调节 Ripple 网络。
显然,为了与支付巨头竞争,一个企业必须建立自己的全球支付系统,并且要和数百家银行建立合作伙伴关,还要应付外汇风险和在各地成立代理机构。相比而言,Ripple 建立了一个共享的、免费的、在全球任何地方任何时候都可使用的支付网络。由于 Ripple的存在,人们在进行全球交易时便没有必要去涉足外汇市场了,因为 Ripple 的内在机制已经支持外汇兑换了。同样,人们也不需要一个跨国的金融机构来完成金融支付,你只需要一个简单的支付入口就能完成一切。
五、技术选型要点
下面表格简单对比了比特币,以太坊和超级账本的某些技术特性。从企业应用的角度而言,这些因素都是选型中必须考虑的因素。
下图从技术的成熟度和影响力的角度对比了主要的区块链底层技术。 从图中可以看出, 在私有链, 公有链和联盟链等不同领域都有核心玩家。 而在云服务领域只有非常少数的服务提供商并且很少有商用的案例。开源项目中玩家较多,其中以超级账本影响力最大,以太坊试图跨越公有链的壁垒进度企业级联盟链市场,不过鉴于 EEA 成立时间较短,超级账本在企业级联盟链场景家仍是最佳选择。