主页 > imtoken官网app下载 > 比特币锁脚本带来的“坑”——比特币真正的高手是“锁脚本”,而不是私钥

比特币锁脚本带来的“坑”——比特币真正的高手是“锁脚本”,而不是私钥

imtoken官网app下载 2023-02-15 07:23:03

比特币锁脚本带来的“坑”——真正控制比特币的是“锁脚本”,而不是私钥。

这几天研究了比特币的p2pkh、p2sh锁脚本和解锁脚本海峡比特币,发现了比特币锁脚本带来的“坑”——真正掌握比特币的前提是“锁脚本”,而不是私钥。

1、如果你了解utxo的原理,你就会知道:

(1) 一个比特币地址上的比特币总数实际上是该地址上所有utxo比特币的总和。

(2) 每个 utxo 都有一个“锁脚本”,它定义了 utxo 的花费条件。 通过私钥解锁utxo上的比特币只是消费条件之一,当然是最常用的,也是钱包构造交易时默认的消费条件。

(3) utxo的支出条件由交易发送方定义,因为utxo的锁定脚本是比特币交易的一部分海峡比特币,交易的构建由交易发送方完成。

这时候就有一个问题,就是这个utxo的消费条件可能是“不是用utxo所在地址的私钥解锁的”,而是用其他条件或者其他私钥解锁的。

比特币的锁定脚本和解锁脚本正是比特币作为可编程货币(自带智能合约)的体现。 我们可以设置各种解锁条件,比如一定时间或者一定区块高度来花费utxo。

因此,无论解锁消费条件是什么,全节点都不会检查是否“合法”,只能由交易的接收方检查,即使比特币被送入黑洞(即,没有人能给出相应的解锁“钥匙”)。

2.按脚本类型具体分析

比特币主连比特币连续的区别_海峡比特币_比特币期货对比特币影响

1. p2pkh(pay to public key hash):地址以1开头。

我们可以通过blockchain.com查看交易7f972c4575a2f23aa7c794ed1b9578326bf552829cbf10b59253ca4aa6fa7250产生的index=1的utxo(即地址1JwyVSpJAa281cDLAdwBi74Sb6hHE7vBGz的utxo)。

比特币期货对比特币影响_海峡比特币_比特币主连比特币连续的区别

如果锁定脚本(Pkscript):

(1) 格式如下:

OP_DUP

OP_HASH160

c4dfc18fb8bcfbeab61aa7ebb9e4d6e916995205

OP_EQUALVERIFY

OP_CHECKSIG

比特币期货对比特币影响_海峡比特币_比特币主连比特币连续的区别

(2) 而“c4dfc18fb8bcfbeab61aa7ebb9e4d6e916995205”经过base58check编码后就是比特币的接收地址。

上面的十六进制值是没有经过base58check编码的比特币地址的格式。 也是sha256和ripemd160之后公钥的hash值。 如果将该值替换为发送方公钥的哈希值,发送方将可以用自己的私钥解锁地址上的 utxo。

可以通过网站查询。

海峡比特币_比特币主连比特币连续的区别_比特币期货对比特币影响

如果不满足上述(1)或(2),则很有可能:即使你有该地址的私钥,也无法解锁utxo中的比特币。

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

2021年3月2日,首先说一下文章错误的地方:

对于p2pkh,在比特币的交易数据结构中,输出部分是没有“输出地址”字段的! “lock script”中的地址是经过base58check编码后的接收方地址,所以lock script中的地址必须是接收方的地址,否则接收方收不到比特币。 交易数据结构如下图所示:

比特币期货对比特币影响_比特币主连比特币连续的区别_海峡比特币

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

比特币主连比特币连续的区别_比特币期货对比特币影响_海峡比特币

2. p2sh(pay to script hash):地址以3开头。

(1) 标准p2sh脚本

p2sh主要用于多重签名。 例如,如果您与 A 和 B 这三个人一起创办一家公司,如果您同意,你们中的任何两个人都可以使用 utxo 上的比特币。 如果你不懂技术,你很可能会被骗,也就是你的私钥不起作用。 具体分析如下。

我们可以通过blockchain.com查看交易d8ded48f7874a6ef590655e18963ffdf0e20a160702bd671dcc2ca75d72e12d5生成的index = 0的utxo(即地址3DF7tcrgLWJ1jfoZhRwwSoBaMwNiMZqT5y上的utxo)。

海峡比特币_比特币主连比特币连续的区别_比特币期货对比特币影响

如果锁定脚本(Pkscript):

(1) 格式如下:

OP_HASH160

59ff94aeca2beffecfc69616e1e797ccfdf9d344

OP_EQUAL

比特币主连比特币连续的区别_比特币期货对比特币影响_海峡比特币

(2) 而“59ff94aeca2beffecfc69616e1e797ccfdf9d344”必须是你们三个公钥组成的赎回脚本sha256和ripemd160后的值。

赎回脚本的组成:“52”+“你的公钥”+“A的公钥”+“B的公钥”+“53”+“ae”。 不要忘记您的公钥!

原理见:《P2SH(pay-to-script-hash) multi-signature lock script and unlock script in Bitcoin》

注意:计算hash值时,去掉上面的双引号和加号。

可以通过网站计算。

海峡比特币_比特币主连比特币连续的区别_比特币期货对比特币影响

如果以上(1)或(2)都不满足,那很有可能你已经被骗了,你的私钥只是一个摆设。

(2) P2SH-P2WPKH, P2SH-P2WSH

P2SH-P2WPKH和P2SH-P2WSH是为了支持老钱包升级P2WPKH和P2WSH。 使用这种格式,旧钱包可以创建到隔离见证地址的交易。

详细分析见下图

比特币期货对比特币影响_比特币主连比特币连续的区别_海峡比特币

比特币期货对比特币影响_海峡比特币_比特币主连比特币连续的区别

比特币主连比特币连续的区别_海峡比特币_比特币期货对比特币影响

3.p2wpkh

交易编号:b9d4d5003269fa3b7555c69dd9075f67bfcb1dffa3555caea3e4c2428b6b2c13

具体的解析脚本如下,和p2pkh-p2wpkh很像,但是更加简洁。

海峡比特币_比特币期货对比特币影响_比特币主连比特币连续的区别

4.p2wsh

可以参考p2sh-p2wsh脚本分析。

3、如何避免?

如果你是平台提币,你也不用担心,因为平台是盈利的,不会贪你的芝麻。

未来,当比特币支付开始流行时,建议小心并检查发送方构建的 utxo。