学习笔记《区块链技术与应用》第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

相关推荐
油丶酸萝卜别吃12 小时前
前端转全栈学习路线
前端·学习
Web3_Daisy13 小时前
Pump.fun 与 FOMO 竞争背后的 Meme 市场变局
大数据·人工智能·金融·web3·区块链
磐链科技13 小时前
跨链互操作性:打破RWA价值孤岛的终极解决方案
区块链
GlueNa2SiO316 小时前
第十八章 Linux故障排查与恢复
linux·服务器·笔记·学习
weixin_4316004416 小时前
NestJS 入门(3):Guard 如何挡住未登录请求?
前端·后端·学习·nest.js
带娃的IT创业者16 小时前
DeepTutor:当 Agent-Native 架构撞上个性化学习的临界点
学习·架构·ai agent·大模型应用·个性化学习·教育技术·agent-native架构
xian_wwq17 小时前
【学习笔记】Context Engineering,AI Agent 真正的内存管理-4/16
笔记·学习·context
寒月小酒17 小时前
AnythingLLM 学习
学习
疯狂打码的少年18 小时前
【数据结构】队列:定义、顺序队列与链式队列
数据结构·笔记
IvorySQL20 小时前
PostgreSQL 日报| PostgreSQL 19 默认 WAL 压缩算法(8 月 8 日)
数据库·postgresql·区块链