《Master Bitcoin》学习笔记02——比特币的交易模型 (2)

  该脚本语言仅由常数以及操作构成,从前往后遍历脚本,若遇到常数,则将常数入栈,若遇到操作,根据操作的具体要求,对栈顶元素进行弹出,或者弹出两个元素进行运算,再入栈,当一句脚本运行完毕后,仅只剩下栈顶元素,其取值为True\False,很清楚地,True代表验证成功,代表执行脚本的用户具有该账单输出比特币的支配权,用户能够使用该账单作为下笔交易(账单)的输入,下面是个具体例子

《Master Bitcoin》学习笔记02——比特币的交易模型

《Master Bitcoin》学习笔记02——比特币的交易模型

锁定/解锁脚本类型

1)P2PKH (Pay-to-Public-Key-Hash)——比特币网络上大多数交易都属于此类型

  解锁脚本锁定脚本

《Master Bitcoin》学习笔记02——比特币的交易模型

《Master Bitcoin》学习笔记02——比特币的交易模型

《Master Bitcoin》学习笔记02——比特币的交易模型

2)P2PK(Pay-to-Public-Key)

  写成收款方的公钥,收款方通过自己的私钥生成相应公钥来获取支配权。

《Master Bitcoin》学习笔记02——比特币的交易模型

3)P2SH(Pay-to-Script-Hash)

  这个脚本类型用于多重签名才能支付,比如,一个公司的账户,由5个人支配,但只要有2个人以上的签名就能进行比特币支付。

  我们考虑使用2)的方式来写多重签名命令:

《Master Bitcoin》学习笔记02——比特币的交易模型

  就是说,再使用上图方式多重签名的时候,需要将所有人的公钥都加在锁定脚本里,因为Attorney Public Key时是所有人的公钥运算的结果,而Public Key(公钥)有260bit长,这样下来,在人很多的情况下,甚至会使锁定脚本容量超过账单本身,而且这样的脚本也难以维护,并暴露所有人之间的联系(尽管比特币地址是匿名的)。

  P2SH很好地解决了这个问题,P2SH分为除了锁定脚本、解锁脚本之外,多出了赎回脚本:

《Master Bitcoin》学习笔记02——比特币的交易模型

  使用方法是分两步:①使用赎回脚本确认用户能在属于定义好的群组;②使用解锁脚本解锁(Sig1 Sig2是2个群组用户的签名)

《Master Bitcoin》学习笔记02——比特币的交易模型

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfxfy.html