第0章 引言
BTC手续费已经高到了体积非常小的一笔交易都要200人民币以上的地址,尼玛,你们知道200人民币是什么概念吗?
“美国人在食品上的花费为每月269欧元(约合人民币2064元)”
一笔交易要花掉美帝国主义一个人3天的饭钱。TMD的,200块钱够绝大多数咱中国人吃一个星期的。FxxxxxxxK 1M Block。
第1章 BTC用户的尴尬处境
BTC的发展现在处于一个非常尴尬的地步,主要Core开发者肯定不愿意解决这个事哦,高手续费是他们的目标。
曾经为BTC普及到更广大人群而奋斗一线并且因此被一群SB黑成翔的中国矿工们,现在也终于放弃了为BTC用户谋求福利,转而为BCH改变世界而奋斗。
小区块爱好者们现在还继续唱着储值路线,继续黑着为扩容而发声的人,还在幻想着隔离见证、闪电网络和侧链而高潮。
唯有BTC的用户哭着支付着血汗钱换来的高额的BTC矿工费。
用户没有别的办法,只能自救,本文提供一些基本的节省BTC矿工费的方法。
第2章 终级大招——使用BCH
如果可以,你可以使用手续费低到可以忽略的比特现金BCH来完成你的支付。如果你不是投资行为,只是完成支付,或者只是接收付款,尽可能选择BCH来完成支付,利人利己,不用支付高昂的BTC手续费,也不会给BTC添堵。
支付最重要的就是网络效应,BCH现在的网络效应略低于BTC,但差距并不是大到不可使用。你可以很方便找到交易所来将BCH兑换成法币或用法币来换BCH,以完成整个支付过程。
BCH你可以付最低的手续费,都可以稳定地在下一个区块得到确认。
注意这不是要建议你买入BCH作为投资行为,是用来完成支付。
下面是几个节省BTC手续费的方法。
第3章 使用交易所和offchain钱包来将零散币凑整
BTC的手续费是和交易的字节大小线性相关的(隔离见证交易的手续费更复杂,一会我们会讲如何利用隔离见证来节省手续费),交易的字节大小主要取决你的输入数量。这个懂的人都懂,我打个比方给不明白BTC手续费如何被字节大小影响的人理解其原理。
现在的场景时你要付100块钱给我,我说的就是人民币,如果你有一张一百块的,那就很简单哦,你直接给我一张100块的纸币就好了,交易过程非常简单。但如何你没有一张100块的,你是一个公交车司机,工资全是硬币,你给我100个1块钱的硬币。我就FxxxK了,我接收这100块的成本就很高,需要数半天,还要买一个麻袋来装。所以这笔交易就复杂很多,我可能会收你额外的成本。
比特币也是一样,如果你为了支付别人1BTC,你使用一个地址有1BTC的余额来支付,和你使用10个余额为0.1BTC的地址来凑成1BTC来支付,后者的支付成本要高很多。矿工费后者就要支付前者的接近十倍的量。
所以平时我们要尽可能少收零散BTC。
但如果你就是有很多零散的币收入呢,这时候你就可以使用交易所或offchain钱包商来将零散钱凑整,以完成下一次支付。
具体的操作过程是,你将你的收款地址设成交易所或offchain钱包的充值地址,比如你今天收到十个人,每人支付给你0.1BTC,总计1BTC。然后你将10*0.1=1BTC提现到你自己的地址,这时你只需要付一次矿工费,就将十个0.1BTC的零散钱凑整成了1BTC。因为交易所和offchain钱包一般是收固定手续费的,所以这个好办。这时你的地址上就是一个整的1BTC余额,而不是十个0.1BTC的余额。你再支付的时候,就只需要支付较小的矿工费。
这个办法就是和公交车公司将硬币拿到银行换成整100的纸币是一个道理。
这个办法其实是将矿工费转嫁给交易所和offchina钱包商,有点不好意思吧。不过交易所和offchain钱包商一般会有合并提现技术,就是将多个用户的提现请求合并成一笔交易,但对每个用户收固定额度的矿工费,这种方式对交易所来说可能还是挣钱的。所以厚点脸皮吧,也不用太不好意思。
千万别将这种办法使用在提现费不是固定额度的交易所,不然的话,一不小心你的提现矿工费就高的吓人。我就曾经在国内某交易所提现几个币被黑了上千块矿工费。
第4章 精打细算计算矿工费
你怎么才能清楚知道矿工费应该支付多少?
一般来说,一个钱包都会评估当时的网络拥堵情况,并且帮用户设定矿工费。但大多数钱包做的并不好,因为SPV钱包很难监管网络节点的内存池交易积压数量和交易手续费分布。
你需要的是一个好的计算手续费的工具,推荐使用BTC.com。因为BTC.com本身就是矿池,所以他可以完整的监管全网内存池的交易积压和统计手续费分布情况,它给出的推荐费用是比较准确的。
https://btc.com/打开这个网站,看右下角。
红框里的数字就是推荐的手续费,但这个公式很难懂,这个要怪隔离见证,就是隔离见证把这个手续费计算搞的这么奇怪。
如果你是使用bitcoin core钱包发送交易,直接使用自定义手续费,将手续费调成这个推荐值大小,发送出去的交易一般能在三个区块内得到确认,哪怕是运气不好,也不会超过5个区块。如下图(我使用的是bitcoin abc截的图,Bitcoin core节点在另一台电脑上,截图麻烦,节省时间,请原谅,反正你看的懂就好了。)
发送BTC如何节省矿工费
如果你使用的是SPV钱包呢?首先鉴于目前我没有发现,真的没有发现,计算手续费很好(便宜而且快速得到确认)的SPV钱包,所以还是建议你使用bitcoin core来省点矿工费吧。当然你得损失便利性。
如果SPV钱包,基本上只能依赖于钱包自己的计算,顶多它们会给出几个等级,比如最快、快、慢,或者十倍手续费、五倍。。。。
比如你使用的是比太,就只能选择十倍、五倍、两倍和标准。10倍手续费就是0.001btc/kb,但比太并不会算字节大小,而是直接发0.001btc/笔的手续费。五倍就是0.0005btc/笔。。。。
就目前来说,你只能选择十倍的手续费,不然几天之后碰运气才能得到确认。但这里还有一个简单的评估方式在以后备用。
如果你的交易是1输入的,那就基本上是300字节左右。选择十倍手续费。实际上你的手续费大小是 0.0033btc/kb,五倍就是0.0015btc/kb左右。按这个计算,你选择一个接近btc.com推荐值的手续费。
大部分SPV钱包好像都不让用户精细调手续费,就按照他们推荐的做吧,没办法了。
第5章 使用隔离见证交易来节省手续费
BTC激活了隔离见证,并且Core他们为了推广隔离见证而设计了一种新的手续费计算方式,就是将隔离见证交易里的见证数据的手续费减免75%。
隔离见证交易(P2WPKH)是将交易分成两部分,一部分是交易数据;第二部分是见证数据。隔离见证交易的手续费计算方式如下
(交易数据*3+见证数据)/4*按字节算手续费大小值
相对的现在常用的普通交易(P2PKH)的手续费计算是这样的,普通交易格式不区分交易数据和见证数据,就是一个完整的交易数据。(隔离见证交易就是将原本一个整体的数据分成了两个部分,即P2PKH的交易数据大小=P2WPKH的交易数据+P2WPKH的见证数据)
交易数据*按字节算手续费大小值
所以对比上述两种交易所手续费计算,相当于见证数据打了折扣,
一般一对一(一输入,一输入,一找零)的交易是226字节,如果使隔离见证交易格式,那就是交易数据约 146字节,见证数据约80字节。
使用普通交易格式来发送,需要手续费是:
226*标准手续费;
使用隔离见证格式来发送就相当于节省了手续费:
(146*3+80)/4*标准手续费=129.5 *标准手续费。
所以能省一些。
那如何发送隔离见证交易呢?
首先你得跟你的接收方商量,让他接受隔离见证交易格式的交易。首先是让他生成隔离见证的地址,使用支付隔离见证的钱包来生成。比如比特派就支持。打开比特派,在设置里选择“开通隔离验证地址”,就可以生成可接收隔离见证交易的地址了。你会发现,你的地址是3字开头的了。(目前我没有用过比特派发送隔离见证交易,尼玛,BTC的手续费太贵了,为了写文章去测试舍不得,操。。。。。)
目前我还是推荐使用bitcoin core钱包来发隔离见证格式的交易,毕竟隔离见证整个社区并没有吃透这是啥玩意。要使用隔离见证,最好是信Core的代码,虽然我自己很讨厌他们,但在隔离见证这件事上,最好是听他们的。
你可以使用bitcoin core钱包来生成隔离见证的地址,请使用bitcoin core 0.15,在控制台输入命令,addwitnessaddress 地址(复制一个你有币的地址),然后你就可以看到你生成了一个P2WPKH地址。然后你就可以将这个地址里的币以隔离见证格式发出去了。如果目标地址也是隔离见证地址,那你的钱包就会以隔离见证交易格式发送币了。
但是,不幸的是,目前大多数交易所都不支持接受隔离见证交易,所以这是个麻烦,你想用都很难找到地方用。
第6章 结束语
被敲竹杠的BTC用户们,努力起来,自救吧,没人救你们了。
文章来自公众号闪电hsl