BCH社区:为什么有了零确认还要缩短出块时间?
为什么有了0确认还要缩短时间
在是否要缩短BCH出块时间的讨论中,反对方提出的最经典的一个问题是:有了0确认,我们为什么要还缩短时间?你再怎么缩短,能快过0确认?
在avalanche协议没有出现之前,零确认还存在不少缺陷,安全性不足,主要有以下几点:
1、用户使用了低于1聪/字节的手续费发出交易,可能会导致交易在非常长的一段时间内无法获得确认,毕竟绝大多数矿池的费率高于这个
2、延展性BUG,恶意矿工可以篡改txid,这会导致交易所商家的账目混乱
3、快速双花攻击
4、51%攻击
一旦avalanche全面部署,上述的缺陷基本都可以弥补,0确认的安全性会变得非常高,根据目前BCH的网络状况看,基本上0确认的交易可以在几秒内就达成avalanche共识,近乎实时的速度了。所以看上去非常完美了,似乎根本没有缩短时间的必要了。但是0确认适用于所有场景吗?事实上是远远不够的
0确认适用的场景
1小额支付:这是BCHer经常挂在嘴边的了,小额支付确实很适合,没问题。例如Bitpay目前就是支持BCH的0确认支付的。
2单纯存储性的二层应用:这话比较拗口,memo就是一个经典的例子,把数据保存在op_return里面,但是这些数据仅仅只是普通数据,不涉及到金融资产。
0确认不适用的场景
1、交易所充值
无论0确认如何安全,交易所也不会开放0确认充值,至少会要求一个确认。曾经有一家交易所提供BCH的0确认充值,事后被证明只是噱头,充值是0确认,提现需要审核好几天。
不管我们是否承认,在现阶段,交易所充提是币圈的最大应用之一,这是一个基本事实。2017年牛市的时候,比特币/ETH双双堵塞,很多搬砖客转而使用LTC进行搬砖,导致LTC从之前没啥人用的情况下TX(链上交易量)暴增,至今稳定保持BCH的2倍+。人们使用LTC的逻辑很简单,平均2.5分钟出块,大多数交易所一个确认就入账。毕竟速度快体验好。
LTC的出块时间是2.5分钟,BCH是10分钟,看上去只差了7.5分钟。但是因为概率的原因,BCH经常会出现1个多小时都没有出块的情况,我想几乎所有BCH老鸟都遇到过这种情况。在速度偏快或者正常的时候,用户会觉得理所当然,但是巨慢的时候,用户会变得抓狂难以忍受。而LTC就算偶尔出块慢,也就10多分钟不出块。
从用户的心理来说,就算10次转账有8次是正常的,但是只要有2次需要等超长的时间,就会给用户留下极差的印象,从而导致用户流失。
2 、二层智能合约
BCH上的智能合约分两种,一种是运行在主链上的智能合约,矿工可以直接进行验证,这种应该是可以0确认的。但是受限于BCH的UTXO机制,这种智能合约只能是无状态的,只能编写一些很简单的合约,要想运行类似ETH上那种复杂的有状态智能合约是完全不可能的,从原理上就无法实现。
而二层智能合约就可以实现所有ETH可以实现的合约。具体原理就是利用op_return这个操作码,把智能合约数据和代码保存在里面,然后再使用专门的节点程序进行读写操作。
这类方案目前有WHC, KEOKEN。以WHC为例,目前已经实现了非常完善的token功能。几大矿池之一的viabtc就通过WHC发行了viat这个token,另外还有一家稳定币正在测试阶段,很快会上线。
0确认之所以不适用于二层智能合约,是因为矿工是不参与解析op_return的数据的。举个简单通俗的例子:
A持有某token100个,他要进行双花干坏事。他要把token卖给B,于是他发起了一笔转账。这笔转账在BCH浏览器里面看起来是这样的:地址A给地址B转账546聪(注:546聪是最低转账金额,目的就是为了发起一笔BCH交易在链上留下数据),然后附带了一笔op_return信息0877686300000000000000c000000011057f2dbc,这一串字符如果使用WHC节点程序解析出来的意思就是“A转账给B100个token”
如果WHC是支持0确认的,那么B一看,100个token到账了,于是就确认收货了。
此时,A又发起了另外一笔转账,转给自己的地址C。这笔转账看起来是这样的:地址A给地址C转账546聪,然后附带了一笔op_return信息0877686300000000000000c000000017530e5961,这一串字符如果使用WHC节点程序解析出来的意思就是“A转账给C100个token”
在所有矿工看来,因为没有重复花费UTXO,这两笔交易都是完全合法的BCH交易,他们会把这两笔交易全部打包进块。因为矿工是不会运行WHC节点的,不会知道其中一个其实是双花交易。
这样A就成功双花了100个token,所以二层智能合约必须至少一个确认才可以。
目前智能合约是币圈最大的应用。对,就是最大,没有之一,比前面说的交易所充值提现还大。
以比特币为例。目前由运行在比特币链上的USDT产生的交易量比BCH全网交易量都多的多,USDT就是智能合约的一个应用。(下图中的OmniLayer就是USDT,因为OmniLayer协议上唯一活着的应用就是USDT)
ETH就更多了,上面运行着成千上万个智能合约,ETH的TX大部分都是各类智能合约产生的。
上图红色方框内是BTC和ETH今日(2019年1月13日)TX总量,比特币是28万,ETH是46万。现在是熊市,整个币圈人气非常低迷,交易所投机活动相较于牛市大幅减少,但是BTC和ETH依旧经常发生堵塞的状况,其中的功劳大部分都是智能合约带来的。
3 、稳定币
稳定币其实是智能合约的一个应用,智能合约无法支持0确认,稳定币自然也是无法支持0确认的。为什么要单独拿出来说,实在是因为稳定币太重要了。
我们先来看一个图
第一位是大家熟知的USDT,因为历史悠久,目前依然霸占稳定币第一的位置。2345都最近几个月新出来的合法稳定币,市值正在飞速增长中,增长速度有多快,以USDC(也就是第二位的USDCoin)为例,请看下图:
USDC在2018年10月17日的时候,发行量还是0,此后一路快速增长,目前已经达到了3.6亿美元,仅用时88天!
我们再看看USDT从0到3.6亿美元花了多久?
从2015年3月到2017年9月,用了足足2年6个月!
为什么USDC发展速度会比USDT快这么多?而且USDT最顶峰市值有28亿美元,现在只有19亿。原因很简单:
USDC这类的稳定币是合法的,受监管的,用户在官网兑换美元没有任何阻力,非常方便。
USDT不是合法的,普通用户无法在他们的官网兑换到美元,只能走场外交易,谁也不知道USDT19亿市值的背后是否真的有对应19亿美元的准备金。
USDT之前在稳定币市场一家独大,市场份额占据95%以上,现在已经跌落到70%,而且还正在不断下滑,看这个趋势,再过半年,可能第一的位置都不保了。
那么,合法稳定币的应用场景有哪些?非常广泛,从交易所搬砖,国际贸易,证券市场出入金,到直播打赏,线上线下购物支付,只要是传统支付手段有的场景,合法稳定币基本都可以参与进去。甚至还可以渗透到法币崩溃的国家,拯救那些穷苦百姓。毕竟这是稳定币,价格不会像加密币这样暴涨暴跌。
以USDC为例,用户每次转账USDC,都需要支付ETH作为手续费,所以每个USDC用户,同时也会成为ETH用户
毫不夸张的说,稳定币是可以给加密币带来上亿甚至10亿级别用户的币圈第一潜力应用!
有心的用户看到这里,就会有疑问了:我查了一下,USDC TUSD PAX GUSD这些合法稳定币全部都是建立在ETH上的,你把稳定币吹的再牛逼和BCH有毛关系?
没错,目前主要的合法稳定币确实都是建立在ETH上的,因为ETH的确认时间只需要15秒,用户体验好。
但是BCH也有自己的优势,那就是容量超大不会堵塞!ETH受限于自身架构的问题,扩容问题迟迟无法解决,所以现在也会时不时像BTC那样发生堵塞。并且BCH上已经有WHC这个协议,功能完善,可以发行完全符合监管需求的稳定币token,非常方便。目前已经有一家基于WHC的合法稳定币正在测试中,很快就会正式运营了。
但是BCH上的稳定币最大的缺陷也就是确认时间太长。要知道竞争是全方位的,这个最大的短板不解决,BCH的稳定币没有发展的希望。
总结
在币圈目前第1大应用场景---智能合约,第2大应用场景---交易所充提,以及一个目前正在超高速发展且未来会带来数亿用户的应用---合法稳定币,都无法支持0确认的情况下,为什么我们要为了一棵树木放弃一片森林?
更何况,0确认和缩短时间是鱼与熊掌可以兼得的的,完全不冲突。
你觉得需要缩短出块时间吗?