news 2026/9/10 3:59:31

9.BTC-比特币脚本-北大肖臻老师客堂笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
9.BTC-比特币脚本-北大肖臻老师客堂笔记

北京大学肖臻老师《区块链技术与应用》公开课第 9 讲的主题是**“比特币的脚本”**。本课深入探讨了比特币交易的底层结构、输入输出的关联以及脚本执行的逻辑。

以下是根据视频内容及你提供的图片进行的详细总结:

一、 比特币交易的宏观结构

比特币的交易并非简单的“ A 转账给 B ”,而是一个包含多个字段的复杂 JSON 对象。

  • 基础元数据:包括交易 ID (txid)、版本号、大小 (size) 和锁定时间 (locktime)。
  • 确认数 (confirmations):表示该交易所在区块之后已经产生了多少个区块,确认数越多,交易越不可篡改。
  • 输入 (vin) 与输出 (vout):这是交易的核心,每一笔交易都是将之前的输出作为现在的输入,并产生新的输出。

二、 交易的输入与输出细节

比特币通过脚本系统实现了资金的转移和锁定。

1. 交易输入 (vin)
  • 引用来源:每个输入必须指明资金来源,即前一笔交易的 ID (txid) 和对应的输出索引 (vout)。
  • 解锁脚本 (scriptSig):包含发送者的数字签名和公钥,用于证明对这笔资金的所有权。
2. 交易输出 (vout)
  • 金额 (value):该输出对应的比特币数量。
  • 锁定脚本 (scriptPubKey):定义了花费这笔钱的条件,通常要求提供能与特定公钥哈希匹配的签名。
  • 地址 (addresses):虽然代码中显示为地址,但本质上是公钥哈希的 Base58 编码。

三、 脚本执行逻辑:P2PKH

比特币最常见的交易类型是P2PKH(Pay-to-Pubkey-Hash)。其验证过程是将当前交易的scriptSig和前一笔交易的scriptPubKey拼接在一起执行。

执行步骤如下(基于栈的操作):

  1. PUSHDATA(Sig):将签名压入栈。
  2. PUSHDATA(PubKey):将公钥压入栈。
  3. DUP:复制栈顶的公钥。
  4. HASH160:将栈顶公钥进行哈希处理。
  5. PUSHDATA(PubKeyHash):将预期的公钥哈希(来自锁定脚本)压入栈。
  6. EQUALVERIFY:比较两个哈希值是否一致。如果不一致,脚本执行失败。
  7. CHECKSIG:利用栈中的公钥验证签名的有效性。如果验证通过,返回TRUE,交易合法。

四、 全节点在脚本系统中的角色

全节点是脚本执行的实际操作者:

  • 验证合法性:全节点通过执行上述脚本,验证网络上每一笔交易的输入是否真实引用了有效的 UTXO,以及签名是否正确。
  • 维护 UTXO 集合:为了提高验证效率,全节点在内存中维护 UTXO 集合,这样在收到新交易时,无需扫描整个硬盘账本即可确认资金是否已被花费。
  • 决定打包逻辑:全节点在验证脚本通过后,才会将交易放入交易池,并决定是否将其打包进下一个区块。

五、 核心名词总结

  • ScriptSig:解锁脚本,证明“我有权花这笔钱”。
  • ScriptPubKey:锁定脚本,规定“谁能花这笔钱”。
  • Stack-based Language:比特币脚本是一种简单的、非图灵完备的、基于栈的编程语言,这种设计是为了安全,防止死循环攻击。
  • UTXO (Unspent Transaction Output):尚未被花费的交易输出,是比特币账本的基本组成单位。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 8:42:23

10.BTC-分叉-北大肖臻老师客堂笔记

北京大学肖臻老师《区块链技术与应用》公开课第 10 讲的主题是**“比特币的分叉:硬分叉与软分叉”**。这节课非常重要,因为它解释了在去中心化系统中,当协议(规则)发生升级时,网络是如何达成共识&#xff0…

作者头像 李华
网站建设 2026/9/10 0:20:51

智能包装行业发展趋势下,如何提高竞争力?

在当前快速发展的智能包装行业中,中科天工包装技术正在利用其技术优势积极布局市场。通过研发更高效的智能包装设备,中科天工致力于满足不断变化的市场需求。公司在技术创新上持续投入,推出具备自动化和智能管理功能的设备。这些设备不仅提升…

作者头像 李华
网站建设 2026/9/6 22:04:04

Dify 官方上架 Nacos A2A 插件,补全双向多智能体协作能力

作者:濯光 一、背景与挑战:多智能体协作中的典型问题 随着 AI Agent 技术的快速发展,单一智能体已经难以满足复杂业务场景的需求。多智能体协作(Multi-Agent Collaboration)正在成为 AI 应用的新趋势——让多个具备不…

作者头像 李华
网站建设 2026/9/9 6:18:25

Katalon Studio 界面导览:工具栏与视图全解析

对于刚接触Katalon Studio的测试工程师而言,面对其功能丰富的界面可能会感到有些无从下手。本文将系统性地介绍Katalon Studio的主要工具栏和视图,帮助使用者快速熟悉这个强大的自动化测试工具的工作环境。 主工具栏:核心功能触手可及 主工具栏集中了最常用的操作,例如创…

作者头像 李华
网站建设 2026/9/3 7:03:03

计算机毕业设计springboot高校大学生实习服务管理系统 基于SpringBoot的高校学生顶岗实践与就业跟踪服务平台 SpringBoot架构下的高校校企协同实习智能化管理平台

计算机毕业设计springboot高校大学生实习服务管理系统(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着高等教育普及化程度不断加深,就业市场竞争日趋激烈&#xf…

作者头像 李华