为什么有了0确认还要缩短时间
01/14

作者:Bruce Lee,

原文:相关链接


在是否要缩短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持有某token 100个,他要进行双花干坏事。他要把token卖给B,于是他发起了一笔转账。这笔转账在BCH浏览器里面看起来是这样的: 地址A给地址B转账546聪(注:546聪是最低转账金额,目的就是为了发起一笔BCH交易在链上留下数据),然后附带了一笔op_return信息0877686300000000000000c000000011057f2dbc,这一串字符如果使用WHC节点程序解析出来的意思就是“A转账给B 100个token”

如果WHC是支持0确认的,那么B一看,100个token到账了,于是就确认收货了。

此时,A又发起了另外一笔转账,转给自己的地址C。这笔转账看起来是这样的: 地址A给地址C转账546聪,然后附带了一笔op_return信息0877686300000000000000c000000017530e5961,这一串字符如果使用WHC节点程序解析出来的意思就是“A转账给C 100个token”

在所有矿工看来,因为没有重复花费UTXO, 这两笔交易都是完全合法的BCH交易,他们会把这两笔交易全部打包进块。因为矿工是不会运行WHC节点的,不会知道其中一个其实是双花交易。

这样A就成功双花了100个token.

所以二层智能合约必须至少一个确认才可以。

 

目前智能合约是币圈最大的应用。对,就是最大,没有之一,比前面说的交易所充值提现还大。

以比特币为例,目前由运行在比特币链上的USDT产生的交易量比BCH全网交易量都多的多,USDT就是智能合约的一个应用。(下图中的Omni la yer就是USDT,因为Omni la yer协议上唯一活着的应用就是USDT)

 

ETH就更多了,上面运行着成千上万个智能合约,ETH的TX大部分都是各类智能合约产生的。

 

上图红色方框内是BTC和ETH今日(2019年1月13日)TX总量,比特币是28万,ETH是46万。现在是熊市,整个币圈人气非常低迷,交易所投机活动相较于牛市大幅减少,但是BTC和ETH依旧经常发生堵塞的状况,其中的功劳大部分都是智能合约带来的。

 

 

3  稳定币

   稳定币其实是智能合约的一个应用,智能合约无法支持0确认,稳定币自然也是无法支持0确认的。为什么要单独拿出来说,实在是因为稳定币太重要了。

   我们先来看一个图

第一位是大家熟知的USDT,因为历史悠久,目前依然霸占稳定币第一的位置。2 3 4 5 都最近几个月新出来的合法稳定币,市值正在飞速增长中,增长速度有多快,以USDC(也就是第二位的USD Coin)为例,请看下图

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不是合法的,普通用户无法在他们的官网兑换到美元,只能走场外交易,谁也不知道USDT 19亿市值的背后是否真的有对应19亿美元的准备金。

USDT之前在稳定币市场一家独大,市场份额占据95%以上,现在已经跌落到70%,而且还正在不断下滑,看这个趋势,再过半年,可能第一的位置都不保了。

 

那么,合法稳定币的应用场景有哪些?非常广泛,从交易所搬砖,国际贸易,证券市场出入金,到直播打赏,线上线下购物支付,只要是传统支付手段有的场景,合法稳定币基本都可以参与进去。甚至还可以渗透到法币崩溃的国家,拯救那些穷苦百姓。毕竟这是稳定币,价格不会像加密币这样暴涨暴跌。

以USDC为例,用户每次转账USDC,都需要支付ETH作为手续费,所以每个USDC用户,同时也会成为ETH用户

毫不夸张的说,稳定币是可以给加密币带来上亿甚至10亿级别用户的币圈第一潜力应用!

     有心的用户看到这里,就会有疑问了: 我查了一下,USDCTUSD PAX GUSD这些合法稳定币全部都是建立在ETH上的,你把稳定币吹的再牛逼和BCH有毛关系?

没错,目前主要的合法稳定币确实都是建立在ETH上的,因为ETH的确认时间只需要15秒,用户体验好。

但是BCH也有自己的优势,那就是容量超大不会堵塞!ETH受限于自身架构的问题,扩容问题迟迟无法解决,所以现在也会时不时像BTC那样发生堵塞。并且BCH上已经有WHC这个协议,功能完善,可以发行完全符合监管需求的稳定币token,非常方便。目前已经有一家基于WHC的合法稳定币正在测试中,很快就会正式运营了。

但是BCH上的稳定币最大的缺陷也就是确认时间太长。要知道竞争是全方位的,这个最大的短板不解决,BCH的稳定币没有发展的希望。

总结

在币圈目前第1大应用场景---智能合约,第2大应用场景---交易所充提,以及一个目前正在超高速发展且未来会带来数亿用户的应用---合法稳定币 都无法支持0确认的情况下,为什么我们要为了一棵树木放弃一片森林?

更何况,0确认和缩短时间是鱼与熊掌可以兼得的的,完全不冲突。

你觉得需要缩短出块时间吗?欢迎参与投票 相关链接

精彩评论

EndeDarlinlove
01/14
谢谢老师分享
Alley姐看币
01/14
收藏了