【BTC】比特币脚本

本节课老师主要介绍了比特币交易中使用的脚本语言,涵盖交易实例、脚本执行、脚本形式及特殊应用等内容,具体如下:

  • 比特币交易实例分析:以一个比特币交易为例,该交易有 1 个输入和 2 个输出,其中一个输出已花费,另一个未花费,且已收到 23 个确认,回滚可能性小。同时介绍了交易的宏观信息,如哈希值、版本号、交易大小、生效时间等,还讲解了交易输入(说明资金来源并需签名)和输出(包含金额、序号、输出脚本等)的结构。
  • 比特币脚本执行机制:在比特币交易中,验证交易合法性时,早期是将后续交易的输入脚本与前序交易的输出脚本拼接后从头到尾执行,现在出于安全考虑,先执行输入脚本,若无误再执行输出脚本,当最终栈结果为非零值时交易合法。若交易有多个输入,则每个输入脚本都要与对应交易的输出脚本匹配验证,全部通过交易才合法。
  • 比特币脚本形式详解:
    • pay to public key:输出脚本直接给出收款人的公钥,输入脚本给出签名,签名是用私钥对整个交易的签名。执行时,将签名和公钥依次压入栈,最后用公钥检查签名是否正确,正确则交易合法。
    • pay to public key hash:输出脚本给出公钥的哈希值,输入脚本给出签名和公钥。执行过程中,会进行复制栈顶元素、取哈希值、比较哈希值等操作,若输入的公钥哈希值与输出的一致且签名正确,交易合法,这是最常用的形式。
    • pay to script hash:输出脚本给出收款人提供的赎回脚本的哈希值,输入脚本给出赎回脚本内容和签名。验证分两步,先验证赎回脚本哈希值是否匹配,再执行赎回脚本,两步都通过交易才合法。常用于支持多重签名,可将复杂度从输出脚本转移到输入脚本,方便用户进行交易操作。
  • 特殊脚本格式及应用:一种特殊的输出脚本以 return 开头,作用是无条件返回错误,终止执行,用于销毁比特币。应用场景包括获取小币种(需销毁一定数量比特币)和知识产权保护(将知识产权内容哈希值放在 return 后,出现纠纷时可证明在某时间已知道相关知识)。
  • 比特币脚本语言特点总结:比特币脚本语言简单,无专门名字,不支持循环,避免了死循环和停机问题。虽然功能有限,但在密码学相关功能上很强大,如检查多重签名,针对比特币应用场景做了优化。

相关文章: 【BTC】挖矿_btc矿池-CSDN博客

【BTC】比特币网络-CSDN博客

【BTC】比特币系统的具体实现_btc操作系统-CSDN博客

【BTC】协议(共识机制)_btc 协议-CSDN博客

相关推荐
limit007515 小时前
三维模型悬空与切片偏移的排查顺序
低代码·3d·arcgis·web3·安卓·webgl
MuMuMu122317 小时前
越华环保集团碳惠小屋:边缘感知 + 区块链存证,碳普惠终端工程化落地实践
区块链
孙琦Ray17 小时前
比特币 Core 取消 AI 易发现漏洞的保密期
大语言模型·开源安全·比特币·漏洞披露·bitcoin core
AIyy8662 天前
区块链项目宣发应该选哪些平台?ME Group华语市场与亚太圈层传播方案解析
区块链
磐链科技2 天前
区块链交易所开发未来发展趋势:解析多链互操作、智能风控与数字资产交易生态创新
区块链
磐链科技3 天前
区块链交易所安全系统如何构建?解析冷热钱包隔离、多重签名与交易风险控制机制
安全·区块链
vortex54 天前
以太坊 Geth 私有链部署与原理
区块链
磐链科技4 天前
元链科技:随着区块链技术持续发展,Web3逐渐成为数字资产管理、去中心化应用和数字经济创新的重要技术方向
科技·web3·区块链
磐链科技4 天前
Web3区块链开发需要哪些核心技术?解析分布式网络、数字钱包与跨链交互方案
分布式·web3·区块链
IvorySQL4 天前
PostgreSQL 日报|恢复期 COPY TO 未日志表修复(10 月 21 日)
数据库·postgresql·区块链