区块链技术介绍
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
挖矿(达成全网共识)
验证交易
每个全节点依据统一的标准对每个交易进行验证。验证交易通过后,将交易加入交易池中。
构建区块
矿工用交易池中的一组交易构建一个候选区块的主题,再构建区块头。
校验并广播区块
矿工成功构建一个区块后,广播该区块到邻近节点。其他节点接到区块后依据统一的标准对区块进行独 立验证,验证通过后再广播该区块,并将区块组装到节点保存的区块链上。
版本号 时间戳 前一 区块hash值
• 时间戳
Merkle根hash值 目标值 区块头结构 随机数
该区块产生的近似时间,精确到秒
• 前一区块hash值 前一区块的哈希值,使用SHA256(SHA256(父区块头))计算
1.4挖矿原理概述
区块头结构
• Merkle根hash值
该区块中交易的Merkle树根的哈希值,用于验证交易是否存在, 同样采用SHA256(SHA256())计算 版本号 时间戳
节点准入规则
公有链 联盟链
代际演进
1.0支撑去中心化交易和支付系统 2.0通过智能合约支撑行业应用 3.0支撑去中心化的社会体系
专有链
共享目标
共享账本 共享状态机
核心数据结构
区块链 分布式总账
区块链2.0的典型案例 - 以太坊
以太坊的目的是基于智能合约、竞
争币和链上元协议概念进行整合和提
交易 Tx1,Tx2 TxN 区块结构
区块示意图
区块整体结构 区块头结构
1.2比特币中的区块链
区块链
每个区块通过包含上一区块hash值的方式,使得区块“链接”起来构成区块链。
1.2比特币中的区块链
1 2 3
比特币的起源
比特币中的区块链
比特币中的交易
挖矿原理概述
④ 矿工通过“挖矿”,使交易包括在一个区块中
⑤ 将区块存储到全网公开账本(区块链)
Bob的 咖啡店消费。
1.3比特币中的交易
1 2 3
比特币的起源
比特币中的区块链
比特币中的交易
挖矿原理概述
4
从比特币到区块链
▪ 由交易创建的UTXO称为交易输出。
1.3比特币中的交易
交易过程
1.3比特币中的交易
交易示例
▪ Alice下载一个比特币客户端。
▪ 客户端自动生成一个钱包,随机生成一个私钥和对应的比特币地址。
1.3比特币中的交易
交易示例
▪ 获取比特币,向朋友Joe现金购买。 ▪ 按下发送键后 ① 钱包创建一笔交易 ② Joe的私钥签名这笔交易 ③ 公告比特币全网
交易列表3
交易列表n
4 比特币网络
3
block
block
1.2比特币中的区块链
区块
区块是一种记录交易的数据结构。每个区块由区块头和区块主体组成。区块头包含了 除了交易相关信息以外的所有信息,区块主体负责记录前一段时间内的所有交易信息。
神奇数
区块大小
交易计数
区块头结构 版本号 前一个区块的HASH值 时间戳 目标值 随机数 Merkle树根
• 在比特币系统中,各节点 ( 即矿工 ) 基于各自的计算机算力的相互竞 争来解决一个求解困难但验证容易的 问题,最快解决该难题 的节点获 得区块记账权,即该参与方创建了一个区块,所有其他参与方更新本
地区块链。
1.4挖矿原理概述
区块头结构
• 版本号 区块版本号,表示本区块遵守的验证规则
区块链技术的起源、演进与发展
• 1.1比特币的起源 • 1.2比特币中的区块链 • 1.3比特币中的交易 • 1.4挖矿原理概述
• 2.1区块链的 演进 • 2.2区块链分类 • 2.3区块链关键技术
1.从比特币到 区块链
2.深入了解 区块链
3.区块链应用 场景
• 3.1金融服务 • 3.2.征信管理 • 3.3跨境投资管理
将区块组装进区块链
因为区块链是去中心化的数据结构,所以不同节点间的状态会有不一致,但组装区块时,所有的节点都 遵从选择“最长”的区块链,这样整个比特币网络最终会收敛到一致的状态。
1.4挖矿原理概述
POW 共识机制
• POW(Proof Of Work),工作量证明。
• 核心思想是通过计算能力竞争的方式来保证数据一致性从而达成共识。
POS 共识机制
POS(Proof Of Stake),权益证明。
核心思想:持有的权益越大,挖到区块的概率越大。
2012年8月,“Sunny King”提出PeerCoin(PPC),首次采用PoW机制发 行新币,采用PoS机制维护网络安全。只有持有PPC才能挖矿,参与网络安 全的维护。
FFFFFFFFFF
• 随机数
为了找到满足目标值所设定的随机数
1.4挖矿原理概述
POW过程
1. 创建交易列表,通过Merkle Tree算法生成 Merkle根Hash 2. Merkle 根Hash与其他相关字段组装成区块头, 将区块头的80字节数据(Block Header)作为 工作量证明的输入
高,使得开发者能够创建任意的基于 共识的、可扩展的、标准化的、特性
完备的、易于开发的和协同的应用。
以太坊通过建立内置有图灵完备编程 语言的区块链,使得任何人都能够在 平台上创建合约和去中心化应用,并 在其中设立他们自由定义的所有权规 则、交易方式和状态转换函数。以太 坊比比特币脚本所能提供的智能合约 强大得多。
版本号 时间戳
开始
创建区块头 选取随机值 计算hash(区块头)
3. 不停的变更区块头中的随机数即nonce的数值,
并对每次变更后的的区块头做双重SHA256运 算(即SHA256(SHA256(区块头))),将结果
前一 区块hash值
Merkle根hash值 随机数 目标值 结束
小于目 标值?
是
否
4.区块链的 未来
• 4.1区块链技术发展路线 • 4.2区块链技术发展前景
从比特币到区块链
1 2 3
比特币的起源
比特币中的区块链
比特币中的交易
挖矿原理概述
4
从比特币到区块链
什么是比特币?
A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.
典型特征:
1. 智能合约 区块链系统中的应用,是已编码的、可自动运行
的业务逻辑,通常有自己的代币和专用开发语言。
2. 虚拟机EVM 用于执行智能合约编译后的代码。虚拟机是图灵 完备的。 3. 分布式应用(DAPP) 包含用户界面的应用,包括但不限于各种加密货 币,如以太坊钱包。
4. 区块链类型
A A
1
5
10100 01101
2 3
B
B
4
点对点网络
1.1比特币的起源
比特币的信任构建方法
通过区块链技 术解决信任问 题
交易被打包成 区块,区块“链 接”在一起形 成区块链
选取最长链作 为主链,全网 共识,保证账 本一致
在多数人参与 者是诚实的情 况下,系统是 安全的
1.1比特币的起源
1.3比特币中的交易
交易
▪ 一笔比特币交易是一个含有输入值和输出值的数据结构。
▪ 创建交易的过程就是“填写”交易需要的数据。
交易结构
1.3比特币中的交易
交易的结构
▪ 比特币交易的基本单位是未花费的交易输出,简称UTXO(Unspent Transaction Output)。比特币币值最小单位是聪,类似于人民币中的分,1聪为0.00000001个 比特币,UTXO是一定数量的聪。 ▪ 被交易消耗的UTXO称为交易输入。
1.1比特币的起源
什么是比特币?
BitCoin网络中的任意两个用户可在无可信第三方参与的情况下进行P2P 交易,并将每笔交易计入总帐中。
1.1比特币的起源
如何解决信任问题?
在比特币出现之前,一般采用建立可信第三方机构的方法,对交易进行记录。这 种情景下,数字货币的流通对第三方机构的依赖程度很高,所以要求第三方具有很 强的可靠性,同时存在第三方作恶的可能性。 能不能构建一个去中心化的可信的记账系统呢?
1 2 3
比特币的起源
比特币中的区块链
比特币中的交易
挖矿原理概述
4
从比特币到区块链
比特币中的区块链
BitCoin采用了去中心化的区块链技术来完成交易记账
1.2比特币中的区块链
比特币中的区块链
1
账本
区块 1 2 3
...
n
5
2
交易列表1 交易列表2
—Satoshi Nakamoto, “Bitcoin: a peer to peer electronic cash system”, 2008
比特币采用密码技术来控制货币的产生和转移,因此被称为密码货币
(Cryptocurrency)。比特币采用去中心化的发行方式,通过工作量证明计算
产生,采用分布式账本技术(区块链)来确认并记录所有的交易过程,通常被认 为是区块链的第一个成功应用案例。
1. 技术来源
2. 区块链1.0——数字货币
区块链就是一种无须中介参与,亦能在互不信任或弱信任的参与者之间维系一套不可篡改的账本记录的技术。 1、以区块为单位的链状数据块结构 2、全网共享账本 3、非对称加密 4、源代码开源
3. 区块链2.0——智能合约
挖矿的作用
▪ 挖矿在构建区块时会创造新的比特币,类似中央银行印发新的纸币。比特 币的总数是固定的,创建比特币的速度随时间下降。 ▪ 挖矿创建信任。挖矿确保只有在包含交易的区块上贡献了足够的计算量后, 这些交易才被确认。区块越多,花费的计算量越大,数据越难篡改,意味着 更多的信任。 ▪ 挖矿实现了在没有中心机构的情况下, 也能使整个比特币网络达成共识。
• 目标值
该区块工作量证明算法的目标值 目标值 = 最大目标值 / 难度值 新难度值 = 旧难度值 * ( 过去2016个区块花费时长 / 20160 分钟 ) 其中最大目标值为一个恒定值:
前一 区块hash值 Merkle根hash值 目标值 随机数
区块头结构
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
4
从比特币到区块链
公钥、地址
▪ 公钥通过这样一个过程得到:K = k * G。其中k是私钥,G是椭圆曲线生成点的常数点,而K 是所得公钥。
▪ 其反向运算, 被称为离散对数问题,即已知公钥 K 来求出私钥 k是非常困难的。
▪ 比特币地址是由公钥经过哈希运算再经过Base58Check编码后生成的。它是系统中用户的身 份标识。
1.3比特币中的交易
私钥
▪ 一个比特币地址中的所有资金的控制权取决于相应私钥的所有权和控
制权。在比特币交易中,私钥用于生成支付比特币所必需的签名以证 明资金的所有权。 ▪ 比特币私钥其实是随机生成的二进制随机数,有效私钥的范围取决于 比特币使用的椭圆曲线数字签名标准。 ▪ 私钥必须保密和备份。
1.4挖矿原理概述
区块链技术的演进
区块链的演进
狭义来讲, 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种 链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。 广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点 共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自 动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范 式。 ——《中国区块链技术和应用发展白皮书(2016)》
值与当前网络的目标值做对比,如果小于目标
值,则解题成功,工作量证明完成。
区块头结构
1.4挖矿原理概述
POW
优点 • 算法简单,容易实现 • 节点间无需交换额外的信息即可达成共识
• 破坏系统需要投入极大的成本
缺点 • 浪费能源 • 区块的确认时间难以缩短
1.4挖矿原理概述