区块链本身是由多种技术集合而成,涉及了多方面的内容,而在其组合应用的过程中,同时也产生了很多新的概念。对于这些概念的整理和理解,有助于更加深刻的理解区块链的本质,也可以指导我们如何去伪存真,更好的发挥区块链的价值。
***这份材料需要并且会一直更新,将自己所了解的问题以及已有的解决方案进行整理。***
底层技术
根据所承担功能的不同,区块链可以划分为数据层、网络层、安全层、共识层、应用层,有时还会加上激励层。每一层都会对应不同的技术,包括分布式存储、网络通信、密码学、网络安全、共识机制、智能合约、经济模型等。
分布式存储
分布式存储指的是区块链底层存储数据的工作,包括区块的存储、k-v数据库等。区块一般会以文件的形式存在文件系统上,数据通过k-v数据库来进行管理,比特币、以太坊等使用leveldb,fabric可选leveldb以及couchdb,相对而言,couchdb能够支持更为复杂的富查询,使用更加方便。
网络通信
网络通信用来完成网络中交易转发、区块确认以及各节点之间的数据同步,通常采用p2p的方式,各个节点是对等的。fabric中使用Gossip。
密码学
密码学是区块链用到的重要技术之一。最开始,比特币更多是对椭圆曲线公钥密码算法、Ripemd和SHA2数据摘要算法的应用。生成用户公私钥、地址用来标示用户在链上的唯一性,保证用户资产只能有用户使用;计算交易hash、区块hash,保证每笔交易、每个区块的唯一性...随着区块链的发展,链上隐私保护成为关注的热点,对称加密、密钥协商、新型密码学技术如环签名、同态加密、零知识证明等开始被广泛应用在隐私保护方案中,保护用户隐私数据。
底层平台 | 非对称算法 | 哈希算法 |
比特币 | secp256k1 | Ripemd、SHA2-256 |
以太坊 | secp256k1 | Keccak256、SHA3 |
Fabric | ECDSAP256 | SHA256、SHA384 |
CITA | secp256k1 | Keccak256、SHA3 |
网络安全
网络安全是一个更大层面的内容。包括隐私保护、智能合约安全、甚至协议安全、系统安全等。现阶段,区块链网络安全方面存在诸多问题,隐私保护方案需要进一步完善,能够支持在被节点验证的情况下保护使用者隐私,如引入零知识证明、同态加密、私有账本等各种新兴密码学技术或者解决方案;智能合约的安全性也存在诸多问题,包括基本的代码漏洞等,现在已有诸多创业公司(PeckSheild、链安等)致力于提高智能合约安全性,推出智能合约安全监测工具;协议安全是指区块链协议本身是否安全,有无理论上的漏洞或者安全性问题;系统安全指的是一个区块链系统在建设过程中可能存在的问题,如代码实现、系统运行过程中的问题。
共识机制
共识机制是区块链中最核心的内容,是保证区块链去中心、去信任特性的关键。常见的共识机制有工作量证明(POW)、权益证明(POS)、拜占庭容错(PBFT)、简化版拜占庭容错(RAFT)等,容错能力依次降低。
POW可以容纳一半以下算力时任何错误的发生,但是对资源消耗高,共识时间慢,常用于比特币、以太坊等初期公链项目中;
POS可以容纳一半以下权益时任何错误的发生,减少资源消耗,效率提高,但是权益越高权力越大,最终会向集中式发展,EOS项目使用,以太坊也正在逐渐转向POS;
PBFT是联盟链普遍使用的共识算法,可以容纳约三分之一的错误(3f+1个节点时,容纳f个节点出错),效率相对更高,但是节点数量受限,规模不能过大;
RAFT不能容纳拜占庭错误,基于联盟链参与方之间已有一定的信任基础,常用于联盟链中。
智能合约
本质上看,智能合约就是在链上执行的业务逻辑。智能合约的概念在95时就已经由尼克萨博(Nick Szabo)提出,但是一直没有合适的执行环境。直到区块链出现,为智能合约提供了一个理想的运行环境。
由于不同平台实现的语言不一样,支持的虚拟机不同,因此智能合约的实现语言也不一致。
以太坊使用solidity,fabric可以使用go、java等。
经济模型
经济模块是区块链中的重要部分,是保证整个系统成功、稳定、安全运行的重要基础,尤其是公链以及分布式应用。良好的经济模块可以促使各方都按照系统所设定的正常规则执行,提高作恶的难度,降低作恶的发生,同时奖励诚实的工作者,让系统朝着好的一方面发展。
分类方式
通常来说,区块链有两种主要分类方式。一是根据发展阶段分为区块链1.0、区块链2.0、区块链3.0;二是根据对参与方访问权限和范围的不同分为公有链、联盟链和私有链。
发展阶段
区块链1.0
区块链2.0
区块链3.0
主要形态
公有链
联盟链
私有链