狭义来讲, 区块链是一种按照时间顺序将数据区块以链条的方式 组合成特定数据结构, 并以密码学方式保证的不可篡改和不可伪造的去中心化共享总账, 能够安全存储简单的、有先后关系的、能在系统内验证的数据.广义的区块链技术则是利用加密链式区块结构来验证与存储数据、 利用分布式节点共识算法来生成和更新数据、利用 自动化脚本代码 (智能合约) 来编程和操作数据的一 种全新的去中心化基础架构与分布式计算范式.
区块链具有去中心化、时序数据、集体维护、可编程和安全可信等特点.
去中心化: 区块链数据的验证、记账、存储、维护和传输等过程均是基于分布式系统结构, 采用纯数学方法而不是中心机构来建立分布式节点间的信任关系, 从而形成去中心化的可信任的分布式系统
时序数据: 区块链采用带有时间戳的链式区块结构存储数据, 从而为数据增加了时间维度, 这个时间是按照先后顺序排列的
集体维护: 区块链系统采用特定的经济激励机制来保证分布式系统中所有节点均可参与数据区块的验证过程 (如比特币的 “挖矿” 过程), 并通过共识算法来选择特定的节点将新区块添加到区块链;
可编程: 区块链技术可提供灵活的脚本代码系统, 支持用户创建高级的智能合约、货币或其他去中心化应用.
安全可信: 区块链技术采用非对称密码学原理对数据进行加密, 同时借助分布式系统各节点的工作量证明 等共识算法形成的强大算力来抵御外部攻击、保证区块链数据不可篡改和不可伪造, 因而具有较高的安全性。
区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成.
数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;
激励层 主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约, 是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。
数据层
区块链即是去中心化系统各节点共享的 数据账本. 每个分布式节点都可以通过特定的哈希 算法和 Merkle 树数据结构, 将一段时间内接收到的交易数据和代码封装到一个带有时间戳的数据区块 中, 并链接到当前最长的主区块链上, 形成最新的区块. 该过程涉及区块、链式结构、哈希算法、Merkle树和时间戳等技术要素.
数据区块: 每个数据区块一般包含区块头 (Header) 和区块体 (Body) 两部分. 区块头封装了当前版本号 (Version)、前一区块地址(Prev-block)、当前区块的目标哈希值 (Bits)、当前区块 PoW 共识过程的解随机数 (Nonce)、Merkle根 (Merkle-root) 以及时间戳 (Timestamp) 等信息.
区块体包含的是所有的交易信息。
链式结构: 取得记账权的矿工将当前区块链接 到前一区块, 形成最新的区块主链. 各个区块依次环 环相接, 形成从创世区块到当前区块的一条最长主 链, 从而记录了区块链数据的完整历史, 能够提供区 块链数据的溯源和定位功能, 任意数据都可以通过 此链式结构顺藤摸瓜、追本溯源. 需要说明的是, 如 果短时间内有两个矿工同时 “挖出” 两个新的区块 加以链接的话, 区块主链可能会出现暂时的 “分叉”现象, 其解决方法是约定矿工总是选择最长的那条链作为主链。
时间戳: 区块链技术要求获得记账权的节点必 须在当前数据区块头中加盖时间戳, 表明区块数据 的写入时间. 因此, 主链上各区块是按照时间顺序依 次排列的. 时间戳技术本身并不复杂, 但其在区块 链技术中的应用是具有重要意义的创新. 时间戳可 以作为区块数据的存在性证明 (Proof of existence),有助于形成不可篡改和不可伪造的区块链数据库, 从而为区块链应用于公证、知识产权注册等时间敏 感的领域奠定了基础.
哈希函数: 区块链通常并不直接保存原始数据 或交易记录, 而是保存其哈希函数值, 即将原始数据 编码为特定长度的由数字和字母组成的字符串后记 入区块链. 哈希函数 (也称散列函数) 具有诸多优良 特点, 因而特别适合用于存储区块链数据..
比 特币区块链通常采用双 SHA256 哈希函数, 即将任 意长度的原始数据经过两次 SHA256 哈希运算后转 换为长度为 256 位 (32 字节) 的二进制数字来统一存储和识别
Merkle 树: Merkle 树是区块链的重要数据结构, 其作用是快速归纳和校验区块数据的存在性 和完整性
非对称加密: 非对称加密是为满足安全性需求 和所有权验证需求而集成到区块链中的加密技术, 常见算法包括 RSA、Rabin、D-H、ECC(即椭圆曲线加密算法) 等.
非对称加密通常在加密 和解密过程中使用两个非对称的密码, 分别称为公 钥和私钥. 非对称密钥对具有两个特点, 首先是用其 中一个密钥 (公钥或私钥) 加密信息后, 只有另一个 对应的密钥才能解开; 其次是公钥可向其他人公开、 私钥则保密, 其他人无法通过该公钥推算出相应的私钥.
非对称加密技术在区块链的应用场景主要包 括信息加密、数字签名和登录认证等, 其中信息加密 场景主要是由A 使用B 的公钥对信息加密后再发送给 B, B 利用自己的私钥对信息解密. 比特币交易的加密即属于此 场景; 数字签名场景则是由发送者 A 采用自己的私钥加密信息后发送给 B, B 使用 A 的公钥对信息解 密、从而可确保信息是由 A 发送的; 登录认证场景 则是由客户端使用密码登录信息后发送给服务器, 服务器接收后采用该客户端的公钥解密并认证登 录信息
扫码关注我们!
|
|