《区块链技术模型.ppt》由会员分享,可在线阅读,更多相关《区块链技术模型.ppt(13页珍藏版)》请在三一办公上搜索。
1、区块链技术模型,区块链技术模型,区块链系统主要分六层,分别是数据层、网络层、共识层、激励层、合约层以及应用层。其中数据层是区块链的核心部分,主要封装了底层数据区块结构、加密算法以及时间戳等技术;网络层则是区块链平台信息传输的基础,包括了P2P网络的组网机制、数据传输机制以及数据验证机制等;共识层则封装了区块链网络节点使用的共识算法;激励层则是将经济因素引入区块链系统中,用于维持区块链系统的运行;合约层对各类算法、脚本、智能合约进行了封装,是区块链系统可编程的基础。应用层则是区块链技术针对具体应用场景的应用实现,如web网页、去中心化APP(DApp)等。,数据层-区块结构,每一个区块一般由区块
2、头和区块体两部分组成。其中其块头部分如图2-2所示,该部分包含了父区块哈希值、时间戳、随机数、版本信息Merkle根等信息。而区块体部分则包含者本区块中所有的交易信息。区块头哈希值是一个区块链上区块的唯一标识,任何节点都可以通过对区块头通过哈希函数进行计算得到该区块头的哈希值。,数据层Merkle树,交易信息主要存在于区块体中,它们是以一棵Merkle树形式的数据结构进行存储的。Merkle树是一棵哈希二叉树,树的每一个叶子节点都是一笔交易内容数据的哈希值。Merkle树被用来归纳一个区块中包含的所有交易,同时生成包含整个交易集合的Merkle树根。Merkle树的生成需要递归地对每两个哈希节
3、点进行哈希计算,得到一个新的哈希值,并且将新的哈希值存入Merkle树中,直到两两结合最终只有一个哈希值,这个哈希值就是这一区块所有交易的Merkle根,存储到上面提到的区块头中。当需要证明某笔交易存在于交易列表中时,一个节点只需要计算log2N个32字节的哈希值,就可以形成一条从Merkle根到此交易的路径。例如,为验证图中的交易C,可以通过获取交易D的哈希值,然后对交易C和交易D进行二次哈希,获取交易C和交易D的哈希值Hcd,然后再获取交易A和B的哈希值Hab,再通过Hab/Hcd计算出Habcd与Merkle根的哈希值进行比较,即可验证交易C。,数据层非对称加密,非对称加密是区块链技术中
4、因为安全需求以及鉴权需求时采用的加密技术。常用的非对称加密算法有RSA、D-H(D-H密钥协商算法)、ECDH(基于椭圆曲线的D-H密钥协商算法)、ECC(椭圆曲线加密算法)和ECDSA(椭圆曲线数字签名算法)等等。在非对称加密算法中,加密和解密过程中使用一对非对称的密码,分别成为公钥和私钥。非对称加密的密钥对具有两个特点,一个是使用公钥或者私钥进行加密后,只有另一个对应的密钥才能解开;另一个是公钥是可以向任何人公开的,但私钥则要求保密。其他人无法从公钥中推算出私钥。非对称加密技术在区块链上主要包括信息加密、数字签名和登录认证等。其中信息加密主要由信息发送者(记为A)使用信息接收者(记为B)的
5、公钥进行加密然后发送给B,B收到信息后使用其私钥对信息进行解密。其他人由于没有A的私钥,没有办法对信息进行解密。数字签名则是A在发送消息时,先使用哈希函数第信息原文生成一个摘要,然后使用自己的私钥对信息摘要进行加密,生成的密文称为数字签名,之后将信息原文和数字签名发送给B,B接收到信息后使用A的公钥进行解密得到摘要,要确保信息是由A本人发出,B需要再对收到的信息原文使用哈希函数产生摘要,并与接收到的摘要进行对比,相同则说明信息在传输过程中没有被篡改。登录认证就是客户端使用私钥对登录信息进行加密后发送到服务器,服务器使用客户端的公钥进行解密进行登录认证。,数据层总结,具有生成区块能力的节点,可以
6、将通过在生成的区块头放入前一区块的哈希值,连接到前一区块,形成最新的区块主链。各个区块依次序连环相接,形成从创世区块到当前区块的最长主链,从而在区块链上记录了每次交易数据的完整历史,能够提供数据的溯源和定位功能。倘若区块中的内容被篡改,都会造成区块的哈希值发生改变,从而使该区块从链式结构中“脱落”,区块无法加入到链中。,网络层是区块链平台信息传输的基础,通过特定的组网机制、特定的信息传播协议以及数据验证机制,使得区块链网络中的节点可以平等地参与记账。组网机制:区块链系统的网络架构一般采用的是对等式网络(P2P网络)架构。在P2P网络中,所有计算机节点的角色都是对等的,他们既是客户端,也是服务端
7、,共同为全网节点提供服务。同时,在P2P网络中并没有中心化的服务器,每台计算机既作为客户端发送请求,也可以作为服务端响应请求,共同承担网络路由、验证区块数据、传播区块数据、发现新节点等功能。信息传播协议:节点产生新的区块数据后,生成该数据的节点会将新区块数据广播到网络中的其他节点进行验证。目前的区块链底层平台一般都会根据自身所提供的应用功能需求而进行设计,如比特币系统,其传输协议的步骤如下:1、比特币交易系统中每一个交易节点都将新生成的交易数据向全网中所有其他节点进行广播;2、每个节点将接收到的交易数据存储到一个区块的区块体中;3、每个节点通过自身的算力在区块中找到一个符合工作量证明的随机数;
8、4、当一个节点找到这个随机数后,向其他节点广播这个区块;5、其他区块对广播的区块进行接收并验证:只有包含在区块中的所有交易都未发生过且验证有效才被认为有效;然后将该区块加入到链条中。验证机制:在区块链网络中,所有节点都会时刻对网络中广播的交易数据和新产生的区块进行监听。在接收到其他节点发来的数据后,首先会对发来的数据进行有效性校验。有效性检验是根据事先定好的标准,从数据结构、语法约定规范、数字签名等各个方面进行校验。对于产生的新区快的校验,也要按照预先规定的工作量证明以及时间戳等参数进行校验。只有通过有效性校验,才能将区块数据连接到主链上。,网络层,共识层,区块链的共识层主要负责在分布式系统中
9、各个节点之间达成共识。最初的区块链系统比特币系统主要采用了一种依赖各个节点计算能力的共识算法:工作量证明(Proof of Work,PoW)算法。后来随着区块链技术的研究和发展,一些其他的共识算法,如权益证明共识算法(Proof of Stake,PoS)、授权股份证明共识算法(Delegated Proof of Stake)、实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)、Raft算法等。共识层的共识算法与网络层的P2P组网机制,为区块链的去中心化特性提供了可能。,合约层,合约层对区块链系统的各类脚本、算法以及由此生成的各种复杂的智
10、能合约进行了封装,是区块链可编程性的体现。区块链系统中的数据层、网络层以及共识层可以看作是区块链系统底层的“虚拟机”,而智能合约则是在“虚拟机”环境中执行的脚本语言。根据不同的区块链应用,可以编写符合不同场景所需的智能合约。智能合约在部署的时候被虚拟机编译成操作码存储在区块链上,当预定的条件发生时,就会发送一笔交易到该合约地址,然后全网节点都会执行合约脚本,最后将脚本执行结果写入区块链中进行存储。,应用层,应用层主要面向区块链的用户以及开发者,是区块链底层平台上的具体应用。如基于以太坊上的各类去中心化APP(DApps)就属于这一层。未来的基于区块链技术的应用的落地实现,也划归于这一层。,区块
11、链技术的突出优势,信息不可篡改 一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。匿名性 利用零知识证明等方式,同时节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方自己产生信任,对信用的累积非常有帮助。自治性 区块链采用基于协商一致的规范和协议(比如一套公开透明的智能合约)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。,谢谢观看,