官方微博:

行业动态

从原理到趋势,解剖风口上的区块链技术(上)

  • 时间: 2018-05-11 11:43:20
  • 点击率: 564

 

前言:区块链不是一项新技术,而是一个新的技术组合。其关键技术包括P2P动态组网、基于密码学的共享账本、共识机制、智能合约等技术;

科技史上大部分创新都是与生产力有关的,提升效率,让人做更少工作,让机器做更多工作;区块链带来的最主要的颠覆却是生产关系上的;

互联网实现了信息的传播,区块链实现了价值的转移;区块链可以看作是“价值互联网”的基础协议,类似于“信息互联网”的HTTP协议,二者都是建议在TCP/IP协议之上的应用层协议;

区块链并不是一个全能技术,在某些应用领域里相比传统技术并不具备明显的技术优势,因此创业者及投资机构都需要考虑技术适用性问题;

区块链底层技术及协议层可能出现几家平台型公司;但大部分投资机会在于应用层,即基于行业应用的“区块链+”项目。

9月4日央行等7部委下发的《防范代币发行融资风险公告》将ICO定义为非法融资,不论机构和个人都不建议参与此类项目。

Part One:区块链基础知识

&区块链和区块链技术

“区块链就像一台魔法计算机,任何人都能够上传程序并自我执行,程序执行前和执行后的所有状态都公开可见,密码经济学为程序严格按照协议执行提供了机制保障。”——Vitalik Buterin

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本(分布式数据库)。

广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。

如何理解上述定义呢?

1)一个分布式的链接账本,每个账本就是一个“区块”;

2)基于分布式的共识算法来决定记账者;

3)账本内交易由密码学签名和哈希算法保证不可篡改;

4)账本按产生的时间顺序链接,当前账本含有上一个账本的哈希值,账本间的链接保证不可篡改;

5)所有交易在账本中可追溯。

&区块链特征

区块链是一种共享的分布式数据库技术。尽管不同报告中对区块链的介绍措辞都不相同,但以下4个技术特点是共识性的。

1)去中心化(Decentralization):区块链由众多节点组成一个端到端的网络,不存在中心化的设备和管理机构,任一节点停止工作都会不影响系统整体的运作。图2的左侧描述了当今金融系统的中心化特征,右侧描述的是正在形成的去中心化金融系统;

2)去信任(Trustless):系统中所有节点之间通过数字签名技术进行验证,无需信任也可以进行交易,只要按照系统既定的规则进行,节点之间不能也无法欺骗其它节点;

3)集体维护(CollectivelyMaintain):系统是由其中所有具有维护功能的节点共同维护的,系统中所有人共同参与维护工作;

4)可靠数据库(ReliableDatabase):系统中每一个节点都拥有最新的完整数据库拷贝,单个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能控制整个网络中超过51%的节点同时修改,这几乎不可能发生。区块链中的每一笔交易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易的前世今生。

简化起见,上图展示了6处保留数据库副本的节点;在3个交易序列中,前2个交易的数据和签名得到了所有6个节点的验证,但第三个交易的位置5没有通过验证,将被其它节点的“一致意见”更改。

&区块链分类

以参与方分类,区块链可以分为公有链、联盟链和私有链;从链与链的关系来分,可以分为主链和侧链。

1)公有链(Public Blockchain)

公有链通常也称为非许可链(Permissionless Blockchain),无官方组织及管理机构,无中心服务器,参与的借点按照系统规格自由接入网路、不受控制,节点间基于共识机制开展工作。

公有链是真正意义上的完全去中心化的区块链,它通过密码学保证交易不可篡,同时也利用密码学验证以及经济上的激励,在互为陌生的网络环境中建立共识,从而形成去中心化的信用机制。在公有链中的共识机制一般是工作量证明(PoW)或权益证明(PoS),用户对共识形成的影响力直接取决于他们在网络中拥有资源的占比。

公有链一般适合于虚拟货币、面向大众的电子商务、互联网金融等B2C、C2C或C2B等应用场景,比特币和以太坊等就是典型的公有链。

2)联盟链(Consortium Blockchain)

联盟链是一种需要注册许可的区块链,这种区块链也称为许可链(Permissioned Blockchain)。联盟链仅限于联盟成员参与,区块链上的读写权限、参与记账权限按联盟规则来制定。整个网络由成员机构共同维护,网络接入一般通过成员机构的网关节点接入,共识过程由预先选好的节点控制。由于参与共识的节点比较少,联盟链一般不采用工作量证明的挖矿机制,而是多采用权益证明(PoS)或PBFT(Practical Byzantine Fault Tolerant)、RAFT等共识算法。

一般来说,联盟链适合于机构间的交易、结算或清算等B2B场景。例如在银行间进行支付、结算、清算的系统就可以采用联盟链的形式,将各家银行的网关节点作为记账节点,当网络上有超过2/3的节点确认一个区块,该区块记录的交易将得到全网确认。联盟链对交易的确认时间、每秒交易数都与公有链有较大的区别,对安全和性能的要求也比公共链高。

由40多家银行参与的区块链联盟R3和Linux基金会支持的超级账本(Hyperleder)项目都属于联盟链架构。目前国内有影响力的区块链联盟——中国分布式总账基础协议联盟(ChinaLedger)、中国区块链研究联盟、金链盟(金融区块链联盟)等——也都在致力于开发联盟区块链项目。

3)私有链(Private Blockchain)

私有链建立在某个企业内部,系统的运作规则根据企业要求进行设定。

私有链的应用场景一般是企业内部的应用,如数据库管理、审计等;在政府行业也会有一些应用,比如政府的预算和执行,或者政府的行业统计数据,这个一般来说由政府登记,但公众有权力监督。私有链的价值主要是提供安全、可追溯、不可篡改、自动执行的运算平台,可以同时防范来自内部和外部对数据的安全攻击,这个在传统的系统是很难做到的。

4)侧链(Side chain)

侧链是用于确认来自于其它区块链的数据的区块链,通过双向挂钩(TwoWay Peg)机制使比特币、Ripple币等多种资产在不同区块链上以一定的汇率实现转移。

所谓“多种资产在不同区块链上转移”其实并不会实际发生。以比特币为例,侧链的运作机制是,将比特币暂时锁定在比特币区块链上,同时将辅助区块链上的等值数字货币解锁;当辅助区块链上的数字货币被锁定时,原先的比特币就被解锁。

侧链进一步扩展了区块链技术的应用范围和创新空间,使区块链支持包括股票、债券、金融衍生品等在内的多种资产类型,以及小微支付、智能合约、安全处理机制、真实世界财产注册等;侧链还可以增强区块链的隐私保护。

&区块链产业链

区块链产业链主要包括基础网络层、中间协议层及应用服务层。

1)基础网络层

基础网络层由数据层、网络层组成,其中数据层包括了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等。

2)中间协议层

中间协议层由共识层、激励层、合约层组成,其中共识层主要包括网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要包括各类脚本、算法和智能合约,是区块链可编程特性的基础。

3)应用服务层

应用服务层作为区块链产业链中最重要的环节,则包括区块链的各种应用场景和案例,包括可编程货币、可编程金融和可编程社会。

Part Two:区块链核心技术

区块链技术:指多个参与方之间基于现代密码学、分布式一致性协议、点对点网络通信技术和智能合约编程语言等形成的数据交换、处理和存储的技术组合。

&数据层:设计账本的数据结构

1)核心技术之:区块 +链

从技术上来讲,区块是一种记录交易的数据结构,反映了一笔交易的资金流向。系统中已经达成的交易的区块连接在一起形成了一条主链,所有参与计算的节点都记录了主链或主链的一部分。

每个区块由区块头和区块体组成,区块体只负责记录前一段时间内的所有交易信息,主要包括交易数量和交易详情;区块头则封装了当前的版本号、前一区块地址、时间戳(记录该区块产生的时间,精确到秒)、随机数(记录解密该区块相关数学题的答案的值)、当前区块的目标哈希值、Merkle数的根值等信息。从结构来看,区块链的大部分功能都由区块头实现。

概括来看,一个区块包含以下三部分:交易信息、前一个区块形成的哈希散列、随机数。

交易信息是区块所承载的任务数据,具体包括交易双方的私钥、交易的数量、电子货币的数字签名等;前一个区块形成的哈希散列用来将区块连接起来,实现过往交易的顺序排列;随机数是交易达成的核心,所有矿工节点竞争计算随机数的答案,最快得到答案的节点生成一个新的区块,并广播到所有节点进行更新,如此完成一笔交易。

2)核心技术之:哈希函数

哈希函数可将任意长度的资料经由Hash算法转换为一组固定长度的代码,原理是基于一种密码学上的单向哈希函数,这种函数很容易被验证,但是却很难破解。通常业界使用y =hash(x)的方式进行表示,该哈希函数实现对x进行运算计算出一个哈希值y。

常使用的哈希算法包括MD5、SHA-1、SHA-256、SHA-384及SHA-512等。以SHA256算法为例,将任何一串数据输入到SHA256将得到一个256位的Hash值(散列值)。其特点:相同的数据输入将得到相同的结果。输入数据只要稍有变化(比如一个1变成了0)则将得到一个完全不同的结果,且结果无法事先预知。正向计算(由数据计算其对应的Hash值)十分容易。逆向计算(破解)极其困难,在当前科技条件下被视作不可能。

3)核心技术之:Merkle树

Merkle树是一种哈希二叉树,使用它可以快速校验大规模数据的完整性。在区块链网络中,Merkle树被用来归纳一个区块中的所有交易信息,最终生成这个区块所有交易信息的一个统一的哈希值,区块中任何一笔交易信息的改变都会使得Merkle树改变。

4)核心技术之:非对称加密算法

非对称加密算法是一种密钥的保密方法,需要两个密钥:公钥和私钥。

公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密,从而获取对应的数据价值;如果用私钥对数据进行签名,那么只有用对应的公钥才能验证签名,验证信息的发出者是私钥持有者。

因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法,而对称加密在加密与解密的过程中使用的是同一把密钥。

&网络层:实现记账节点的去中心化

5)核心技术之:P2P网络

P2P网络(对等网络),又称点对点技术,是没有中心服务器、依靠用户群交换信息的互联网体系。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能。国内的迅雷软件采用的就是P2P技术。

P2P网络其具有去中心化与健壮性等特点。

a)去中心化:网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入。

b)健壮性:P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。

&共识层:调配记账节点的任务负载

6)核心技术之:共识机制

共识机制,就是所有记账节点之间如何达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。目前主要有四大类共识机制:PoW、PoS、DPoS和分布式一致性算法。

PoW(Proofof Work,工作量证明)

PoW机制,也就是像比特币的挖矿机制,矿工通过把网络尚未记录的现有交易打包到一个区块,然后不断遍历尝试来寻找一个随机数,使得新区块加上随机数的哈希值满足一定的难度条件。找到满足条件的随机数,就相当于确定了区块链最新的一个区块,也相当于获得了区块链的本轮记账权。矿工把满足挖矿难度条件的区块在网络中广播出去,全网其他节点在验证该区块满足挖矿难度条件,同时区块里的交易数据符合协议规范后,将各自把该区块链接到自己版本的区块链上,从而在全网形成对当前网络状态的共识。

优点:完全去中心化,节点自由进出,避免了建立和维护中心化信用机构的成本。只要网络破坏者的算力不超过网络总算力的50%,网络的交易状态就能达成一致。

缺点:目前比特币挖矿造成大量的资源浪费;另外挖矿的激励机制也造成矿池算力的高度集中,背离了当初去中心化设计的初衷。更大的问题是PoW机制的共识达成的周期较长,每秒只能最多做7笔交易,不适合商业应用。

PoS(Proofof Stake,权益证明)

PoS机制,要求节点提供拥有一定数量的代币证明来获取竞争区块链记账权的一种分布式共识机制。如果单纯依靠代币余额来决定记账者必然使得富有者胜出,导致记账权的中心化,降低共识的公正性,因此不同的PoS机制在权益证明的基础上,采用不同方式来增加记账权的随机性来避免中心化。例如点点币(Peer Coin)PoS机制中,拥有最多链龄长的比特币获得记账权的几率就越大。NXT和Blackcoin则采用一个公式来预测下一记账的节点。拥有多的代币被选为记账节点的概率就会大。未来以太坊也会从目前的PoW机制转换到PoS机制,从目前看到的资料看,以太坊的PoS机制将采用节点下赌注来赌下一个区块,赌中者有额外以太币奖,赌不中者会被扣以太币的方式来达成下一区块的共识。

优点:在一定程度上缩短了共识达成的时间,降低了PoW机制的资源浪费。

缺点:破坏者对网络攻击的成本低,网络的安全性有待验证。另外拥有代币数量大的节点获得记账权的几率更大,会使得网络的共识受少数富裕账户支配,从而失去公正性。

DPoS(DelegatedProof-Of-Stake,股份授权证明)

DPoS很容易理解,类似于现代企业董事会制度。比特股采用的DPoS机制是由持股者投票选出一定数量的见证人,每个见证人按序有两秒的权限时间生成区块,若见证人在给定的时间片不能生成区块,区块生成权限交给下一个时间片对应的见证人。持股人可以随时通过投票更换这些见证人。DPoS的这种设计使得区块的生成更为快速,也更加节能。

从某种角度来说,DPOS可以理解为多中心系统,兼具去中心化和中心化优势。

优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。

缺点:选举固定数量的见证人作记账候选人有可能不适合于完全去中心化的场景。另外在网络节点数少的场景,选举的见证人的代表性也不强。

分布式一致性算法

分布式一致性算法是基于传统的分布式一致性技术。其中有分为解决拜占庭将军问题的拜占庭容错算法,如PBFT(拜占庭容错算法)。另外解决非拜占庭问题的分布式一致性算法(Pasox、Raft),详细算法本文不做说明。该类算法目前是联盟链和私有链场景中常用的共识机制。

优点:实现秒级的快速共识机制,保证一致性。

缺点:去中心化程度不如公有链上的共识机制;更适合多方参与的多中心商业模式。

综合来看, POW适合应用于公链,如果搭建私链,因为不存在验证节点的信任问题,可以采用POS比较合适;而联盟链由于存在不可信局部节点,采用DPOS比较合适。

&激励层:制定记账节点的"薪酬体系"

7)核心技术之:发行机制和激励机制

以比特币为例。

比特币最开始由系统奖励给那些创建新区块的矿工,该奖励大约每四年减半。刚开始每记录一个新区块,奖励矿工50个比特币,该奖励大约每四年减半。依次类推,到公元2140年左右,新创建区块就没有系统所给予的奖励了。届时比特币全量约为2100万个,这就是比特币的总量,所以不会无限增加下去。

另外一个激励的来源则是交易费。新创建区块没有系统的奖励时,矿工的收益会由系统奖励变为收取交易手续费。例如,你在转账时可以指定其中1%作为手续费支付给记录区块的矿工。如果某笔交易的输出值小于输入值,那么差额就是交易费,该交易费将被增加到该区块的激励中。只要既定数量的电子货币已经进入流通,那么激励机制就可以逐渐转换为完全依靠交易费,那么就不必再发行新的货币。

&合约层:赋予账本可编程的特性

8)核心技术之:智能合约

智能合约是一组情景应对型的程序化规则和逻辑,是通过部署在区块链上的去中心化、可信共享的脚本代码实现的。通常情况下,智能合约经各方签署后,以程序代码的形式附着在区块链数据上,经P2P网络传播和节点验证后记入区块链的特定区块中。智能合约封装了预定义的若干状态及转换规则、触发合约执行的情景、特定情景下的应对行动等。区块链可实时监控智能合约的状态,并通过核查外部数据源、确认满足特定触发条件后激活并执行合约。

  • 电话咨询

  • 010-68519188
  • 010-68519189