BCH(比特現(xiàn)金)即將在5月份迎來(lái)一次硬分叉,最近微博上BCH和BTC的粉絲又開始吵得不可開交舔痪。唇槍舌戰(zhàn)寓调,相當(dāng)有意思。這可不是單純的罵娘锄码,雙方可是圍繞著對(duì)方的技術(shù)弱點(diǎn)夺英,隱患,展開的極有技術(shù)含量的辯論滋捶。如果你對(duì)數(shù)字貨幣不熟悉痛悯,建議去圍觀一下,吵著吵著就吵成專家了重窟。
這次BCH升級(jí)重點(diǎn)是兩個(gè)方面:將區(qū)塊大小擴(kuò)大到32m,增加了一個(gè)專門為小額支付所有的改動(dòng)载萌,零確認(rèn)交易。
下面是其中的一篇帖子巡扇,里面對(duì)BCH的大區(qū)塊擴(kuò)容方案提出質(zhì)疑扭仁。
https://ethfans.org/posts/scalability-problem-imply-explained
簡(jiǎn)單概括起來(lái),這篇帖子的意思說(shuō)就是這次BCH升級(jí)厅翔,單純的將區(qū)塊擴(kuò)容是行不通的乖坠。因?yàn)榫W(wǎng)絡(luò)傳輸速度有限,每個(gè)節(jié)點(diǎn)只能通知到附近的幾個(gè)節(jié)點(diǎn)知给,同步一個(gè)區(qū)塊信息會(huì)經(jīng)過(guò)很多次“跳躍”瓤帚,類似于1 -> 2-> 4-> 8……每次新區(qū)塊同步時(shí)間只有十分鐘,如果區(qū)塊太大戈次,每次同步時(shí)間拉長(zhǎng),那跳躍的次數(shù)就會(huì)減少筒扒,就會(huì)出現(xiàn)有的節(jié)點(diǎn)還沒收到之前的區(qū)塊,新的區(qū)塊就又出來(lái)了花墩。1m的區(qū)塊大小沒問(wèn)題澄步,32m的話,同步時(shí)間擴(kuò)大30倍村缸,就來(lái)不及通知全網(wǎng)的節(jié)點(diǎn)。
這個(gè)觀點(diǎn)可能是對(duì)的梯皿。如果BCH網(wǎng)絡(luò)真的是這樣同步的話,很可能無(wú)法在10分鐘內(nèi)同步到所有的節(jié)點(diǎn)县恕。
但是……
首先,并不是所有的全節(jié)點(diǎn)都對(duì)時(shí)效性有這么嚴(yán)格的需求忠烛,不挖礦的全節(jié)點(diǎn)只能起到監(jiān)督的作用,完全可以延后考慮他們的同步美尸。
其次……
借用閃電兄的圖片,上面三張圖分別是BTC,BCH,ETH的算力分布圖求类。基本上最大的5屹耐,6個(gè)礦池就會(huì)占據(jù)80%的算力。事實(shí)上基本上每個(gè)挖礦的數(shù)字貨幣都是這種結(jié)構(gòu)惶岭。每個(gè)礦池有很多節(jié)點(diǎn),但是大的礦池肯定能第一時(shí)間獲得新區(qū)塊信息按灶,再馬上同步給自己的所有節(jié)點(diǎn),就已經(jīng)完成了全網(wǎng)80%的節(jié)點(diǎn)同步了鸯旁。剩下的節(jié)點(diǎn)哪里用的到10幾次跳躍?就算有铺罢,那也是不加入大礦池的損失罷了艇挨。
也許你會(huì)說(shuō)韭赘,我們現(xiàn)在的升級(jí)就是為了公平啊,就是為了阻止這種情況發(fā)生啊苞冯?
專業(yè)的人做專業(yè)的事,放在哪兒都是正確的侧巨。礦機(jī)挖礦對(duì)每個(gè)人都是平等的。但是你建礦場(chǎng)刃泡,找水電,規(guī)避政策風(fēng)險(xiǎn)等等都毫無(wú)例外的需要很專業(yè)的知識(shí)烘贴,小的礦工如果不接入礦池撮胧,被淘汰是必然的趨勢(shì)。個(gè)人的算力如果幾個(gè)月挖不出區(qū)塊芹啥,真是不知道堅(jiān)持下去的勇氣是什么锻离?靠情懷嗎汽纠?搞研究嗎?錢多得燒嗎傀履?每天的電費(fèi)支出可是實(shí)打?qū)嵉摹H绻F(xiàn)在再加上同步還比別人慢……請(qǐng)你實(shí)打?qū)嵉馁I臺(tái)礦機(jī)來(lái)自己挖礦試試钓账,堅(jiān)持個(gè)三五個(gè)月再來(lái)討論什么算力被壟斷之類的廢話吧。
另一個(gè)有趣的升級(jí)就是零確認(rèn)交易梆暮。比特幣10分鐘出塊時(shí)間,加上約定的6個(gè)區(qū)塊確認(rèn)讓小額支付成為不可能啦粹,但作為貨幣偿荷,即時(shí)的支付場(chǎng)景又非常重要唠椭。所以BTC在主鏈的上面構(gòu)建了復(fù)雜的閃電網(wǎng)絡(luò)。BCH是沒有閃電網(wǎng)絡(luò)的泪蔫,那怎么和BTC競(jìng)爭(zhēng)呢?這就是零交易確認(rèn)。
簡(jiǎn)單來(lái)說(shuō)铣揉,比特幣的交易流程是這樣的:每發(fā)生一筆交易,交易方雙方都會(huì)廣播交易信息至全網(wǎng)逛拱,收到交易的礦工將交易信息存儲(chǔ)在交易緩沖池內(nèi),直到挖到一個(gè)區(qū)塊后將交易打包進(jìn)區(qū)塊朽合,該交易獲得全網(wǎng)節(jié)點(diǎn)的確認(rèn)。
BTC只認(rèn)已經(jīng)打包進(jìn)入?yún)^(qū)塊的交易曹步,沒進(jìn)入?yún)^(qū)塊的交易通通不認(rèn)宪彩。
BCH的零確認(rèn)交易就是:只要你廣播了讲婚,這筆交易就確認(rèn)了。
是不是很好理解筹麸?
比起閃電網(wǎng)絡(luò),零確認(rèn)交易顯得非常簡(jiǎn)潔物赶,優(yōu)雅。如果零確認(rèn)交易能成功酵紫,BCH的價(jià)值是無(wú)法估量的告嘲。
但是憨闰!
就如BCH攻擊閃電網(wǎng)絡(luò)最終會(huì)奔潰一樣。BTC陣營(yíng)是非常不看好零確認(rèn)交易的鹉动。如果零確認(rèn)交易能行,那打包區(qū)塊的意義是什么呢泽示?不打包不也一樣能確認(rèn)嗎?
零確認(rèn)交易有一個(gè)最大的問(wèn)題就是:目前還沒有技術(shù)手段來(lái)保證消除雙花交易械筛。
無(wú)論是BTC還是BCH捎泻,交易成功與否埋哟,最保險(xiǎn)的判斷方法還是等礦工將該交易打包裝入?yún)^(qū)塊郎汪,等6個(gè)確認(rèn)后,就成為不可逆轉(zhuǎn)的交易煞赢。因?yàn)榇虬M(jìn)區(qū)塊時(shí)用到了密碼學(xué)來(lái)提供保護(hù),整個(gè)區(qū)塊是一個(gè)字節(jié)都無(wú)法修改的照筑。整個(gè)數(shù)字貨幣正是建立在這套密碼學(xué)基礎(chǔ)上的。
如果沒有打包進(jìn)區(qū)塊瘦陈,只是放在緩沖池里,一筆交易是可能被另一筆交易取代的晨逝。只要多給點(diǎn)礦工費(fèi),將同一筆錢發(fā)送到另外一個(gè)地方捉貌,就可以覆蓋掉前面的交易趴生。這就是目前BTC使用的RBF交易機(jī)制昏翰。
BCH零確認(rèn)交易當(dāng)然也可能會(huì)遇到這樣的問(wèn)題棚菊,但是如果誰(shuí)可能實(shí)現(xiàn)零確認(rèn)交易,也只能是BCH了叔汁。WHY?我們來(lái)看看。
BCH不允許RBF交易据块,也就是說(shuō)無(wú)法使用一筆高手續(xù)費(fèi)交易來(lái)覆蓋另一筆交易。如果你用BCH買了一杯咖啡另假,只要等上幾秒,讓交易信息傳遍全網(wǎng)边篮,這筆交易就幾乎成為不可逆的了。再加上BCH32m的區(qū)塊大小凌受,能保證很長(zhǎng)一段時(shí)間內(nèi)思杯,你的交易信息都會(huì)在下一個(gè)區(qū)塊就得到確認(rèn)。也就是說(shuō)最長(zhǎng)十分鐘以后,你的交易就會(huì)成為不可逆领突。
但這仍然不能保證交易的安全攘须,因?yàn)榈V工本身是可以雙花的。先花掉一筆錢于宙,然后在挖到的下一個(gè)區(qū)塊里把用另一筆交易把這筆錢轉(zhuǎn)到自己的其它賬戶里悍汛,根本就不需要廣播,其它節(jié)點(diǎn)只能接受谱俭。
所以零確認(rèn)交易是只適合小額交易宵蛀,從博弈論的角度來(lái)說(shuō),礦工是沒有動(dòng)力為了很少的錢去構(gòu)造雙花交易的术陶。零確認(rèn)交易用來(lái)買杯咖啡,買份報(bào)紙是足夠安全的接谨,而越大的資金就需要更多的確認(rèn)來(lái)保證塘匣,這樣的風(fēng)險(xiǎn)恐怕不會(huì)比信用卡更大。
BTC的閃電網(wǎng)絡(luò)已經(jīng)運(yùn)營(yíng)得很好了扫夜,相信BCH的零確認(rèn)交易也會(huì)成功的埠巨。技術(shù)加博弈論在數(shù)字貨幣一直都被證實(shí)非常奏效,極客們一直在追求零風(fēng)險(xiǎn)的方案辣垒,但是事實(shí)早就證明了,合適的技術(shù)和足夠的利益結(jié)合已經(jīng)可以讓整個(gè)系統(tǒng)非常非常安全了脱衙。