1. 比特币的语言是基于栈的语言

  1. 交易结构

  1. txid:transaction id

  1. hash:交易的哈希值

  1. version:使用的比特币版本

  1. size:交易的大小

  1. locktime:锁定时间,多久后交易才会生效

  1. vin、vout:输入输出部分,在后面的章节中会讲

  1. blockhash:交易所在区块的哈希值

  1. confirmations:有多少个确认信息

  1. time:交易产生时间

  1. blocktime:区块生产时间

  1. 交易的输入

  1. 一个交易的输入可以有多个(是个数组),但是此处我们只有一个

  1. txid:金额来源的交易id

  1. vout:不次输入数组的第0个输出

  1. scriptSig:输入脚本,说明币的来源

  1. 交易的输出

  1. value:转出的金额

  1. n:当前输出数组的第几个输出

  1. scriptPubKey:输出脚本

  1. 交易形式

  1. P2PK:Pay to Public Key的形式,首先在输入交易本中将上一次交易的收款人的私钥加密后的交易压入栈,然后再用本次交易的输入脚本的上一次交易的收款人的公钥压入栈,然后执行CheckSig,使用公钥检查私钥加密后的交易,如果没有问题,交易通过

  1. P2PKH:Pay to Public Key Hash:一个交易的输入脚本中给出上一次交易的私钥加密后哈希以及公钥。执行过程:执行输入脚本,压入Sig,压入上一次交易人的公钥,Dup再次压入公钥,Hash160弹出公钥并取hash压入栈,压入输出交易的公钥的哈希,检查是否相等,CheckSig检查。如果没问题,交易通过。

  1. P2SH:Pay to Script Hash:这是多重验证一个升级(多重验证是指对于一个钱包的多个主人,验证通过的Sig必须占大多数,例如一个公司有五个合伙人,那么CheckSig通过的数量就必须大于3),而赎回脚本redeem script就包含的多重验证的部分,因此用于只需压入一个false(处理bug,该bug是莫名其妙必须多一个Sig),然后压入所需Sig以及赎回脚本,然后再输出脚本中将赎回交易转为哈希并校验,通过的再执行赎回脚本中的多重校验

  1. return语句:比特币脚本中有一个脚本语句叫做return,return的作用就是在一次交易中无条件报错然后后续的任何语句都不再执行,报错之后的这笔交易的这些钱就再也花不出去了。用处:return后面的text可以永久保存,例如存储一个知识产品的哈希,然后在某个时刻拿出来证明

Logo

为所有Web3兴趣爱好者提供学习成长、分享交流、生态实践、资源工具等服务,作为Anome Land原住民可不断优先享受各种福利,共同打造全球最大的Web3 UGC游戏平台。

更多推荐