1.中心化与去中心化
中心化:单个组织为枢纽构建信任关系的场景特点
例子:电子支付场景下,用户必须通过银行的信息系统完成身份验证、信用审查和交易追溯。
去中心化:指不依靠单一组织进行信任构建的场景特点,该场景下每个组织的重要性基本相同。
2.加密货币
加密货币:一类数字货币技术,利用多种 密码学方法 处理货币数据,保证用户的匿名性、价值的有效性;利用可信设施发放和核对货币数据,保证货币数量的可控性、资产记录的可审核性,从而使货币数据成为具备流通属性的价值交换媒介,同时保护使用者隐私。
盲签技术
交易流程:付款方使用银行账户兑换加密货币,将货币数据发给领款者,领款者向银行发起核对请求,银行向领款者记入等额数值。
3.区块链的工作流程
1)生成区块。区块链节点收集广播在网络中的交易(需要记录的数据条目),然后将这些交易打包成区块(具有特定结构的数据集)
2)共识验证。节点将区块广播到网络中,全网节点接受到大量区块后进行顺序的共识和内容的验证,形成账本(具有特定结构的区块集)
3)账本维护。节点长期存储验证通过的账本数据并提供回溯检验功能,为上层应用提供账本访问接口。
4.区块链分类
根据不同场景下的信任构建方式,分为非许可链和许可链。
非许可链(公链):一种完全开放的区块链,任何人都可以加入网络并参与完整的共识记账过程,彼此之间不需要信任。公链以消耗算力等方式建立全网节点的信任关系,具备完全去中心化特点的同时也带来资源浪费效率低下等问题。
许可链:一种半开放式区块链,只有指定的成员可以加入网络,且每个成员的参与权各有不同。许可链通过颁发证书的方式事先建立信任关系具备部分去中心化特点,相比于非许可链拥有更高的效率。进一步可分为联盟链和私链。
联盟链:由多个机构组成的联盟构建,账本的生成、共识、维护分别由联盟指定的成员参与和完成。
私链:数据的产生、共识、维护过程完全由单个组织掌握,被该组织指定的成员仅具有账本的读取权限。
5.区块链的体系结构
自下而上分为网络层、数据层、共识层、控制层和应用层。
1)网络层:基础通信方式——对等网络(P2P,peer-to-peer)网络。对等网络是区别于“客户端/服务器”服务模式的计算机通信与存储架构,网络中每个节点既是数据的提供者也是数据的使用者,节点通过直接交换实现资源信息共享,节点之间地位均等。
网络层由组网结构(描述节点之间的路由和拓扑关系)、通信机制(实现节点间的信息交互)、安全机制(涵盖对端安全和传输安全)组成。
组网结构:无结构对等网络(网络中不存在特殊中继节点、节点路由表的生成无确定规律、网络拓扑呈现随机图状的一类对等网络,有良好容错性和匿名性,由于采用洪泛式机制,可扩展性较差,典型协议:Gnutella)、结构化对等网络(网络中不存在特殊中继节点、节点间根据特定算法生成路由表、网络拓扑具有严格规律的一类对等网络,可扩展性良好,常见DHT网络,算法:Chord、Kademlia)和混合式对等网络(节点通过分布式中继节点实现全网消息路由的一类对等网络,每个中继节点维护部分网络节点地址、文件索引等工作,共同实现数据中继功能,协议Kazza)。
通信机制:承载对等节点的具体交互逻辑。分为三个层次:传播层(实现数据基本传输,单点传播——不经过其他节点转发和多点传播——发出数据的节点通过广播向临近节点进行数据转发的传播方式,区块链普遍基于Gossip协议实现洪泛式传播)、连接层和交互逻辑层。
安全机制:非许可链:Tor(洋葱路由)通过沿路径的层层数据加密机制来保护对端身份。许可链:身份安全(数字签名)和传输安全(TLS点对点传输和基于Hash算法的数据验证技术)
网络层研究现状:测量优化、匿名分析和隐私安全保护。
2)数据层:区块链技术体系的核心。定义了各节点数据的联系和组织方式,利用多种算法和机制保证数据的强关联性和验证的高效性,使区块链具备实用的数据防篡改特性。关键技术:信息模型(UTXO、基于账户和键值对模型)、关联验证和加密机制。
UTXO:每笔交易(Tx)由输入数据(Input)和输出数据(Output)组成,输出数据为交易金额(Num)和用户公钥地址(Adr),而输入数据为上一笔交易输出数据的指针(Pointer),直到该比特币的初始交易由区块链网络向节点发放。
区块:由区块头和区块体组成。区块体含一定数量的交易集合;区块头通过前继散列维持与上一区块的关联从而形成链状结构,通过MKT(MerkleTree默克尔树)生成的根散列快速验证区块体交易集合的完整性。
散列算法也成为散列函数,它实现了明文到密文的不可逆映射,任意长度的输入变化得到固定长度的输出,即使元数据有细微差距,变化后的输出也会产生显著不同。
MKT:根散列、散列分支和交易数据。MKT首先对交易进行散列运算,再对散列值进行分组散列,最后逐级递归直至根散列。优势:对根散列的完整性确定即间接地实现交易的完整性确认,提高效率,根据交易的散列路径,降低验证某交易存在性的复杂度。
研究方向:高效验证、匿名分析、隐私保护
3)共识层:拜占庭错误:相互独立的组件可以做出任意或恶意的行为,并可能与其他错误组件产生协作。状态机复制(解决分布式系统容错),基本思想:任何计算都表示为状态机,通过接收消息来更改其状态。区块链使用的共识协议需要解决的是部分同步模型下的拜占庭容错问题。
区块链包含PoX、BFT和CFT类基础共识协议。PoX基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错。CFT用于实现崩溃容错,通过身份证明手段规避节点作恶的情况,仅考虑节点或网络的崩溃(crash)故障,主要包括Raft,Paxos,Kafka等协议。
PoX类协议:也称为Nakamoto协议。该协议在区块链头结构中加入随机数Nonce,并设计证明依据:为生成新区块,节点必须计算出合适的Nonce值,使新生成的区块头经过双重SHA256运算后小于特定的阈值。
BFT协议:例子:PBFT(将节点分为主节点和副节点,主节点负责将交易打包成区块,副节点参与验证和转发):主节点首先收集交易后排序并提出合法区块提案;其余节点先验证提案的合法性,然后根据区块内交易顺序依次执行并将结果摘要组播;各节点收到2f个与自身相同的摘要后便组播接受投票,节点收到超过2f+1个投票时存储区块及其产生的新状态。
CFT类协议:Raft:将节点分为跟随节点、候选节点和领导节点,领导节点负责将交易打包为区块,追随节点响应领导节点的同步指令,候选节点完成领导节点的选举工作,当网络运行稳定时,只存在领导节点和追随节点,领导节点向追随节点推送区块数据从而实现同步。节点均设置生存时间决定角色变化周期,领导节点的心跳信息不断重置追随节点的生存时间,当领导节点发生崩溃时,追随节点自动转化为候选节点并进入选举流程,实现网络自恢复。
奖惩机制:激励机制(弥补节点算力消耗,平衡协议运行收益比,代表机制PPLNS,PPS)和惩罚策略。
研究方向:混合型协议(Hybrid)
4)控制层:控制层由处理模型(从区块链系统的角度分析和描述业务/交易处理方式的差异)、控制合约(将业务逻辑转化为交易、区块、账本的具体操作)和执行环境(为节点封装通用的运行资源,使区块链具有稳定的可移植性)组成。
处理模型:分为链上(业务数据完全存储在账本中,通过账本直接存取实现数据交互)和链下(业务数据部分或完全存储在账本之外,只在账本中存储指针以及其他证明业务数据存在性、真实性和有效性的数据)2种。
控制合约:区块链中控制合约经历了 2 个发展阶段,首先是以比特币为代表的非图灵完备的自动化脚本,用于锁定和解锁基于 UTXO 信息模型的交易,与强关联账本共同克服了双花等问题,使交易数据具备流通价值。其次是以以太坊为代表的图灵完备的智能合约,智能合约是一种基于账本数据自动执行的数字化合同,由开发者根据需求预先定义,是上层应用将业务逻辑编译为节点和账本操作集合的关键。智能合约通过允许相互不信任的参与者在没有可信第三方的情况下就复杂合同的执行结果达成协议,使合约具备可编程性,实现业务逻辑的灵活定义并扩展区块链的使用。
执行环境:原生环境(合约与节点系统紧耦合,经过源码编译后直接执行,该方式下合约能经历完善的静态分析,提高安全性)和沙盒环境(为节点运行提供必要的虚拟环境,包括网网络通信、数据存储以及图灵完备的计算/控制环境)。
研究方向:可扩展性优化与安全防护。
区块链综述
版权声明:本文为SJTU_liangge原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。