比特币交易锁定 & 解锁

比特币交易锁定 & 解锁

1,未花费交易输出 UTXO - Unspent Transaction Output

1)UTXO,用比特币拥有者的公钥锁定(加密)的一个数字

2)UTXO == 比特币

3)比特币系统里没有比特币,只有UTXO

4)比特币系统里没有账户,只有UTXO(公钥锁定)

5)比特币系统里没有账户余额,只有UTXO(账户余额只是比特币钱包的概念)

6)UTXO存在全节点的数据库里

7)转账将消耗掉属于你自己的UTXO,同时生成新的UTXO,并用接受者的公钥锁定

2,交易的结构

1)https://blockchain.info/

2)交易的输出(UTXO)

- 锁定的比特币数量

- 锁定脚本(用接收者的公钥哈希)

3)交易的输入(UTXO+解锁脚本)

- 解锁脚本(签名,发送者公钥)

3,交易验证 - 基于栈的脚本语言

1)栈(Stack)操作数据的一种结构

- 只能从一端操作数据,后进先出LIFO

- 如同子弹匣,先压入的子弹最后打出

- 压栈(PUSH)、出栈(POP)

2)交易验证 - 基于栈的脚本语言

- 对栈的操作:OP_DUP

- 逻辑运算符:OP_EQUALVERIFY

- 加解密运算符: OP_HASH160,OP_CHECKSIG

- 算数运算符:OP_ADD,OP_SUB,OP_MUL,OP_DIV

4,逆波兰表达式

1)简易运算规则

- 所有运算符号位于操作数的后面

- 遇到操作数(数字),则压栈PUSH

- 遇到二元运算符(+,-,*,/)

先将2个操作数出栈POP,然后对运算数进行计算,最后将计算结果压栈

2)传统表达式(中缀表示法):(1+2) * 3 == 9

3)逆波兰表达式(后缀表示法):1 2 + 3 * 9 ==

5,交易验证

1)锁定脚本

OP_DUP OP_HASH160<发送者公钥哈希> OP_EQUALVERIFY OP_CHECKSIG

2)解锁脚本

<发送者签名><发送者公钥>

3)交易验证

运行解锁脚本 + 锁定脚本 ==> True

玖壹区块链声明

加微信:469649885区块链培训教程
还可免费获取区块链培训班试学名额

分享:

扫一扫在手机阅读、分享本文

区块链评论

玖壹区块链培训

玖壹区块链培训学院简称(玖壹学院http://www.91xiubbs.com/)提供区块链技术培训资料、区块链开发培训视频教程等下载,不过网上自学区块链技术课程必然存在一些缺陷:遇到问题易卡壳、学习周期漫长、无针对性等。区块链培训机构现场面对面的讲授区块链培训课程可以让您和团队在最短时间内掌握正确、系统、高效的区块链实战技术。