完全去中心化是否真的必要? - 數位貨幣

Table of Contents

其實越研究最近對於區塊鏈效率的額外改進方案,越會覺得中本聰的區塊鏈真的是神解

對於全球性金流系統而言,最重要的是可用性共識安全性

比特幣將可用性的優點體現在不分時間地點、都可以和任何人有比特幣錢包進行交易

在共識安全性上,因為有全網共識,避免了雙花和撤銷交易的可能性,甚至比信用卡安全。

而依照CAP理論,所有的效率的改進方案幾乎都會損害到區塊鏈貨幣的可用性和安全性。

什麼是CAP理論呢?它是對於分散式資料系統的一種限制,你無法同時滿足以下三點特性:

Consistency: 一致性 (所有節點在同一時間具有相同的數據)
區塊鏈系統當然要有同樣的數據資料,並且用PoW或PoS得到唯一有效的共識。
這是對於交易系統的安全性基本需求。

Availability: 可用性 (保證所有類型請求都可以在時限內獲得回應)
對於全球金流系統可用性當然是最重要,
任何使用者可以跟使用網際網路一樣,在任何時間、將所擁有的資金、轉到任一地址。

Partition tolerance: 分隔容忍 (切割成子系統不會影響系統的繼續運作)
中本聰的區塊鏈系統基本上已經把一致性和可用性推到極限。
所以你今天要用比特幣就一定要聯網和區塊鏈同步,大家共識必須一致。沒有子系統。

實際上區塊鏈系統在不擁塞的狀態下根本完美得不得了,一般交易零確認快如閃電。

不信的可以去用零錢玩SatoshiDice,送出交易三秒內就會被偵測到完成一局。

有贏錢三秒內自己的錢包就會收到,根本是real-time的體驗。

連博弈網站都敢這樣搞,bitpay和coinbase也這樣玩很久,代表小額零確認交易非常安全。

所以我一直認為增進區塊鏈容量和效率的技術,才是全球金流系統真正該發展的方向。



那再來看看對於區塊鏈效率的額外改進方案,是否真的是萬靈丹,

可以在不影響一致性和可用性下改進金流系統的效率。

先以已經可以用的Payment channel來看,

它的原理就是Alice和Bob先把自己一部分的資金鎖到通道內,然後互相只交換未確認交易

只有最後要結束通道的時候,才把最後一次的結算交易丟給礦工做確認和結算。

那這樣就大幅減低了礦工負擔了,增加擴容可能性。因為資金先被鎖住也不會被雙花。

但問題是這極大幅度削弱了區塊鏈貨幣的可用性,你的資金被鎖住了

本來比特幣可以隨時隨地可以轉給任何人,但現在被鎖住只能轉給特定人。

為了解決這個問題,所以後來又搞了一個極端複雜的金流網路,光白皮書就嚇死人。

https://lightning.network/lightning-network-paper.pdf

BTC的閃電網路,在ETH也有一個差不多一樣的實作叫做Raiden雷電網路。

把on-chain fee推高,讓Core一直狂推,把大家都趕到這個網路內,全部都連在一起。

那這樣可用性不就變高了嗎??

好像很合理。但問題是它的可用性和本來的區塊鏈系統相比脆弱非常多

首先你要發交易當然還是要鎖錢,重點是和你連線的Payment Hub不能離線,連自己也是。

實際上只要金流的路徑中任何一個節點突然離線了,你的交易就會失敗。

因此這些Payment Hub必定會是非常專業化的,才會閒著沒事24小時開著永不斷線。

但區塊鏈系統大家都可以隨時上線和離線,但你仍然是永遠可以使用。

更不要說路由問題,要去中化作routing一直是資訊科學裡難解的問題。

現在的Internet實際上是用非常中心化的方式去做routing,

就幾個骨幹ISP在網路交換中心做路由,甚至很多部分還是要靠人工設定的。

之前就有發生台灣網路交換中心隔壁機房失火,台灣就大斷網的事件。

而目前閃電網路仍然是靠直接全網廣播所有節點路由資訊,來尋找最佳的金流路徑。

然後說這種方式可以解決本來區塊鏈系統的擴容問題,這我真的笑了。

區塊鍊的擴容瓶頸在於通訊瓶寬,你每發一筆交易就要全網廣播到所有礦工節點。

結果現在變成更新路由資訊也要全網廣播,一個hop廣播一次。

可以預見的是,閃電網路系統的頻寬擴容問題甚至會比本來區塊鏈系統更為嚴重。

再來是閃電網路和一般stateless routing不一樣,可不像一般通訊封包丟了就算了。

每個路徑都還有收支平衡、金流寬度、交易狀態等問題,挖靠,根本大爆炸。

更不要說收款也必須在線這極大幅度影響可用性的問題。

要轉大額款項更是不可能的任務。

可以想見的是閃電網路它的可用性必定遠遠不如於原本的區塊鏈金流系統。


那麼假如我們把區塊鏈系統切割成一個一個的子系統,是否就可以擴容了呢??

那這其實就是shardingplasma的目標。

https://blockgeeks.com/guides/what-are-ethereum-nodes-and-sharding/

shard可以把會互相交易的同一個DApp丟到同一個shard內。

shard內的交易只讓該shard的隨機validator去確認有效性,

然後寫state root和tx group root到main chain上。

plasma則使用子區塊鏈,同樣把同樣會互相交易的DApp丟到這個子區塊鏈。

但其實這兩個方案適合的是DApp的應用,一個DApp本來就只需要服務部分人,

而不是全部人,所以把DApp丟到shard內,或是plasma的子區塊鏈內,非常適合

因此這兩個方案只有ETH在研發,BTC根本沒在推這兩個方案。

但是全球金流網路這個應用是要服務所有人,要分割子系統就必定會導致延遲。

譬如每一國都有自己自己的shard或是plasma子區塊鍊。

但是比特幣相比於法幣最大的優點就是無國界金流,結果變成所有跨國金流都有高延遲。

以shard來說就需要cross-shard communication,仍然是影響到原本金流系統的可用性。

當然也不排除後來有個比中本聰更神的人來解決這個問題XD。


所以有些系統乾脆對於去中心化的一致性妥協,譬如IOTA,他必須靠COO來維持共識。

結果變成瓶僅卡在COO,拿掉COO理論上可以很快,但如何維持安全性共識仍然有挑戰。


既然中本聰已經發明這麼好的東西,我認為金流系統把區塊鏈推到極限才是主要目標。

譬如Graphene可以把區塊鏈系統的通訊瓶寬效率搞到逼近於IOTA。

而weak-block可大幅強化零確認交易的安全性,本來就跟閃電網路一樣快。

off-chain或是第二層的方案當然也可以同步研發,對於高頻交易或特定應用很有用。

但直接把區塊鏈系統直接蓋掉反而弊大於利。

--
simpleledger:qryeahexpqszdt9ffech6jhxu6wsfp0fnyhgd44ahf
Bitcoin: 1GxtyprMfcxE366BDUsg1skQyuAnxktZjc
https://www.blockchain.com/zh/btc/address/1GxtyprMfcxE366BDUsg1skQyuAnxktZjc
Bitcoin Cash: bitcoincash:qp928h4q4xasa5wh2x88xhsxgc4vwj6g95uzq0ak97
https://goo.gl/2qNr43
Ethereum: 0x4A2B1e35eb64141bbad4C58cB7D79692bC5Dbbc2
https://etherscan.io/address/0x4A2B1e35eb64141bbad4C58cB7D79692bC5Dbbc2
--

All Comments

Dorothy avatarDorothy2018-02-28
首推
Heather avatarHeather2018-03-02
再推
Christine avatarChristine2018-03-05
Irma avatarIrma2018-03-05
Connor avatarConnor2018-03-09
Christine avatarChristine2018-03-12
好多技術只聽過沒時間研究 感謝板大做整理
Sarah avatarSarah2018-03-16
Lauren avatarLauren2018-03-18
我想版大需要自m文XD
Michael avatarMichael2018-03-21
Edwina avatarEdwina2018-03-26
Ingrid avatarIngrid2018-03-29
Irma avatarIrma2018-04-01
感覺ETH發展會比較好
Hamiltion avatarHamiltion2018-04-05
Jack avatarJack2018-04-07
專業文整理
Charlotte avatarCharlotte2018-04-08
謝謝板主專業解說,每次看板主的文章就是在提升自
己的知識層次
Zenobia avatarZenobia2018-04-09
版主威猛
Aaliyah avatarAaliyah2018-04-14
上一次聽到CAP是大二修資料庫的時候xDDD
Edith avatarEdith2018-04-16
如果不是BCH可以改動難度,我大BCH為唯一正統
Frederica avatarFrederica2018-04-20
版主威
James avatarJames2018-04-23
如果BCH能由PoW改成PoS,會更好
Harry avatarHarry2018-04-26
推長知識文
Noah avatarNoah2018-04-30
專業長知識
Vanessa avatarVanessa2018-05-02
推推~~
Tristan Cohan avatarTristan Cohan2018-05-04
詳細解說給推,聊點想法,sharding不算L2, core & EVM都要改
Edwina avatarEdwina2018-05-07
phase2可能要fork才能上,我歸類為L1, 再來 channel routing
Lydia avatarLydia2018-05-08
我也覺得太複雜,所以我都只推簡化版uRaiden, 只給eth 因為
Frederica avatarFrederica2018-05-09
BTC script能力不夠啊, 講到跨國交易, 把貓貓嫩模都在L2處
Audriana avatarAudriana2018-05-12
理掉 主鏈就不會塞啦,POS也有加速效果 只是團隊很少強調,
Edwina avatarEdwina2018-05-13
eth fan最自豪的 現在都還沒加速的超塞主鏈一天處理的交易
Oscar avatarOscar2018-05-17
長知識了
Ophelia avatarOphelia2018-05-21
數超過其他所有幣種包含BTC的總和.
Kristin avatarKristin2018-05-26
推推 感謝解說
Belly avatarBelly2018-05-29
Yedda avatarYedda2018-05-31
所以ripple才是最強的...
Sarah avatarSarah2018-06-03
好強喔
Adele avatarAdele2018-06-06
Ripple並無法達成trustless去中心化共識
而且實際上Ripple的官方具有凍結帳號的權利
Sandy avatarSandy2018-06-08
當然假如你不在意這兩點,Ripple交易速度的確更快
只是這種東西和傳統銀行金流系統並無太大的差別
Dinah avatarDinah2018-06-11
LTC現在就走在如此的路線上?
Leila avatarLeila2018-06-14
推個 這篇好多關鍵字讓人survey
Cara avatarCara2018-06-15
推。graphene 還有什麼關鍵字查?有沒有易讀的中文資
料?
Ivy avatarIvy2018-06-21
這是論文,和閃電網路相比,基本原理簡單非常多
只是數學驗證collision機率對於一般人比較困難
我用白話講就是區塊鏈系統的區塊傳播
Megan avatarMegan2018-06-25
不再包含所有交易,只需要包含這些交易的filter表
所以區塊大小可以極大幅度縮小,達到逼近O(1)
Victoria avatarVictoria2018-06-26
剩下的擴容瓶頸就會主要是交易的通訊瓶寬
Hazel avatarHazel2018-06-28
我一直覺得區塊鏈系統才是簡潔的金流解決方案
Genevieve avatarGenevieve2018-06-28
對於金流系統而言,複雜度太高根本是"大災難"
https://bitcoin.org/bitcoin.pdf
中本聰的比特幣論文也不到十頁而已
Yedda avatarYedda2018-06-30
Elma avatarElma2018-07-01
研究結果指出可以讓區塊傳播小到 "一個封包"
George avatarGeorge2018-07-03
早期的比特幣研究大部分的精力都在區塊鏈系統改進上面
Tom avatarTom2018-07-04
我真的非常賭爛現在的Core竟然"放棄了"區塊鏈繼續改進
Audriana avatarAudriana2018-07-06
直接丟一句區塊鏈不可能改進擴容就算了
Tom avatarTom2018-07-11
大家一起冒著丟錢的風險來用"去中心化"的LN喔
https://lnmainnet.gaben.win/
Regina avatarRegina2018-07-15
覺得好像dna, 區塊組成的長鏈用蜁轉的收束方式可以
大幅減少空間
Selena avatarSelena2018-07-16
其實這個技術不會縮小區塊鏈大小
但可以極大幅度降低擴容後,孤立塊的產生
這樣礦工就更願意把區塊上限調高
Blanche avatarBlanche2018-07-18
只是現在在把每個塊只留能完整還原所有資訊的片段
階段
了改
James avatarJames2018-07-20
其實還有其他分散式的區塊鏈儲存以及UTXO查詢技術
但是Core全當作沒這回事,區塊鏈就是廢,LN就是棒棒棒
Hamiltion avatarHamiltion2018-07-20
一些比較舊的區塊鏈可以產生UTXO後砍掉,並分散儲存
Elizabeth avatarElizabeth2018-07-23
最近Core才剛把零確認交易這個超有用特性幾乎廢掉
David avatarDavid2018-07-24
說啥零確認交易不安全,RBF預設開啟才能避免交易卡死
結果BCH有人懸賞1000美金看有沒有人可雙花零確認交易
到現在也沒看到那些Core專家雙花成功,笑死人
Jacky avatarJacky2018-07-28
LN一定要online這點真的太北七了...
Gilbert avatarGilbert2018-07-30
如果core那麼鳥 為何礦工算力沒有站出來反抗呢? 一直想
不透
Mia avatarMia2018-08-02
話說零確認交易沒有辦法成功做出double spending的原因
是什麼? 我印象中不是實作還是要2確認才算不會被翻盤嗎
Skylar DavisLinda avatarSkylar DavisLinda2018-08-06
礦工本身就唯利是圖,已經做出BCH這個後備方案就好了
Heather avatarHeather2018-08-09
反正挖礦演算法都是一樣的,哪個獲利多就挖哪個
假如BCH的價格是BTC的十分之一,當然算力也是十分之一
零確認交易當然有機會可以double spend
Brianna avatarBrianna2018-08-13
但是你要和夠多算力的礦工配合
不然依照BCH本身的共識規則,你雙花交易根本傳不出去
Yuri avatarYuri2018-08-18
初版的BTC是禁止雙花交易在網路中被轉傳的
結果被Core改掉,說這樣有助於fee market
Queena avatarQueena2018-08-18
現在BCH又把這垃圾功能拿掉,所以根本不怕雙花
Christine avatarChristine2018-08-22
禁止雙花交易在網路中被轉傳
Queena avatarQueena2018-08-24
意思是mempool裡是否允許雙花的交易存在嗎
*不允許
Eden avatarEden2018-08-25
當然不允許,你雙花交易會被視為conflict transaction
不光是進不了mempool,連轉傳出去都沒辦法
不過後來Core加了一個option flag叫做RBF
Megan avatarMegan2018-08-30
讓更高手續費的交易可以取代原來mempool的交易
說這樣有助於fee market,也能避免交易卡在mempool
Rae avatarRae2018-08-31
現在更是直接當作預設值,所以BTC已經沒有安全的
零確認交易了,這項本來中本聰有提到的特性被毀滅
不過Core當然可高興了,這樣LN的交易速度就沒人可比了
Hedy avatarHedy2018-09-05
我知道RBF是為了解決卡交易的情況
Doris avatarDoris2018-09-08
但我也同意板大說的 沒有transaction replacement的話 零確
認交易就會很安全
Charlie avatarCharlie2018-09-09
請問板大認為在disable RBF的情況下 要怎麼避免卡交易的情
況發生呢
Frederica avatarFrederica2018-09-10
是用policy解嗎 例如mempool裡太老的交易優先權會升高
Zanna avatarZanna2018-09-15