王川:比特币支付费用为什么这么高?

本文最初于 2018年1月13日发布于笔者的公众号。


本文是   王川: 关于区块链的随想 (三)  的续篇.

1/ 一个典型的比特币支付交易的字符串,分为三个部分:
开头和结尾: 10 个字节
输入地址: 148 个字节左右 ( 每个有余额的地址也称作 UTXO )
输出地址: 34 个字节左右 (通常付完钱后余额会转到新的地址,所以一笔交易会有两个输出地址)
普通交易的字符串大小为 10 + 148 + 34×2 = 226 个字节

2/ 通过交易所转币,由于支付来源可能出自多个 UXTO, 每个 UTXO 增加 148 个字节, 如果输入的 UTXO 地址超过六个,单笔交易的大小很容易超过 1000 个字节,而高峰期下一个块 (十分钟内)马上确认的费用可能超过 800 聪/字节,所以整体费用可能接近 0.01 btc, 超过一百美元。这是为什么少数用户的支付费用奇高的原因。

3/ 一个普通的转账交易,226 个字节,最堵的高峰期立刻确认的费用 800-1000 聪/字节,总共费用可能到 0.002 个 btc, 大约 30 美元。

4/ 使用私人钱包支付,如果可以选择等四个小时确认, 高峰期时单位费用可以降到 400 聪/字节以下,整体费用不到 0.001 btc, 不到十五美元。

5/ 交易所的 UTXO 的分散混乱管理,是导致单笔交易的字节过大, 费用过高的主要原因之一。

6/ 网络不堵情况下,下一个块确认的支付费用大约 200-300 聪/字节。 而在全球投机客炒作的高峰期,比特币在各个交易所之间转币数目突然上升,接近系统处理极限,迅速推高单位字节立刻确认的传输费用到 800 聪/字节以上,这是主要原因之二。

7/ 降低交易费用的最重要手段,是批量处理。这相当于大家一起拼车,增加一个乘客,相当于增加一个输出地址,交易的字符串只增加 34 个字节,对整个大小影响甚微,但是大家可以分摊费用。如果有五个人一起拼车,下一个块迅速确认的费用很容易降到原来的五分之一。

8/ 这对于交易所,是最容易做到的事 (low hanging fruit)。一旦普及,大交易所因为转账数目多,有更多人分摊,在降低费用上有天然优势,可能形成用户越多费用越便宜,越便宜就吸引更多用户的良性循环, 甚至最终费用远低于私人钱包转账的现象。

9/ segwit (隔离见证)把交易中的包含数字签名和公钥的那部分字符串,从整个交易中剥离出来。这部分隔离出来的字符串,计算到交易费用时有折扣,可以把整体交易费用至少下降三分之一。但这个功能的推广和对于降低整个网络的交易费用的影响,需要时间。

10/ 可以期待,好的交易所,有可能把高峰期的 btc 转账费用下降到 5 mBTC 以下甚至更低。但在闪电网络推广之前,btc 转账费用降低到一美元以下的期许,是不太现实的.