基础部分

    • 环境依赖:部署环境对操作系统、网络、基础库及其他工具的依赖情况
    • 部署方式:部署区块链节点的方法及复杂程度
    名称 XuperUnoin Fabric Ethereum EOS
    环境依赖 Golang Golang Docker Golang Solidity C++lib
    部署方式 本地源码编译不依赖其他lib 拉取docker镜像或本地源码编译(有第三方lib依赖) 本地源码编译不依赖其他lib 包管理工具部署或在Linux本地CMake
    • 用户接口:区块链为使用者提供了那些接口,以及各自功能支持情况
    • 账号系统:区块链上账号在功能、权限上的设计情况

    功能部分

    • 智能合约:链上运行智能合约支持的开发语言、功能的丰富情况以及对开发者的友好程度
    • 数据模型:区块链采用何种结构存储数据记录交易
    • 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
    安全指标 · 使用TDPoS共识可防止1/2以下矿工节点的拜占庭攻击· 支持Gas,防止作恶,避免DDos攻击 · 节点加入时采用CA进行认证,认为网络中的节点不会作恶· 中心化共识不能防御拜占庭节点问题 · 采用PoW共识,能够防止50%以下算力的攻击 · 使用BFT-DPoS可防止1/3以下拜占庭节点的攻击

    参照文献

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

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