学习笔记《区块链技术与应用》第4天 比特币脚本语言

输入0.7

输出0.5

23个确认 不太可能回滚了


交易id

hash值

版本

locktime 交易剩下时间:0立即生效

confirmation:确认信息

time:产生时间

blocktime:块产生时间


vout: 交易中第0个输入

scriptSig:输入脚本(input script)

n:交易里第0个输出

scriptPubKey:输出

reqSigs: 需要1个签名才能兑现

addresses:公钥地址


第一种

最简单情况,直接给出收款人的公钥



执行过程,压入栈=》检查签名

方式二


输出 脚本没有直接给公钥 只给Hash

公钥是在输入 脚本里给出的,也要给出签名

执行过程:

DUP 复制

HASH160: 弹出栈顶元素取Hash,然后把得到的hash压入栈

推入output中的PubKeyhash

当前两个Hash一个是input提供一个是output计算hash后得到

EQUALVERIFY 弹出栈顶两个元素比较他们是否相等

CHECKSIG 弹出栈顶两个元素 检查签名是否正确

第三种

给出收款人提供的一个脚本(redeemScript) 的hash

举例:

拼接输入+输出脚本

压入sig

压入RSH

计算HASH

压入RAH

EQUAL比较

反序列化执行脚本

检查PubKey

多重签名

× 存在bug需要多压入一个元素


交易时需要给出公钥以及M,N的值。

多重签名 方式2

将复杂度转移到输入脚本

赎回脚本由input提供(电商)。

第二阶段

第二阶段与之前paytohash一样

最后一个

RETUREN 用于返回false

  1. 用于销毁比特币,有些小币种要求销毁一定数量,AlternativeCoin
  2. 添加永久保存的内容:digital commitment。某种知识产权保护放到RETURN后面不会被执行。证明你在某个时间点已经知道某个知识。
  3. coinbase只有获得记账权的节点才能用,


    输入金额全部用于支付交易费

PPT例子中省略了执行命令的OP_前缀正常应该是:

OP_CHECKSIG

OP_DUP

OP_xxx

相关推荐
经年未远8 分钟前
vue3中实现耳机和扬声器切换方案
javascript·学习·vue
Hill_HUIL9 分钟前
学习日志22-静态路由
网络·学习
莱茶荼菜31 分钟前
yolo26 阅读笔记
人工智能·笔记·深度学习·ai·yolo26
詩不诉卿1 小时前
zephyr学习之自定义外部module记录
学习
浮游本尊1 小时前
React 18.x 学习计划 - 第十三天:部署与DevOps实践
学习·react.js·状态模式
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][dma]dmapool
linux·笔记·学习
电饭叔2 小时前
Tkinter Button 括号内的核心参数详解
python·学习
玄〤2 小时前
Java 大数据量输入输出优化方案详解:从 Scanner 到手写快读(含漫画解析)
java·开发语言·笔记·算法
henujolly2 小时前
如何与 Uniswap、Sushiswap 等去中心化交易所交互,理解 AMM(自动做市商)的原理
去中心化·区块链
闵帆3 小时前
反演学习器面临的鸿沟
人工智能·学习·机器学习