‹ 第 16 章,所有课时

大师 · 第 16 章 · 第 1/5 课时

脚本与升级

比特币脚本

输出中实际写入了什么来锁定它? 6 分钟

每个输出都带有一个小的程序,即其锁定脚本。要花费它,输入会提供一个解锁部分。节点运行两者:如果程序以真结束,则花费有效。

堆栈机

脚本在堆栈上运行:项目被推入,操作从顶部取出项目并推入结果。经典的旧版支付读取:OP_DUP OP_HASH160 <公钥哈希> OP_EQUALVERIFY OP_CHECKSIG。用通俗的话说:复制提供的公钥,对其进行哈希处理,检查它是否与输出中的公钥匹配,然后对其进行签名检查。

故意限制

脚本没有循环,也没有通用内存。每个程序都会快速结束,并且每个节点都可以预测检查它的成本。这使得它比某些其他区块链的语言表达能力差得多,也更容易理解。

  • 多重签名:在一组密钥中要求几个签名。
  • 哈希锁:要求揭示一个已知其哈希值的秘密,就像闪电网络所做的那样。
  • 时间锁:禁止在某个日期或区块高度之前花费。

需要记住的内容

  • 输出由小的基于堆栈的程序锁定。
  • 脚本没有循环:每次检查都会可预测地完成。
  • 签名、哈希和时间是它的构建块。

快速检查

何时花费在脚本级别是有效的?

为什么脚本没有循环?

比特币脚本 · 比特币大学