隔离见证交易
第0章 引言
今天有一批2010年的区块挖矿奖励,被移动到一个3字开头的地址。因为目标地址是一个3字开头的地址,隔离见证的地址格式也是以3字开头,再加上这些币非常早期,在2010年被挖出来。由此被币圈一些人传为是早期矿工,甚至就是中本聪,将币转移到隔离见证地址上去了。并声称中本聪支持隔离见证。
毫无疑问,这是错的,这笔交易不可能是隔离见证交易。
第1章 什么是交易
一笔比特币交易是一个含有输入值和输出值的数据结构,该数据结构植入了将一笔资金从初始点(输入值)转移至目标地址(输出值)的代码信息。你应该将它们理解成一种被特定秘密信息锁定的一定数量的比特币。只有拥有者或知晓这个秘密信息的人可以解锁。
上面的太学术化了,准确,但不方便理解,下面是讲人话。
用过支付宝吧,过程是这样的,把对方的账号输入到付款框,把转账金额输入到对应框,点确认,输入密码,OK。
这个过程就是向支付宝的服务器声明以下信息:从你的支付宝账号扣除XX金额,密码就是你的发起扣除金额的授权,向目标账号存入XX金额。然后支付宝公司的服务器就会帮你和目标账号调整记账。
比特币交易也一样,发送一笔交易就是向比特币网络声明以下信息:从你的地址扣除XX金额,通过你的私钥解密以授权扣除,并且通过将XX金额和目标地址加密在一起来实现“去中心化”记账,并且这个XX金额只有通过目标地址对应的私钥,才能解密(授权)进行下一次转账。
一笔比特币交易一定是包含这么一系列元素:输入地址(交易发起人的地址),金额(即UTXO),输出地址(目标地址),私钥签名解锁,和加密到目标地址。
比特币交易根据以上交易组成的元素的不同,交易的具体实现可以分为多种交易类型,目前使用最广泛就是两种,被标准标准交易:支付到公钥哈希(P2PKH)和支付到脚本(P2SH)。
第2章 比特币标准交易格式
先说明在隔离见证激活之前比特币最常见的两种地址:1字开头和3字开头的地址。
P2PKH就是我们最常用的1字开头的地址,你用1字开头的就是P2PKH地址。
P2SH就是多重签名地址,就是用3字开头的地址。
比特币在隔离见证分叉之前存在的交易类型就可以是以下几种:
1.1开头的地址作为输出,1开头的地址作为输入(1开头地址发往1开头地址, P2PKH-P2PKH);
2.1开头的地址作为输出,3开头的地址作为输入(1发往3, P2PKH-P2SH);
3.3开头的地址作为输出,1开头的地址作为输入(3发往1,P2SH-P2PKH);
4.3开头的地址作为输出,3开头的地址作为输入(3发往3,P2SH-P2SH)。
而且更复杂的n对n交易,可以有多个输入地址,并且同时存在1和3开头的地址;但不可以存在1和3开头的地址同时作为输出。
第3章 比特币非标准交易格式
隔离见证引入了两种非标准交易格式:支付到见证公钥哈希(P2WPKH)和支付到见证脚本哈希(P2WSH),分别用于替换P2PKH和P2SH交易。
P2WPKH和P2WSH地址都是3字开头的。
因此隔离见证交易类型可以是以下几种,具体表现都是3字开头的地址作为输出,3字开头的地址作为输入:
1.P2WPKH-P2WPKH;
2.P2WPKH-P2WSH;
3.P2WSH-P2WPKH;
4.P2WSH-P2WSH。
隔离见证交易还有其他两种类型,
5.P2SH-P2WPKH,即多重签名地址发到隔离见证地址;
6.P2SH-P2WSH,即多重签名地址发到隔离见证地址;
这两种将才是隔离见证初期被主要使用的。
注意:1字开头的地址是无法参与隔离见证交易的。
第4章 不建议普通用户使用隔离见证交易
我建议普通用户不要使用隔离见证交易,不吹不黑,我们讲道理。
1字开头的P2PKH地址和3字开头的P2SH地址我们用了很多年了,前者用了8年多,后者也用了5年多了。没有问题,经过了足够长时间的考验。
P2WPKH和P2WSH,新东西,让有经验的,懂技术的,胆儿大的人先去实验吧。
另外隔离见证地址锁定的币是在一种Anyone-Can-Spend的币,如果有人发起一次硬分叉退回到非隔离见证的版本中是可以直接花掉这些币的。
所以你在使用隔离见证交易之前请谨慎思考自己是不是完全弄懂了隔离见证是什么,如果不是,请使用1字开头的地址,这样可以保证自己的币不会收到和发到隔离见证交易地址上去。
从收益角度来讲,使用隔离见证交易能得到什么好处呢?
能省手续费。省多少呢?理论上是可以省的,但实际上因为现在区块满了,矿工是按手续费高低来排序打包,你想省,问矿工去吧。
其他的好处是你的交易不会被延展性攻击,这个。。。。本来就不算事儿。
据说可以使用闪电网络,但闪电网络在哪呢?等吧。
第5章 结束语
如果你非要现在测试隔离见证交易,请使用bitcoin core 0.14和btc1,在控制台输入命令,addwitnessaddress地址(复制一个你有币的地址),然后你就可以看到你生成了一个P2WPKH地址。