区块链核心技术

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

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

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

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

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

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

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

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

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

常使用的哈希算法包括MD5、SHA-1、SHA-、SHA-及SHA-等。以SHA算法为例,将任何一串数据输入到SHA将得到一个位的Hash值(散列值)。

其特点:相同的数据输入将得到相同的结果。输入数据只要稍有变化(比如一个1变成了0)则将得到一个完全不同的结果,且结果无法事先预知。正向计算(由数据计算其对应的Hash值)十分容易。逆向计算(破解)极其困难,在当前科技条件下被视作不可能。

3)核心技术之:Merkle树

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

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

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

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

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

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

5)核心技术之:P2P网络

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

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

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

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

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

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

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

PoW(ProofofWork,工作量证明)

PoW机制,也就是像比特币的挖矿机制,矿工通过把网络尚未记录的现有交易打包到一个区块,然后不断遍历尝试来寻找一个随机数,使得新区块加上随机数的哈希值满足一定的难度条件。

找到满足条件的随机数,就相当于确定了区块链最新的一个区块,也相当于获得了区块链的本轮记账权。矿工把满足挖矿难度条件的区块在网络中广播出去,全网其他节点在验证该区块满足挖矿难度条件,同时区块里的交易数据符合协议规范后,将各自把该区块链接到自己版本的区块链上,从而在全网形成对当前网络状态的共识。

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

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

PoS(ProofofStake,权益证明)

PoS机制,要求节点提供拥有一定数量的代币证明来获取竞争区块链记账权的一种分布式共识机制。如果单纯依靠代币余额来决定记账者必然使得富有者胜出,导致记账权的中心化,降低共识的公正性,因此不同的PoS机制在权益证明的基础上,采用不同方式来增加记账权的随机性来避免中心化。

例如点点币(PeerCoin)PoS机制中,拥有最多链龄长的比特币获得记账权的几率就越大。NXT和Blackcoin则采用一个公式来预测下一记账的节点。拥有多的代币被选为记账节点的概率就会大。

未来以太坊也会从目前的PoW机制转换到PoS机制,从目前看到的资料看,以太坊的PoS机制将采用节点下赌注来赌下一个区块,赌中者有额外以太币奖,赌不中者会被扣以太币的方式来达成下一区块的共识。

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

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

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

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

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

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

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

分布式一致性算法

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

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

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

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

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

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

以比特币为例。

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

另外一个激励的来源则是交易费。

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

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

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

智能合约是一组情景应对型的程序化规则和逻辑,是通过部署在区块链上的去中心化、可信共享的脚本代码实现的。通常情况下,智能合约经各方签署后,以程序代码的形式附着在区块链数据上,经P2P网络传播和节点验证后记入区块链的特定区块中。

智能合约封装了预定义的若干状态及转换规则、触发合约执行的情景、特定情景下的应对行动等。区块链可实时监控智能合约的状态,并通过核查外部数据源、确认满足特定触发条件后激活并执行合约。

来源:千家智客怪诞笔记

中原智慧城市设计研究院有限公司成立于年10月,是一家集数字城市、平安城市、智慧城市顶层设计及整

体解决方案的服务提供商。公司注册资本万元,注册地位于郑州航空港经济综合实验区,长期致力于智慧城市顶层设计与咨询。

赞赏

长按







































北京根治白癜风医院
北京白癜风治疗价格



转载请注明:http://www.92nongye.com/txjg/204620246.html