本文由区块链研习社优质内容计划支持,更多关于区块链的深度好文,请点击「区块链研习社」简书专栏。QYB赞赏地址:Qj8RvYv3cQzomcvE4Mq58kX85vv12uEBbT
今天是《肚财神成长故事365》陪伴您的第19天,每晚20:08,我们不见不散。
我们昨天讲了UTXO交易,今天我们在这个基础讲一种更高级的交易形式——多重签名。很多人都把多重签名和P2SH交易相混淆,其实这两者是既有联系,也有不同的。
多重签名
多重签名是什么呢?
它其实是一个比特币的一种脚本,这个脚本有3个条件:
- n个公钥被记录在脚本中
- 至少有m个必须提供签名来解锁资金
- m<=n
这也称为m-n方案,其中n是密钥的总数,m是验证所需的签名的数量。例如:
- 1/2 的多重签名, 就是2个人只要有一个人签名,就能使用资金。
- 2/3的多重签名,是3个人至少有2个人签名才能使用资金。
- 2/2 的多重签名,就是2个人中,必须2个人签名,才能使用资金
- 5/10 的多重签名,就是10个人中,必须至少5个人签名,才能使用资金
多重签名就是这么简单,但使用场景可以有很多,比如家庭里面可以设置一个1/2多重签名的账户,每个人都掌握自己的私钥,但账户却是共用的;公司里面可以设置3/4,只有超过3个人同意才能动用一笔资金。
P2SH(Pay-to-Script-Hash)
这也是一种脚本,这种脚本在2012年才被引入。P2SH脚本简化了多重签名的使用,让多重签名更加简单而实用,所以,现在所说的多重签名技术,其实指的就是P2SH脚本方法。
理论比较复杂,我们不讲了。它与直接使用之前的多重脚本方式相比,P2SH具有以下特点:
- 在交易输出中,脚本由简短电子指纹取代,使得交易代码变短。由500多字节降到只有20个字节。
- 脚本能被编译为地址,支付指令的发出者和支付者的比特币钱包不需要复杂工序就可以执行P2SH。
- P2SH将构建脚本的重担转移至接收方,而非发送方。
- P2SH将长脚本数据存储的负担从输出方(存储于UTXO集,影响内存)转移至输入方(存储在区块链里面)。
- P2SH将长脚本数据存储的重担从当前(支付时)转移至未来(花费时)。
- P2SH将长脚本的交易费成本从发送方转移至接收方,接收方在使用该笔资金时必须含有赎回脚本。
以上这些如果有一部分看不懂没有关系,你只需要记住下面这些要点:
- 第一,P2SH是一种实现多重签名的脚本;
- 第二,P2SH能够简化多重签名;
- 第三,一个P2SH脚本能够通过哈希作为一个地址使用;
- 第四,P2SH已经成为事实上的多重签名。
更高级的交易
除了多重签名让比特币有了更多的功能,时间锁也让比特币实现了更多的功能。这里简要介绍一下。
时间锁(TimeLocks)是只允许在一段时间后才允许支出的交易。比特币从一开始就有一个交易级的时间锁定功能。这样,我们在支付一笔资金的时候,就可以指定在一个时间段之后才能够消费这笔钱。
这是不是和支付宝有点像呢?只是这个支付是不可逆的,而支付宝有审核机制。未来如果实现了第三方审核,那么支付宝的功能就可以被技术完美实现了。时间锁将比特币脚本扩展到时间的维度,为复杂的多级智能合同打开了大门。
关于比特币的交易功能我们今天就讲完了。明天开始,我们将一起学习第8章——《比特币网络》
华山论剑
一日白描
1.读《精通比特币》,60分钟。
2.肚财神成长故事写作,60分钟。
3.撰写《区块链圣经》,50分钟,
今天共投入时间约170分钟。总计投入时间45小时20分钟。
image我是肚财神 ,马拉松跑者,一级拆书家,持续践行者,不喧嚣,不固执,不盲从,做人生的智者。欢迎交流,期待和你一起成长。
网友评论