共识机制

更新时间:2019-08-16 22:26:00点击:446 技术架构

共识机制层负责协调保障全网各个节点数据记录的一致性。
区块链系统中的数据由所有节点独立存储,在共识机制的协调下,共识层同步各节点的账本,从而实现节点选举、数据一致性验证和数据同步控制等功能。
数据同步和一致性协调使得区块链系统具有信息透明、数据共享的特性。
下表是常见的2种共识机制的对比
第一类共识机制 第二类共识机制
写入顺序 先写入后共识 先共识后写入
算法代表 POW,POS,DPOS PBFT,BFT变种
共识过程 大概率一致就共识工程学最后确认 确认一致性再共识
共识即确认
复杂性 计算复杂度高 网络复杂度高
仲裁机制 如果共识出现多个记账节点,就会产生分叉,最终以最长链为准 法定人数投票,各节点间P2P广播沟通达成一致
是否分叉 有分叉 无分叉
安全阈值 作恶节点不超过1/2 作恶节点不超过1/3总节点
节点数量 节点数量随意改变
节点数越多越稳定 节点数不能随意改变
节点数越多,性能下降
应用场景 多用于非许可链 用于许可链
上述的两种共识机制,主要是根据数据的写入顺序先后来判定。
从业务应用需求看,共识算法的实现应该综合考虑应用环境、性能等诸多要求。
一般来说,许可链采用节点投票的共识机制,以降低安全性为代价,提升系统性能。
非许可链采用基于工作量或者权益证明等算法,主要强调系统安全性,但是性能较差。
为了鼓励各节点参与进来,维护区块链系统的安全运行,非许可链采用发行Token的方式,作为参与方的酬劳和激励机制,即通过经济平衡的手段来防止对总账本内容进行篡改。因此,根据运行环境和信任分级,选择适用的共识机制是区块链应用落地应当考虑的重要因素之一。
下面我们列举下几种共识算法的对比
特性 POW POS DPOS PBFT VRF
节点管理 无许可 无许可 无许可 需许可 需许可
交易延迟 高(分) 低(秒) 低(秒) 低(毫秒) 低(毫秒)
吞吐量 低 高 高 高 高
节能 否 是 是 是 是
安全边界 恶意算力<1/2 恶意权益<1/2 恶意权益<1/2 恶意节点<1/3 恶意节点<1/3
代表应用 Bitcoin,Ethereum Peercoin Bitshare Fabric 溯源链(OTI)
扩展性 好 好 好 差 好
根据上述对比可知,溯源链(OTI)生态系统将采取VRF共识机制,更好低完成交易和智能锁体验度,让更多的智能锁机构能开发好自己的侧链,让智能锁行业更好地得到创新开发。
智能合约(Smart Contract)
智能合约层负责将区块链智能锁行业系统的业务逻辑以代码的形式实现、编译并部署,完成既定规则的条件触发和自动执行,最大限度的减少人工干预。
智能合约的操作对象大多为数字资产,数据上链后难以修改、触发条件强等特性决定了智能合约的适用具有高价值和高风险,如何规避风险并发挥价值是当前智能合约大范围应用的难点。
智能合约根据图灵完备与否分成两类:图灵完备和非图灵完备。
影响实现图灵完备的常见原因包括:循环或递归受限、无法实现数组或更复杂的数据结构等。
图灵完备的智能合约有较强的适应性,可以对逻辑较复杂的业务操作进行编程,但有陷入死循环的可能。
对比而言,图灵不完备的智能合约虽然不能进行复杂逻辑操作,但是更加简单、高效和安全。
下面对比下主流平台的智能合约特性


区块链平台 是否图灵完备 开发语言
比特币 不完备 Bitcoin Script
以太坊 完备 Solidity
EOS 完备 C++
Hyperledger Fabric 完备 Go
Hyperledger Sawtooth 完备 Python
溯源链(OTI) 完备 Kotlin/Java

当前智能合约的应用仍然处于比较初级的阶段,智能合约成为区块链安全的“重灾区”。从历次智能合约漏洞引发的安全时间看,合约便携存在较多安全漏洞,对其安全性带来了巨大挑战。
目前,提升智能合约安全性一般有几个思路:
一是形式化验证,通过严密的数学证明来确保合约代码所表达的逻辑符合意图。此法逻辑严密,但是难度较大,一般需要委托第三方专业机构进行审计。
二是智能合约加密。智能合约不能被第三方明文读取,以此减少智能合约因为逻辑上的安全漏洞而被攻击。此法成本较低,但无法开源。
三是严格规范合约语言的语法格式。总结智能合约优秀模式,开发标准智能合约模版,以一定的标准规范智能合约的编写可以提高智能合约的质量,提高合约的安全性。

推荐阅读