徐老师,关于这次课程里讲的P2SH、多重签名和loktime问题感觉您的理解跟我的不太一样

首先,这种场景:Alice去Bob的咖啡店使用比特币购买咖啡。Alice可以立即发起交易,但是交易确认需要时间,比特币的交易确认一般在6个区块产生之后,每个区块产生的时间为10分钟,也就是1个小时后,交易才能被确认,但是Alice不可能等一个小时后,再把咖啡拿走(太不方便了)。所以这时候引入了多重签名的概念,引入了第三方,只要三方中的任意两个人对这笔交易进行签名,就可以完成这笔交易。这样Alice就可以不必等交易确认完再拿走咖啡了(当然前提是第三方是可以信任的)。可以比喻成批个项目,只要三个领导中的两个签了字这个项目就可以开工了,其中一个领导签完字 就走了,等剩下人签。这个多重签名的校验过程,是通过将比特币发送给一个脚本地址来完成的,而不是普通的公钥地址,这也就是P2SH这个名字的由来。但是在这个过程中,Alice也可以与第三方达成一个协议,如果Bob没有在规定的时间之前(比如1天)去签自己的名字,这笔钱就退回到自己的账户,这个规定的时间就是locktime,而您在讲课过程中这个locktime说的是脚本是否立即执行,感觉不太准确。其实我感觉金融活动中的交易是分正向付款,和逆向退款这两种场景才完整,这次在听课的过程中只介绍了正向的付款过程,没有退款过程,会导致某些概念理解的不到位,因为中本聪应该是一句这些场景来做的设计。以上是我自己的理解,对区块链的理解比较浅,看的书比较少,心里没底,请徐老师指正。

徐亮

赞同来自: 张海宁reh fish

您对多重签名和P2SH的理解很到位,也指出了我在课程讲解中的一些错误,感谢指正!   课程中没有解释locktime不为0的情形。当其值为0(绝大多数情况下),代表trasaction立即生效,这个理解本身没有问题。   当locktime不为0,代表trasaction会在将来的某个时刻生效(根据值是否大于500million,代表区块链高度或者绝对时间),而不是立即。在此transaction生效之前,Alice有机会再次构建locktime=0的交易来主动取消之前的交易。locktime只是推后了生效的时间,bitcoin并不会主动退回给Alice。   可以通过第三方自动地构建新的交易取消之前的,完成退款。但个人理解中本聪设计的初衷应该是“重新构建交易”,这也是设计“sequence”这个域的原因。

要回复问题请先登录注册