看似神秘的区块链技术, 其底层实则是由众多算法系统共同支撑的缜密架构。从数据进行打包开始, 到交易得以验证, 从网络实现同步进程, 到密码学给予保障, 每个环节都借助特定的算法组合。理解这些算法系统, 乃是真正能够看懂区块链运行逻辑的关键入口。
共识算法系统如何保证数据一致
解决“谁有权记账”以及“如何让所有节点达成一致”问题的, 是区块链最核心的算法系统之中的共识算法, 工作量证明是最经典的共识算法, 比特币采用的是SHA-256哈希运算, 通过计算难题竞争记账权, 安全性极高然而能耗巨大, 以太坊早期沿用了此机制, 后来转向了权益证明。
持币数量与质押时间被用以取代算力竞争, 成为权益证明算法所依据的内容, 验证者借助锁定资产来获得出块的契机, 这种机制促使能耗降低幅度超过99%, 另外虽面向了“富者愈富”的这一争议境地接受委托进行权益证明的进阶优化处理, 此做法使持币持有者采取投票选举的方式挑选代表节点参与共识,EOS和TRON选用该项措施助力促成交易速度的显著提升。
联盟链场景适用实用拜占庭容错算法, 存在部分节点作恶或者故障的情况被允许, 借助多轮投票来达成最终一致性。Hyperledger Fabric采用此类算法, FISCO BCOS也采用此类算法, 在许可网络里呈现出高效稳定的状况。
密码学算法系统如何保障安全隐私
区块链具备的不可篡改以及匿名特性, 是完全依靠密码学算法系统来给予支撑的。哈希算法是用来生成数据指纹的一种方式, SHA - 256能够把任意长度的数据映射成为固定的256位输出, 只要有任何细微的改动, 就会致使哈希值产生完全的变化, 此算法被应用于区块链接以及交易完整性验证方面。
非对称加密算法运用公钥与私钥配对的机制, 公钥被用来验证签名, 私钥则是用于生成签名。椭圆曲线加密的算法在区块链里应用最为广泛, 比特币以及以太坊都使用secp256k1曲线, 和RSA算法相比较, 在同等安全级别的情况下, 其密钥更短, 计算速度更快。
能让验证者在不获取具体数据的情形下确认交易有效性的是零知识证明算法, 采用zk - SNARKs来实现隐私交易的是Zcash, , 利用此技术增强交易匿名性的, 是以太坊上的Tornado Cash。对于使密文能继续直接运算且结果解密后与明文运算效果一致的同态加密算法而言, 当下正处于探索应用于链上数据隐私保护场景的阶段。
默克尔树算法是区块链数据结构的根基所在, 该算法会把交易哈希循序渐进地一层又一层地予以两两合并, 一直这样操作最后构建成独一无二的单一根哈希。轻型节点仅仅只要存储根哈希便能够去验证任何一笔交易的存在情况, 如此就能大幅度地削减存储数量以及带宽方面的需求, 比特币的简易支付验证钱包恰恰正是依据这个而进行设计的。