概述
什么是区块链
区块链的本质
区块链本质上是去中心化的数据库。
中心化与去中心化数据库
为什么需要去中心化数据库?
中心化数据库的缺点:
- 容易单点失效
- 隐私保护性较差
- 信息易泄露
- 诚信问题
去中心化系统(区块链)的优点:
- 避免单点失效
- 公开透明
- 不可篡改性
- 可追溯性
区块链名称的由来
区块链涉及的技术
区块链是由多项技术的融合技术。
区块链技术特征概述
区块链具备哪些技术特性
以去中心化为特色的区块链包含多种特征技术的融合。
加密技术
区块链系统为本身包含多种加密技术,包括公钥密码学技术、对称加密技术、哈希函数等。
隐私保护与可信
公钥代表身份,私钥代表权利,很好地保护了交易方隐私。
密码学签名可以让交易不可抵赖,区块链的去中心化特性保护账本安全,让交易更可信。
可审计和透明
分布式共治
分布式网络中节点以去中心化为特色的区块链包含多种特征技术的融合。
应用场景与未来前景
应用场景
- 存证
- 金融
- 版权
- 溯源
- 隐私保护
未来前景
- 2019年10月24日,我国明确了要大力发展区块链技术。
- 2020年4月,发改委将区块链技术纳入了新基建的范畴。
分类与架构相关术语
分类
概述
在诞生了一个新兴技术的同时,区块链也带来了很多专业的常用术语。
从类型上划分,区块链可以被称为许可链和非许可链,有时也会划分为公链、联盟链和私链。
许可链和非许可链
按照系统是否具有节点准入机制,区块链可分类为许可链和非许可链。
- 许可链中节点的加入退出需要区块链系统的许可,根据拥有控制权限的主体是否集中可分为联盟链和私有链;
- 非许可链则是完全开放的,亦可称为共有链,节点可以随时自由加入和退出。
公有链(非许可链) | 联盟链(许可链) | 私有链(许可链) |
---|---|---|
开放程度高,任何人都可以参与 | 有准入机制的开放,联盟成员方可参与 | 仅限内部使用 |
架构相关术语
块链式数据结构的概念
- 区块链本质上是要实现一个去中心化的账本。
- 区块链的账本存在形式就是一个链块式结构。
有向无环图(DAG)
DAG(Directed Acyclic Graph)叫做有向无环图,如果一个有向图无法从任意顶点出发经过若干条边回到该点,则这个图就是有向无环图。
P2P网络(对等网络)
P2P(Peer-to-Peer)可理解为对等计算或对等网络。
P2P网络中无中心化节点,每个主机即是服务器,也是客户端。
常用术语
智能合约
工业和信息化部人才交流中心发布的《区块链产业人才岗位要求》对智能合约的定义是:
以数字形式定义的能够自动执行条款的合约。
- 智能合约是由Nick Szabo于1994年提出的。
- 智能合约之于区块链,相当于SQL之于数据库。
协议
协议,网络协议的简称,网络协议是通过通信计算机双方必须共同遵从的一组约定。
双花
- 双花即双花攻击,顾名思义也就是把一笔资金花出去2次或多次。
- 双花攻击想要成功:
- 一定要分叉
- 一定要算力或资金足够强大
共识算法
工业和信息化部人才交流中心发布的《区块链产业人才岗位要求》对共识算法的定义是:
区块链系统中各分布节点对事务或状态的验证、记录、修改等行为达成一致确认的方法。
签名
国标《信息技术区块链和分布式记账技术参考架构》(征求意见稿)数字签名的定义是:
附加在数据单元上的数据,或是对数据单元做作的密码变换,这种数据或变换允许数据单元接收者用以确认数据单元的来源和完整性,并保护数据防止被人(例如接收者)伪造或抵赖。
数字签名是现实社会中签名(sign)和盖章这样的行为在数字世界中的实现。
区块链中的签名指基于PKI系统(公钥基础设施)或区块链公私钥的数字签名。
加密算法
国标《信息技术区块链和分布式记账技术参考架构》(征求意见稿)对加密的定义是:
对数据进行密码变换以产生密文的过程。一般包含一个变换集合,该变换使用一套算法和一套输入参量。输入参量通常被称为密钥。
加密算法可以分为对称加密算法和非对称加密算法。
常见的非对称加密算法
RSA、Elgamal、ECC
常见的对称加密算法
AES、DES、3DES
国密算法
国密即国家密码局认定的国产密码算法。
主要国密算法:
SM1对称加密
SM2非对称加密
SM3消息摘要加密
SM4无线局域网标准的分组数据方法
匿名性和开放性
匿名性
什么是匿名性
匿名性的定义
匿名性是指个人在去中心化的群体中隐藏自己个性的一种现象。
区块链的匿名性主要是指个人数字资产的匿名化,或者个人在区块链上行为(交易)的匿名化。
匿名性存在的争议
匿名性与KYC
区块链因为匿名性在保护用户隐私的同时也为一些违法犯罪行为提供了“保护伞”。
KYC(Know your customer)(了解你的客户)是反洗钱且预防腐败的基础政策。
匿名性的级别划分
匿名性的级别划分为基础级、高级和极致级
基础级:如果知道转账记录背后的人,即可查询所有的转账记录及资产
高级:即使查询到地址背后的人,也无法知道所有的转账信息
极致级:只有持有私钥才可以查看对应地址的交易行为
基本级 | 高级 | 极致级 |
---|---|---|
链上资产的匿名化 | 交易的匿名功能 | 不可查看他人的交易信息 |
开放性
什么是开发性
区块链的开放性主要体现
账目的开放性
组织结构的开放性
生态的开放性
区块链的开放程度
开放程度划分 | 公有链 开放程度最高,任何人可参与 | 联盟链(许可链) 有准入机制的开放,联盟成员方可参与 | 私有链(许可链) 仅限内部使用 |
---|---|---|---|
按照系统是否具有节点准入机制划分 | 非许可链 (完全开放) | 许可链 (节点的加入退出需要区块链系统的许可) |
开放性与匿名性是否冲突
开放的基础上匿名
- 匿名性要做到在系统开放的情形下还能做到个性隐藏;
- 区块链的匿名性是数据安全和身份安全的保障,身份匿名与身份认证是相辅相成的。
开放性(参与程度)&匿名性(个性隐藏)
可编程和可追溯
可编程
区块链的可编程特征
区块链可编程的进化
区块链3.0 可编程社会 |
区块链2.0 可编程金融 |
区块链1.0 可编程货币 |
区块链和智能合约的关系
最佳拍档
智能合约并非一定要运行在区块链系统。
区块链系统是最合适智能合约运行的环境。
可追溯
可追溯性的概念
什么是区块链的可追溯性
区块链的可追溯指加入到区块链中的交易记录将被永久存储,区块链中的每一笔交易记录中均绑定了交易者信息,被完整记录并可追溯,不可被摧毁或篡改。
区块链的可追溯性在食品产业中应用广泛
区块链的可追溯性应用领域
贸易、消费、物流、工业
基于区块链追溯的优势
不可篡改性
为什么需要不可篡改
不可篡改的必要性
- 区块链要在开放的网络中实现一个可信的账本,数据安全是第一要求;
- 数据安全的要素就是账本不可损坏和不可篡改。
不可篡改的技术实现
- 分布式多点记账(P2P)保障账本安全、不可篡改的第一个手段;
- 链块式结构来保障账本安全、不可篡改的第二个手段;
- 链块时结构实现的关键点是哈希函数。
不可篡改的核心技术保证
哈希函数概念
- 哈希函数一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。
- 哈希函数是防碰撞的。
哈希指针组成的链块式结构
- 简单理解的话,可以认为区块内包含时间戳、交易信息、前块哈希和当前块哈希。
- 后一个块内始终记录前一块的哈希值,通过后块始终可以找到其前块。
默克尔树助力防篡改
- 一个区块分为区块头和区块体两部分。
- 区块哈希值由前块哈希值、Nonce(随机值)、默克尔树根、时间戳作为输入项计算获得,执行信息都记录在区块头中。
其他特性
数据完整性
什么是数据完整性
区块链可以很好地保证数据完整性,数据完整性主要包含以下两个方面:
数据的精确性
数据的可靠性
数据完整性的技术保证
- 哈希算法验证数据真伪
- 数字签名技术验证数据修改权限
- P2P网络,分布式多节点数据备份
自治性
什么是区块链的自治性
- 自治性本是科学社会学的一项术语,指一个社会系统具备一定的自我治理能力。
- 区块链网络形成的社区,也可以通过区块链协议及特性本身达到自治的效果。
集体维护
什么是集体维护
- 区块链的各个参与方基于区块链的协议共同维护区块链系统被称为集体维护。
- 由于区块链的开放性、共治性,其必然是一个需要集体维护的系统。
集体维护的意义
- 集体维护提升了区块链的可信度,这种机制更容易建立节点间的信任。
- 集体维护提升了区块链的扩展性和健壮性。
不可抵赖
区块链的不可抵赖性
不可抵赖 | |
行为的不可抵赖 | 行为发生时间的不可抵赖 |
数字签名 | 时间戳 |
系统架构概述
区块链系统架构概要
区块链系统架构
区块链系统架构采用了分层结构。
应用层 | 封装区块链的各种应用场景和案例 |
合约层 | 封装各类脚本、算法和智能合约 |
通信层 | 节点间通信的通信协议 |
共识层 | 对区块数据的有效性达成共识 |
通道层 | 联盟链中确保隐私安全 |
网络层 | 区块链网络中节点与节点之间的信息交流方式 |
数据层 | 存储区块链基础数据 |
数据层
实现功能
数据层主要实现数据存储,账户和交易的实现与安全功能。
数据层 | 数据结构 | 区块 链式结构 |
驱动数据 | 事件机制 |
区块
数据区块主要包括区块头和区块体两个部分。
注意:不同区块链系统中,区块设计存在差异。
链式结构
在区块链中,区块按时间顺序将数据区块进行连接,这种单链的链式的区块链就是链式结构模型。
网络层
网络层主要通过P2P技术实现分布式网络的机制,网络层包括P2P组网机制、数据传播机制和数据验证机制。
P2P组网机制
一般采用对等式网络(Peer-to-peer network,P2P网络)来组织散布全球的参与数据验证和记账的节点。
数据传播机制
交易数据生成后,将由生成该数据的节点广播到全网其他所有的节点来加以验证。
数据验证机制
数据验证是区块链技术极为重要的一环。
交易格式 |
交易数据结构 |
格式语法结构 |
输入输出 |
数字签名正确性 |
通道层
在联盟区块链中,通道层用于实现业务之间隔离。
共识层
在区块链共识层中封装了共识机制来确定记账权,拥有记账权的人将会把数据以区块数据的形式添加到区块链中。
通信层
通信层主要包括节点间通信的通信协议层,用以确定节点通信规范。
通信机制(RPC、HTTP、IPC等等)
合约层
合约层主要包括各种脚本、代码、算法机制及智能合约,是区块链可编程的基础。
应用层
区块链的应用层封装了各种应用场景和案例。