源于比特币社区的区块链技术,不仅为金融机构所重视,也逐渐为世界主要经济体及重要国际组织所关注,在经历了以比特币应用为代表的区块链1.0时代,目前已经进入了以智能合约为标志的区块链2.0时代,本文尝试性的对区块链常见架构进行分析,并根据其技术特点提出了一些在保险业可能的应用场景。
区块链2.0的典型代表是以太坊(Ethereum)和超级账本(hyperledger),分别代表了区块链的两个重要的发展方向:应用于公众的公有链和应用于企业的联盟链。
(一)公有链、联盟链和私有链
公有链是指对所有人开放,任何人都可以参与的区块链;联盟链是被多个组织构成的联盟控制,进入和退出需要授权的区块链;私有链是完全被单独的个人或某个组织控制的区块链。公有链不适合大部分企业应用场景,未来企业应用的重点是联盟链,但现阶段关注的重点是公有链,公有链是区块链技术的试验田,会遇到各种复杂的情况和问题,是对新技术和新业务的测试,这对企业应用提供很好的借鉴。
对于区块链的去中心化、安全、高效这三个特性,符合蒙代尔不可能三角关系,即不可能同时满足三个条件。公有链实现了完全的去中心化和安全,因此在性能上就很低,联盟链为了企业应用,提高了性能和安全,就不得不在去中心化上进行妥协,通过一个中心化的授权的方式来管理节点,实现了半中心化。
(二)区块链2.0的优势
区块链1.0被称之为“全球账簿”,相应的,区块链2.0可以被看作一台“全球计算机”:实现了区块链系统的图灵完备,可以在区块链上传和执行应用程序,并且程序的有效执行能得到保证,在此基础上实现了智能合约的功能。相对于区块链1.0,区块链2.0有如下优势:
1、 支持智能合约
区块链2.0定位于应用平台,在这个平台上,可以发布各种智能合约,并能与其它外部IT系统进行数据交互和处理,从而实现各种行业应用。
2、 适应大部分应用场景的交易速度
通过采用PBFT、POS、DPOS等新的共识算法,区块链2.0的交易速度有了很大的提高,峰值速度已经超过了3000TPS(每秒处理交易数量),远远高于比特币的5TPS,已经能够满足大部分的金融应用场景。
3、 支持信息加密
区块链2.0因为支持完整的程序运行,可以通过智能合约对发送和接收的信息进行自定义加密和解密,从而达到保护企业和用户隐私的目的,同时零知识证明等先进密码学技术的应用进一步推动了其隐私性的发展。
4、 无资源消耗
为了维护网络共识,比特币使用的算力超122029 TH/s,相当于5000台天河2号A运算速度,每天耗电超过2000MWh,约合几十万人民币(估测数据)。区块链2.0采用PBFT、DPOS、POS等新的共识算法,不再需要通过消耗算力达成共识,从而实现对资源的零消耗,使其能绿色安全的部署于企业信息中心。
区块链2.0采用五层架构,从下到上分别是数据层、网络层、共识层、激励层、智能合约层,如图1所示
图1五层架构
1、数据层
数据层最底层的技术,是一切的基础,主要实现了两个功能,一个是相关数据的存储,另一个是账户和交易的实现与安全。数据存储主要基于Merkle树,通过区块的方式和链式结构实现,大多以KV数据库的方式实现持久化,比如以太坊采用leveldb。帐号和交易的实现基于数字签名、哈希函数和非对称加密技术等多种密码学算法和技术,保证了交易在去中心化的情况下能够安全的进行。
2、网络层
网络层主要实现网络节点的连接和通讯,又称点对点技术,是没有中心服务器、依靠用户群交换信息的互联网体系。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,其具有去中心化与健壮性等特点。
3、共识层
共识层主要实现全网所有节点对交易和数据达成一致,防范拜占庭攻击、女巫攻击、51%攻击等共识攻击,其算法称为共识机制,因为其应用场景不同,区块链2.0出现了多种富有特色的共识机制。
PoS:Proof of Stake,权益证明
原理:节点获得区块奖励的概率与该节点持有的代币数量和时间成正比,在获取区块奖励后,该节点的代币持有时间清零,重新计算。但由于代币在初期分配时人为因素过高,容易导致后期贫富差距过大。
DPoS:Delegate Proof of Stake,股份授权证明
原理:所有的节点投票选出100个(或其他数量)委托节点,区块完全由这100个委托节点按照一定算法生成,类似于美国的议会制。
Casper:投注共识
原理:以太坊下一代的共识机制,每个参与共识的节点都要支付一定的押金,节点获取奖励的概率和押金成正比,如果有节点作恶押金则要被扣掉。
PBFT:Practical Byzantine Fault Tolerance,拜占庭容错算法
原理:与一般公有链的共识机制主要基于经济博弈原理不同,PBFT基于异步网络环境下的状态机副本复制协议,本质上是由数学算法实现了共识,因此区块的确认不需要像公有链一样在若干区块之后才安全,可以实现出块即确认。
PoET:Proof of Elapsed Time,消逝时间量证明
原理:该共识机制由intel提出,核心是用intel支持SGX技术的CPU硬件,在受控安全环境(TEE)下随机产生一些延时,同时CPU从硬件级别证明延时的可信性,类似于彩票算法,谁的延时最低,谁将获取记账权。这样,增加记账权的唯一方法就是多增加CPU的数量,具备了当初中本聪设想的一个CPU一票的可能,同时增加的CPU会提升整个系统的资源,变相实现了记账权与提供资源之间的正比例关系。
共识机制有各自的优缺点,适应不同的场景,进行对比,形成如下表1
共识算法 | PoS | DPoS | Casper | PBFT | PoET |
性能 | 较高 | 高 | 较高 | 高 | 高 |
去中心化程度 | 完全 | 完全 | 完全 | 半中心化 | 半中心化 |
最大允许作恶节点数量 | 51% | 51% | 51% | 33% | 51% |
是否需要代币 | 是 | 是 | 是 | 否 | 否 |
应用类型 | 公有链 | 公有链 | 公有链 | 联盟链 | 联盟链 |
能否防范女巫攻击 | 是 | 是 | 是 | 否 | 是 |
技术成熟度 | 成熟 | 成熟 | 未应用 | 成熟 | 未应用 |
需要专用硬件 | 否 | 否 | 否 | 否 | 是 |
表1? 不同共识算法对比
4、激励层
激励层主要实现区块链代币的发行和分配机制,比如以太坊,定位以太币为平台运行的燃料,可以通过挖矿获得,每挖到一个区块固定奖励5个以太币,同时运行智能合约和发送交易都需要向矿工支付一定的以太币。
5、智能合约层
智能合约赋予账本可编程的特性,区块链2.0通过虚拟机的方式运行代码实现智能合约的功能,比如以太坊的以太坊虚拟机(EVM)。同时,这一层通过在智能合约上添加能够与用户交互的前台界面,形成去中心化的应用(DAPP)。当然,在某些技术文档中认为DAPP应该在智能合约层之上单独为应用层,也是有一定道理,只要不影响读者理解即可。
(一) 智能合约简介
智能合约又称智能合同,是由事件驱动的、具有状态的、获得多方承认的、运行在区块链之上的、且能够根据预设条件自动处理资产的程序,智能合约最大的优势是利用程序算法替代人仲裁和执行合同。
本质上讲,智能合约也是一段程序,但是与传统的IT系统不同,智能合约继承了区块链的三个特性,:数据透明、不可篡改、永久运行。
A. 数据透明
区块链上所有的数据都是公开透明的,因此智能合约的数据处理也是公开透明的,运行时任何一方都可以查看其代码和数据。
B. 不可篡改
区块链本身的所有数据不可篡改,因此部署在区块链上的智能合约代码以及运行产生的数据输出也是不可篡改的,运行智能合约的节点不必担心其他节点恶意修改代码与数据。
C. 永久运行
支撑区块链网络的节点往往达到数百甚至上千,部分节点的失效并不会导致智能合约的停止,其可靠性理论上接近于永久运行,这样就保证了智能合约能像纸质合同一样每时每刻都有效。
(二) 智能合约运行原理
本文通过最典型的以太坊为例简述智能合约运行的原理。
以太坊虚拟机(EVM)
以太坊虚拟机(EVM)是以太坊中智能合约的运行环境。如果做比喻的话智能合约更像是JAVA程序,JAVA程序通过JAVA虚拟机(JVM)将代码友们字节进行执行,以太坊的智能合约通过以太坊虚拟机(EVM)友们成字节码进行执行。EVM被沙箱封装起来,也就是说运行在EVM内部的代码不能接触到网络、文件系统或者其它进程,甚至智能合约之间也只有有限的调用。
RPC接口
RPC接口是以太坊与其他IT系统交互的接口,以太坊节点在8545端口提供了JSON RPC API接口,数据传输采用JSON格式,可以执行Web3库的各种命令,可以向前端,比如Mist等图形化客户端提供区块链的信息
智能合约是部署在区块链的代码,区块链本身不能执行代码,代码的执行是每个节点在本地通过太坊虚拟机(EVM)实现, 智能合约的运行原理如图1所示。
图2以太坊智能合约运行原理图
从图2可以看出,部署在区块链上的智能合约是一段能够在本地产生原智能合约代码的数据串,可以理解区块链为一个数据库,首先客户端通过发起一笔交易,告诉以太坊节点需要调用的函数及相关参数,然后所有的以太坊节点都会接收到这笔交易,从区块链这个数据库中读取了存储的智能合约运行代码,在本地EVM运行出结果,最后为避免节点作恶,节点运行智能合约的结果将与其他以太坊节点进行对比,确认无误后才将结果写入到了区块链中,从而实现智能合约的正确执行。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.longfuchaju.com//zmt/5036.html