区块链技术指南
前言
区块链的诞生
记账科技的千年演化
分布式记账与区块链
站在前人肩膀上的比特币
区块链的商业价值
本章小结
核心技术概览
定义与原理
技术的演化与分类
关键问题和挑战
趋势与展望
认识上的误区
本章小结
典型应用场景
应用场景概览
金融服务
征信管理
权属管理与溯源
资源共享
物流与供应链
物联网
其它场景
本章小结
分布式系统核心技术
一致性问题
共识算法
FLP 不可能原理
CAP 原理
ACID 原则与多阶段提交
Paxos 算法与 Raft 算法
拜占庭问题与算法
可靠性指标
本章小结
密码学与安全技术
密码学简史
Hash 算法与数字摘要
加解密算法
消息认证码与数字签名
数字证书
PKI 体系
Merkle 树结构
Bloom Filter 结构
同态加密
其它技术
本章小结
比特币 —— 区块链思想诞生的摇篮
比特币项目简介
实体货币到加密数字货币
基本原理和设计
挖矿过程
共识机制
闪电网络
侧链
热点问题
相关工具
本章小结
以太坊 —— 挣脱加密货币的枷锁
以太坊项目简介
核心概念
主要设计
相关工具
安装客户端
使用智能合约
智能合约案例:投票
本章小结
超级账本 —— 面向企业的分布式账本
超级账本项目简介
社区组织结构
顶级项目介绍
开发必备工具
贡献代码
本章小结
Fabric 部署与管理
简介
使用 Fabric 1.0 版本
使用 Fabric SDK Node
Fabric v0.6
安装部署
使用 chaincode
权限管理
Python 客户端
小结
区块链应用开发
简介
链上代码工作原理
示例一:信息公证
示例二:交易资产
示例三:数字货币发行与管理
示例四:学历认证
示例五:社区能源共享
小结
Fabric 架构与设计
简介
架构设计
消息协议
小结
区块链服务平台设计
简介
IBM Bluemix 云区块链服务
微软 Azure 云区块链服务
使用超级账本 Cello 搭建区块链服务
本章小结
性能与评测
简介
Hyperledger Fabric v0.6
小结
附录
术语
常见问题
Golang 开发相关
安装与配置 Golang 环境
编辑器与 IDE
高效开发工具
依赖管理
ProtoBuf 与 gRPC
参考资源链接
哈喽比特
术语
通用术语
Blockchain(区块链):基于密码学的可实现信任化的信息存储和处理的结构和技术。
Byzantine Failure(拜占庭错误):指系统中存在除了消息延迟或不可送达的故障以外的错误,包括消息被篡改、节点不按照协议进行处理等,潜在地会对系统造成针对性的破坏。
CDN:Content Delivery Network,内容分发网络。利用在多个地理位置预先配置的缓存服务器,自动从距离近的缓存服务器进行对请求的响应,以实现资源的快速分发。
Consensus(共识):分布式系统中多个参与方对某个信息达成一致,多数情况下为对发生事件的顺序达成一致。
Decentralization(去中心化):无需一个独立第三方的中心机构存在,有时候也叫多中心化。
Distributed(分布式):非单体中央节点的实现,通常由多个个体通过某种组织形式联合在一起,对外呈现统一的服务形式。
Distributed Ledger(分布式账本):由多家联合维护的去中心化(或多中心化)的账本记录平台。
DLT:Distributed Ledger Technology,分布式账本技术。包括区块链、权限管理等在内的实现分布式账本的技术。
DTCC:Depository Trust and Clearing Corporation,存托和结算公司。全球最大的金融交易后台服务机构。
Fintech:Financial Technology,跟金融相关的(信息)技术。
Gossip:一种 P2P 网络中多个节点之间进行数据同步的协议,如随机选择邻居进行转发。
LDAP:Lightweight Directory Access Protocol,轻量级目录访问协议,是一种为查询、搜索业务而设计的分布式数据库协议,一般具有优秀的读性能,但写性能往往较差。
Market Depth(市场深度):衡量市场承受大额交易后汇率的稳定能力,例如证券交易市场出现大额交易后价格不出现大幅波动。
MTBF:Mean Time Between Failures,平均故障间隔时间,即系统可以无故障运行的预期时间。
MTTR:Mean Time to Repair,平均修复时间,即发生故障后,系统可以恢复到正常运行的预期时间。
MVCC:Multi-Version Concurrency Control,多版本并发控制。数据库领域的技术,通过引入版本来实现并发更新请求的乐观处理,当更新处理时数据版本跟请求中注明版本不一致时则拒绝更新。发生更新成功则将数据的版本加一。
Non-validating Peer(非验证节点):不参与账本维护,仅作为交易代理响应客户端的请求,并对交易进行一些基本的有效性检查,之后转发给验证节点。
P2P:点到点的通信网络,网络中所有节点地位均等,不存在中心化的控制机制。
SLA/SLI/SLO:Service Level Agreement/Indicator/Objective,分别描述服务可用性对用户的承诺,功能指标和目标值。
SWIFT:Society for Worldwide Interbank Financial Telecommunication,环球银行金融电信协会,运营世界金融电文网络,服务银行和金融机构。
Turing-complete(图灵完备):指一个机器或装置能用来模拟图灵机(现代通用计算机的雏形)的功能,图灵完备的机器在可计算性上等价。
Validating Peer(验证节点):维护账本的核心节点,参与一致性维护、对交易的验证和执行。更进一步可以划分为 Endorser、Committer 等多种角色。
密码学与安全相关
ASN.1:Abstract Syntax Notation One,定义了描述数据的表示、编码、传输、解码的一套标准,被广泛应用在计算机、通信和安全领域。
CA:Certificate Authority,负责证书的创建、颁发,在 PKI 体系中最为核心的角色。
CRL:Certification Revocation List,证书吊销列表,包含所撤销的证书列表。
CSR:Certificate Signing Request,证书签名申请,包括通用名、名称、主机、生成私钥算法和大小、CA 配置和序列号等信息,用来发给 CA 服务以颁发签名的证书。
DER:Distinguished Encoding Rules,ASN.1 中定义的一种二进制编码格式,可以用来保存证书或密钥内容。
Genesis Block:创世区块,区块链的第一个区块,一般用于初始化,不带有交易信息。
Hash:哈希算法,任意长度的二进制值映射为较短的固定长度的二进制值的算法。
IES:Integrated Encryption Scheme,集成加密机制,一种混合加密机制,可以应对选择明文攻击(可以获知任意明文和对应密文)情况下的攻击。包括 DLIES(基于离散对数)和 ECIES(基于椭圆曲线)两种实现。
Nonce:密码学术语,表示一个临时的值,多为随机字符串。
OCSP:Online Certificate Status Protocol,在线证书状态协议,通过查询服务来在线确认证书的状态(如是否撤销)。RFC 2560 中定义。
PKCS:Public-Key Cryptography Standards,公钥密码标准,由 RSA 实验室提出,定义了利用 RSA 算法和相关密码学技术来实现安全的系列规范,目前包括 15 个不同领域的规范。最早的版本在 1991 年提出,目前最新版本为 2012 年提出的 2.2 版本。
PEM:Privacy Enhanced Mail,用来保存证书和密钥的一种编码格式,RFC 1421-1424 中定义。
PKI:Public Key Infrastructure,基于公钥体系的安全基础架构。
SM:ShangMi,国家商用密码算法,2010 年以来陆续由国家密码管理局发布的相关标准和规范,主要包括:SM2(基于椭圆曲线密码的公钥密码算法标准)、SM3(Hash 算法标准)、SM4(基于分组加密的对称密码算法标准)、SM9(基于身份的数字证书体系)。2017 年 10 月 30 日,SM2 与 SM9 的数字签名算法在第 55 次 ISO/IEC 信息安全分技术委员会(SC27)上被正式接纳,成为国际标准之一。
CBDC:Central Bank Digital Currency,央行数字货币,由中央银行发行的数字货币,多与已有法币体系挂钩。
比特币、以太坊相关术语
Bitcoin(比特币):最早由中本聪提出和实现的基于区块链思想的数字货币技术。
DAO:Decentralized Autonomous Organization,分布式自治组织,基于区块链的按照智能合约联系起来的松散自治群体。
Lightning Network(闪电网络):通过链外的微支付通道来增大交易吞吐量的技术。
Mining(挖矿):通过暴力尝试来找到一个字符串,使得它加上一组交易信息后的 Hash 值符合特定规则(例如前缀包括若干个 0),找到的人可以宣称新区块被发现,并获得系统奖励的数字货币。
Miner(矿工):参与挖矿的人或组织。
Mining Machine(矿机):专门为数字货币挖矿而设计的设备,包括基于软件、GPU、FPGA、专用芯片等多种实现。
Mining Pool(矿池):采用团队协作方式来集中算力进行挖矿,对产出的数字货币进行分配。
PoS:Proof of Stake,股份持有证明,拥有代币或股权越多的用户,挖到矿的概率越大。
PoW:Proof of Work,工作量证明,在一定难题前提下求解一个 SHA256 的 Hash 问题。
Smart Contract(智能合约):运行在区块链上的提前约定的合同;
Sybil Attack(女巫攻击):少数节点通过伪造或盗用身份伪装成大量节点,进而对分布式系统系统进行破坏。
超级账本相关术语
Anchor(锚定):某个组织内的节点暴露出来给其它组织看到,作为协助沟通不同组织之间的节点组成 Gossip 的渠道。
Auditability(审计性):在一定权限和许可下,可以对链上的交易进行审计和检查。
Block(区块):代表一批得到确认的交易信息的整体,准备被共识加入到区块链中。
Blockchain(区块链):由多个区块链接而成的链表结构,除了初始区块,每个区块头部都包括前继区块内容的 Hash 值。
Bootstrap(启动):刚启动的节点可以连接到启动节点列表以获取网络中其它节点信息。启动节点必须为同一组织内节点。
Chaincode(链码):区块链上的应用代码,扩展自“智能合约”概念,支持 Golang、Nodejs 等语言,多为图灵完备。
Channel(通道):Fabric 网络上的私有隔离机制。通道中的链码和交易只有加入该通道的节点可见。同一个节点可以加入多个通道,并为每个通道内容维护一个账本。
Committer(提交节点):一种 Peer 节点角色,负责对 Orderer 排序后的交易进行检查,选择合法的交易执行并写入存储。
Commitment(提交):提交节点完成对排序后交易的验证,将交易内容写到区块,并更新世界状态的过程。
Confidentiality(保密):只有交易相关方可以看到交易内容,其它人未经授权则无法看到。
Endorser(推荐节点或背书节点):一种 Peer 节点角色,负责检验某个交易是否合法,是否愿意为之背书、签名。
Endorsement:背书过程。按照链码部署时候的背书策略,相关 Peer 对交易提案进行模拟和检查,决策是否为之背书。如果交易提案获得了足够多的背书,则可以构造正式交易进行进一步的共识。
Invoke(调用):一种交易类型,对链码中的某个方法进行调用,一般需要包括调用方法和调用参数。
Ledger(账本):包括区块链结构(带有所有的交易信息)和当前的世界状态(world state)。
Member(成员):代表某个具体的实体身份,在网络中拥有自己的根证书。节点和应用都必须属于某个成员身份。同一个成员可以在同一个通道中拥有多个 Peer 节点,其中一个为 Leader 节点,代表成员与排序节点进行交互,并分发排序后的区块给属于同一成员的其它节点。
MSP(Member Service Provider,成员服务提供者):抽象的实现成员服务(身份验证,证书管理等)的组件,实现对不同类型的成员服务的可拔插支持。
Orderer(排序节点):共识服务角色,负责排序看到的交易,提供全局确认的顺序。
Permissioned Ledger(带权限的账本):网络中所有节点必须是经过许可的,非许可过的节点则无法加入网络。
Privacy(隐私保护):交易员可以隐藏交易的身份,其它成员在无特殊权限的情况下,只能对交易进行验证,而无法获知身份信息。
System Chain(系统链):由对网络中配置进行变更的配置区块组成,一般可以用来作为组成网络成员们形成的联盟约定。
Transaction(交易):执行账本上的某个函数调用或者部署、更新链码。调用的具体函数在链码中实现。
Transactor(交易者):发起交易调用的客户端。
World State(世界状态):即最新的全局账本状态。Fabric 用它来存储历史交易发生后产生的最新的状态,可以用键值或文档数据库实现。
Copyright© 2013-2020
All Rights Reserved
京ICP备2023019179号-8