OKCoin

一种缓解比特币交易拥堵的方式——交易所和Offchain钱包商合并提现

tan90d 发布在 比特币 3 1056

第0章 引言

 

目前比特币区块长期拥堵,手续费高涨。而硬分叉扩容也迟迟无法实现,就目前的处境来看,拥堵将一直持续。

有没有办法缓解呢?

有的。

Snip20170418_1

 

第1章 交易所和offchain钱包提现或转账交易是占据了网络中的交易的重大部分

 

首先我们先粗略将网络上的交易做两个分类:

  1. 个体用户用Onchain钱包发送的交易。这包括了用户向别人支付比特币,向交易所充值等。
  2. 交易所提现。这是交易所往个体用户发送比特币的交易。这种交易大量出现。除了交易所,还包括用户使用offchain钱包发出的交易。都可以归为这一类。

其中第2类交易是有优化空间的。

目前中国各大交易所的提现都是一个用户发起一笔提现服务,交易所就向网络发起一笔交易。往往至少是一个输入,一个输出,一个找零。用户承担一笔手续费。

Offchain钱包也是这样。一个用户发起一笔转账,供应商就发起一笔交易。用户独自承担一笔手续费。

这个过程是可以优化的。

交易是由输入和输出来构造的,区块空间里的交易所占区块空间的大小是和输入输出数量成正比的。在保证完成同样的转账的前提下,如果能减少输入那就可以节省区块空间。

 

第2章 交易所可以让多个用户的提现合并为一笔交易来完成

 

交易所可以设定一个时间区间,比如平均一个区块时间,10分钟。将所有这10分钟内的用户的提现使用一笔交易发出去。

如果交易所有一笔大的UTXO,那就可以实现一个输入,一个找零,n笔输出,这样一笔交易就将这10分钟内所有的用户的提现服务完成。这就比每一个用户的提现各发一笔交易要省很多的交易体积。

可以节省一半以上的区块空间。

节省了区块空间,自然就节省手续费,所有用户分摊手续费,这样用户也节省了不少手续费。甚至对交易所来说,为了更简单,也可以将手续费直接定死,比如直接定一个0.1mbtc。多了的归交易所自己,少了交易所补上。交易所甚至可以通过这种方法来创收。

另外考虑到交易所往往有一个提现审核时间,比如平均30分钟,那就可以将30分钟的提现全部由一笔交易发出去,这样节省的区块空间更多,手续费也省更多。

这是一个多赢局面。

对Offchain钱包来说,也是一样。

考虑到有部分用户可能需要使用一笔交易来标记自己的身份,而不愿意和其他人的交易混在一起,那Offchain钱包供应商可以提供类似的选项,单独发送交易收更高的手续费,接受混在一起发送交易收低手续费。这样可以鼓励大家使用混在一起的交易提现和转账。

这种方法就可以在同样满足交易所的提现情况下,如果交易所有一笔非常大的UTXO,就可以大约一半以上的交易体积。如果有n笔提现,以前是需要n笔输入,n笔输出,n笔找零,用这种方法后就只需要1笔输入,一笔找零,n笔输出了。这样可以极大的节省了区块空间

对Offchain钱包也有同样效果。

理想状况,每个交易所或offchain钱包,在每个区块里只发送一笔交易。这会非常大地优化区块空间的使用。

币友Mike告诉我,Localbitcoin早就使用了这种办法。

 

但如果交易所没有大的UTXO呢?因为交易所的UTXO来自于用户的充值,其实交易所必然是没有大的UTXO的。

 

第3章 交易所和Offchain钱包可以将零散UTXO合并为一个大的UTXO

 

因为交易所和Offchain钱包接受大量用户的充值,必然会产生大量的零散UTXO,比如有很多用户只充值少量的币。

这些大量出现的小额币充值,会对交易所形成大量的零散UTXO,而如果将这些UTXO用于用户的提现,那就会带来大量的输入。

这种情况下,交易所应该定期构造一笔n笔输入,一笔输入的交易,将零散的UTXO整合在一起形成一个大的UTXO。

因为网络交易也存在高峰和低谷,交易所就可以和矿池合作,让矿池在网络空闲的时间里将打包这种交易。甚至是矿池不得不出空块时,专门用于打包这种交易。这样网络就可以消灭空块了。

使用这种方法也可以大量优化区块的使用率,可以避免交易所提现过中发出大量的多笔输入,一笔输出的大体积低效交易。

同样,这种方法也适合被Offchain钱包供应商使用。

 

第4章 使用RBF功能来节省交易空间

 

首先声明,我非常讨厌RBF这个功能,完全没有必须的东西。虽然RBF是可以用来实现上面第2章所说的让交易所实现多笔提现打包成一个交易,其实也没有必要使用RBF,交易所自己编程就可以实现这样的交易。本质上RBF功能是不需要在主链上实现的,这应该交给商业公司自己去完成。

原理很简单,交易所在用户发起提现时,使用一笔大的UTXO和一笔小于平均交易手续费的手续费发起一笔交易,一个输入,一个输出,一个找零。交易标记为RBF交易。当又有新用户发提现时,交易所使用RBF功能发起一笔新的交易,使用和之前相同的输入和找零,一笔新输出。每当有用户发起提现时,都使用RBF功能发起同样的输入和找零和新输出的交易。直到交易被确认。

这样当接受RBF交易的矿池收到并确认这一堆RBF标记交易时,会被压缩成一笔交易。形成一个一个输入,一个找零,n笔输出的交易。

这样就实现了第2章所描述的合并提现交易。

理想状况,每个交易所或offchain钱包,在每个区块里只发送一笔交易。

 

第5章 结束语

 

比特币区块大小上限要是能被解除,成功实现扩容,该多好啊。

 

发文时比特币价格 ¥7099.4 (来源:火币网)
​作者:tan90d(微博@闪电HSL 微信tan90d 微信公众号 闪电HSL) 如果本文对您有用,欢迎打赏我一点比特币,谢谢。
我的BTC地址:14mhzjkJ71oMAMkKu3dy98dnUpkyQBHL1r
版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:3

您需要登录后才可以回复 登录|注册