区块链系统对比

对比指标重点围绕区块链行业关注的特性以及相关技术设定,主要分为以下五个类别

基础部分:区块链系统在环境部署、硬件支持等方面的表现

账户部分:区块链系统上和用户账户操作相关的功能

功能部分:区块链系统提供的核心功能

性能部分:区块链在不同场景下的吞吐量、资源消耗情况

安全部分:区块链在预防欺诈节点等攻击行为的表现


评价范围

名称 XuperUnoin Fabric Ethereum EOS
系统定位 一种更通用的开源分布式账本平台,不仅适用于面向企业的应用场景,同时也适用于公开网络应用场景 面向企业应用场景的开源分布式账本平台(节点加入Fabric网络之前需经过CA权限验证,不适用公开网络应用场景) 主要面向公开网络应用场景,也在积极进入企业应用场景市场 一个新的区块链底层公链系统,旨在实现分布式应用的性能扩展

基础部分

  • 环境依赖:部署环境对操作系统、网络、基础库及其他工具的依赖情况
  • 部署方式:部署区块链节点的方法及复杂程度
名称 XuperUnoin Fabric Ethereum EOS
环境依赖 Golang Golang Docker Golang Solidity C++lib
部署方式 本地源码编译不依赖其他lib 拉取docker镜像或本地源码编译(有第三方lib依赖) 本地源码编译不依赖其他lib 包管理工具部署或在Linux本地CMake

账户部分

  • 用户接口:区块链为使用者提供了那些接口,以及各自功能支持情况
  • 账号系统:区块链上账号在功能、权限上的设计情况
名称 XuperUnoin Fabric Ethereum EOS
用户接口 · 支持SDK、API· 提供gRPC、RESTful接口· 具有完整功能的命令行 · 具备RESTful API· SDK支持NodeJS、Java等语言· 命令行功能较弱,需要对API进行二次开发 · 支持命令行、API· SDK支持go/C++等语言 · 支持命令行、SDK· SDK支持C++/Js等语言
账号系统 · 账户分为个人账号与合约账号· 合约账号由多个私钥持有,支持权重阈值功能 · 账号区分不同类别,包含Peer/Orderer/用户等· 有专门的CA节点提供账号相关功能 · 账户分为个人账号与合约账号· 个人账号由用户的私钥控制,合约账号无私钥,行为由其中部署的合约代码控制 · 采用账户与权限系统· 支持自定义的权限和权重阈值功能

功能部分

  • 共识算法:区块链支持哪些共识算法,以及运行状态下进行变更的灵活程度
  • 智能合约:链上运行智能合约支持的开发语言、功能的丰富情况以及对开发者的友好程度
  • 数据模型:区块链采用何种结构存储数据记录交易
  • p2p网络:区块链的节点网络以何种方式维持并增删节点
名称 XuperUnoin Fabric Ethereum EOS
共识算法 · 自研TDPoS共识,每3秒全网出一个块· 共识机制可插拔,支持不同场景的应用需求以及热升级 · 支持Kafka中心化的共识算法· 支持PBFT算法· 有交易才产生区块,不出空块 · 使用PoW算法· 使用内存需求较高的哈希函数,避免出现算力矿机· 使用uncle块激励机制,减少区块产生间隔为 15 秒 · 使用BFT-DPoS算法· 0.5秒出块时间 + 1秒全网确认· 每轮产生6个区块以减少网络延时的影响
智能合约 · 支持Go/C/C++· 自研指令级优化的高性能虚拟机 · 支持GAS,不依赖Docker · 读写集与数据版本绑定,支持在同一个区块对数据状态做多次更改 · 支持Go/Java/NodeJs · 不支持GAS,依赖Docker· 读写集与区块高度绑定,不支持在同一个区块对数据状态做多次更改 · 使用定制语言Solidity,Serpent,LLL· 有额外学习成本· 提供EVM轻量级虚拟机环境 · 支持C++及其他支持wasm的语言· 支持基于wasm的虚拟机模型,在性能和跨平台兼容性之间取得了很好的平衡· eosiolib中具备丰富的开发库
数据模型 · 采用UTXO模型· 计算在链外,不需要对交易进行额外计算,也没有额外状态存储· 灵活性强,更容易并发处理 · 本身无代币功能,需要通过自行开发智能合约实现 · 采用Account模型保存世界状态· 状态在节点以MPT方式存储,网络传输更少,空间使用更有效率 · 采用账户模型,操作以账户为基础,转账、更新其他信息,都是基于账户的操作
p2p网络 · DHT,支持自动节点发现且数据加密传输· 适用于任意规模的区块链网络 · Gossip,适用于规模较小的区块链网络 · Kademlia,一定程度上保持了网络的活性和安全性 · 有自己的p2p组网功能的插件

性能部分

  • 吞吐数据:在给定的配置下,交易和智能合约运行吞吐量及延迟
  • 资源消耗:在制定的交易频率下,区块链系统对资源的消耗情况
名称 XuperUnoin Fabric Ethereum EOS
性能数据 60000+TPS [1]TDPoS共识下交易在0.5s内确认 1000+TPS交易确认延迟约0.5s [2] TPS是瓶颈之一 3000+TPS交易能够在1.5s内确认 [3]
资源消耗 在1000TPS下资源消耗2.95% (E5 2620 2.40GHz 24Core)1.08GB(RAM) 待测 无法达到1000TPS 待测

安全部分

  • 攻击预防:区块链系统对于拜占庭节点的容忍程度
名称 XuperUnoin Fabric Ethereum EOS
安全指标 · 使用TDPoS共识可防止1/2以下矿工节点的拜占庭攻击· 支持Gas,防止作恶,避免DDos攻击 · 节点加入时采用CA进行认证,认为网络中的节点不会作恶· 中心化共识不能防御拜占庭节点问题 · 采用PoW共识,能够防止50%以下算力的攻击 · 使用BFT-DPoS可防止1/3以下拜占庭节点的攻击

参照文献

[1] 性能数据环境配置:60核2.6GHz,128GRAM, NVME SSD 1TB,使用TDPoS共识,5节点异步模式

[2] Parth Thakkar. Performance Benchmarking and Optimizing Hyperledger Fabric Blockchain Platform

[3] Feature-complete pre-release of EOSIO, Dawn 3.0