主页 > 下载imtoken官方网站 > 可编程货币的魅力——一种比特币现金零确认安全支付方案及其有效性博弈

可编程货币的魅力——一种比特币现金零确认安全支付方案及其有效性博弈

下载imtoken官方网站 2023-01-18 15:14:43

第0章介绍

加密数字货币是一种可编程的货币,编程很有趣。 本文分享了一个特别有趣的零确认解决方案及其有效性分析。

比特币是一种什么货币_货币比特币坏处_货币网比特币

第一章 零确认交易安全分析

我曾经写过一篇讨论比特币现金零确认安全的文章,这里是“比特币(包括BTC和BCH)的零确认安全吗?” ”。 如果您想了解更多可编程货币的魅力,请阅读本文。

为了描述方便,本章简要描述零确认交易的双花过程。

用户A向商户B发起支付,交易记录为tx1。 我们假设这个交易是一个输入,一个输出,一个零钱地址。

当 tx1 还没有被打包进区块时比特币是一种什么货币,商户 B 出于安全信任零确认直接发货给用户 A(假设是不需要物流的产品,比如电子书)。 因为比特币现金平均需要10分钟的确认时间,所以对于很多支付场景来说,10分钟的等待时间有点长。

用户A收到货后,用相同的输入构造了一个与tx1冲突的交易tx2,输出设置为自己的地址。 并播出。

如果矿池先打包tx2,那么tx1就会失效。 这时候双花就成功了。 用户 A 拿到货物并取回他的硬币。

但是如果矿池优先打包tx1,用户A的双花就会失败。 但这对用户A来说并没有什么损失,只是没有占到便宜。

这里的关键是,用户A发起双花交易是没有成本的,即使是双花,用户A也不会受到惩罚。 下面讨论一种让用户A发起双花交易tx2的方式,这会产生费用。

第 2 章使用新操作码 OP_CHECKDATASIG 构建保证金交易

BitcoinABC 开发团队在下一版本中设计了两个新的操作码,OP_CHECKDATASIG (CDS) 和 OP_CHECKDATASIGVERIFY (DSV)。 使用这两个操作码,可以设计一个特殊的交易,使得发起双花交易 tx2 的成本很高。

老外Jonald_Fyookball写了一篇介绍这个方法的文章,《Awemany的0-Conf解决方案》%E2%80%99s-0-conf-solution-05c960d3d60e

具体原理如下:

用户A向商户B发起支付,交易记录为tx1。 这笔交易的构成如下:input1,商户output1,用户自己找的output2,属于用户的“margin output3”。 特别的是这个output3。

这个“margin output3”是一个使用opcode CDS构建的锁定脚本,将“交易1的input1作为数据(记为data1)”压入锁定脚本。 该锁定脚本有两种解锁操作方法。 第一种是普通用户A使用私钥签名解锁脚本。 二是提供“data1、data1、output3的签名”解锁。

而如果用户A发起了一个双花交易tx2,那么tx2的组成是:一个Input1,一个用户A的地址,一个用户A的找零地址。这个tx2必须包含“data1”的签名。

只要用户敢广播 tx2,就相当于广播了“data1 的签名”,那么任何人都可以获得这个签名,并花费 tx1 中的“保证输出 3”。

一般情况下,矿工会优先获取这个签名,并尝试构建一个花费output3的UTXO。 矿工使用第二种赎回方式解锁上面的“margin output3”,并发起一笔交易tx3进行消费。 发起tx3,必须打包tx1和tx3,忽略tx2。 因为 tx1 是 tx3 的父事务。

这样,用户A发起tx2,就无法拿到矿机的打包。 相当于零确认tx1是安全的。

第三章零确认无法防止矿工双花

通过CDS操作码构造充值交易的方式,获得零确认的安全保障。 关键是用户A广播双花交易tx2后,押金会被矿工花掉。 但是如果用户 A 根本不广播 tx2 呢?

如果用户A是矿池比特币是一种什么货币,矿池不需要广播tx2,而是直接将tx2打包到自己挖到的区块中,双花就可以完美完成。 一旦 tx2 被打包,tx1 就会失效,不会有“保证金输出 3”。

事实上,非算力用户发起的比特币现金零确认交易是非常安全的,普通用户想要双花零确认交易难度太大。 真正有能力发起零确认交易双花的是矿池用户。 这是我的文章《比特币(包括BTC和BCH)的零确认安全吗? “描述了第 3 章。

所以我认为使用 CDS 来防止零确认的双花是没有意义的。

第四章结语

我非常高兴。