01
—
区块链的基本结构
区块链最初是为了存放交易信息而由中本聪(SatoshiNakamoto)设计的数据结构,从字面意思来看,区块链的结构主要由“区块”和“链”构成。
图1区块链基本结构
区块
区块包含了头部和交易实体数据,头部主要由前一区块ID、当前区块ID、时间戳、随机数等构成。
前一区块ID是指当前区块所链接的前一区块的哈希值。
当前区块ID是指当前区块的哈希值,它通过哈希算法计算得出哈希值来确保区块数据的完整性。这个哈希值是由区块中的交易实体数据所形成的。这些交易实体数据在交易逻辑上以默克尔树(一棵二叉树)的形式来组织,叶子结点是每个交易的哈希值。每个父结点的值为两个子结点组合起来所计算得到的哈希值。最终的默克尔树的根哈希会被记录到区块的头部中去。通过默克尔树这种数据结构,在添加一笔新的交易时,无须遍历整个交易记录以更新根哈希,只需要以复杂度log(n)更新一次每一层的哈希。同时,默克尔树可以保证任意交易数据被篡改了,默克尔树的根哈希一定会改变,否则区块无法被验证通过。
时间戳在区块生成的一刻起就被写在区块中,它对应的是每一次交易记录的认证,证明交易记录的真实性。由于每一个时间戳会将前一个时间戳也纳入其随机哈希值中,这一过程不断重复,每一个区块按时间顺序依次相连,以此生成一个基于时间序列的完整链条。
随机数是通过随机函数来随机选出区块的记账人,只有在随机的条件下,才能保证公平的分配记账权,同时私钥的生成都需要依赖随机数,如果生成随机数的随机数生成器可以被操控,生成的随机数可以被预测,那私钥就有可能被解密,加密资产的安全就得不到保障。
链
链将通过识别区块头部的“前一区块ID”将区块以特定的顺序连接起来。前一区块ID是一个类似指南针的字段,存储了前一个区块的哈希值,使得各个区块之间进行链接。
02
—
区块链的模型架构
区块链基础架构分为6层,包括数据层、网络层、共识层、激励层、合约层、应用层。
图2区块链的模型结构
数据层是在基于区块链的起始节点(创世区块)规则,持续进行同样区块的创建,并根据时间序列形成一条主链条,这里面包含了由数据区块、链式结构、时间戳等技术所构成的区块链结构。
网络层主要是用来实现区块链网络(P2P网络)中各个节点之间的信息交流,以此来维护一个共同的区块链,保持信息的一致通信。在区块链的网络中,每一个节点都可以创造新的区块,在新区块被创造后会以广播的形式通知其他节点,其他节点会对这个区块进行验证,当全区块链网络中超过51%的用户验证通过后,这个新区块就可以被添加到主链上了。
共识层是让高度分散的节点在去中心化的系统中高效地针对区块数据的有效性达成共识。区块链中比较常用的共识机制主要有工作量证明、权益证明和股份授权证明三种。
激励层主要是用来提供一定的激励措施,鼓励节点参与区块链的安全验证工作。
合约层主要是指各种脚本代码、算法机制以及智能合约等。
应用层是对区块链技术的各类应用,目前的应用中可分为三个层次,分别是区块链1.0:可编程货币,主要是用于数字货币的生成;区块链2.0:可编程金融,主要用于金融领域的交易流程;区块链3.0:可编程社会,将区块链技术广泛应用于各个领域。
预览时标签不可点收录于话题#个上一篇下一篇