Re: [問題] 完全去中心化是否真的必要?

作者: DarkerDuck (達克鴨)   2018-02-26 16:17:00
其實越研究最近對於區塊鏈效率的額外改進方案,越會覺得中本聰的區塊鏈真的是神解
對於全球性金流系統而言,最重要的是可用性和共識安全性。
比特幣將可用性的優點體現在不分時間地點、都可以和任何人有比特幣錢包進行交易
在共識安全性上,因為有全網共識,避免了雙花和撤銷交易的可能性,甚至比信用卡安全。
而依照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不一樣,可不像一般通訊封包丟了就算了。
每個路徑都還有收支平衡、金流寬度、交易狀態等問題,挖靠,根本大爆炸。
更不要說收款也必須在線這極大幅度影響可用性的問題。
要轉大額款項更是不可能的任務。
可以想見的是閃電網路它的可用性必定遠遠不如於原本的區塊鏈金流系統。
那麼假如我們把區塊鏈系統切割成一個一個的子系統,是否就可以擴容了呢??
那這其實就是sharding和plasma的目標。
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或是第二層的方案當然也可以同步研發,對於高頻交易或特定應用很有用。
但直接把區塊鏈系統直接蓋掉反而弊大於利。
作者: allen139443 ( ∩ д ∩ )   2018-02-26 16:34:00
首推
作者: tcn1john (momo)   2018-02-26 16:37:00
再推
作者: freshego (哈比控)   2018-02-26 16:38:00
作者: poorviv (na)   2018-02-26 16:46:00
作者: Fice (Fice)   2018-02-26 16:52:00
作者: kugwa (kugwa)   2018-02-26 16:56:00
好多技術只聽過沒時間研究 感謝板大做整理
作者: ahaha777 (出門左轉)   2018-02-26 16:59:00
作者: ProtectChu56 (Eric P. Chu)   2018-02-26 17:10:00
我想版大需要自m文XD
作者: brain1472000 (Danny Wei)   2018-02-26 17:28:00
作者: ssnopra (provia不要開口~不要回 )   2018-02-26 17:28:00
作者: ketao (ketao)   2018-02-26 17:40:00
作者: EthereumPTT (以太批踢踢)   2018-02-26 17:41:00
感覺ETH發展會比較好
作者: unojazz (Uno是一的意思)   2018-02-26 18:19:00
作者: CCben (new man)   2018-02-26 18:27:00
專業文整理
作者: camellala (茸硬抬名器)   2018-02-26 18:43:00
謝謝板主專業解說,每次看板主的文章就是在提升自己的知識層次
作者: berry383838 (BAN-DON)   2018-02-26 19:06:00
版主威猛
作者: sss910278 (daniel88)   2018-02-26 19:09:00
上一次聽到CAP是大二修資料庫的時候xDDD
作者: rmp4rmp4bear (天然呆)   2018-02-26 19:36:00
如果不是BCH可以改動難度,我大BCH為唯一正統
作者: davidchen329 (懶豬爵士)   2018-02-26 20:12:00
版主威
作者: camellala (茸硬抬名器)   2018-02-26 20:18:00
如果BCH能由PoW改成PoS,會更好
作者: jackshyu (老闆一杯檸檬汁XD)   2018-02-26 20:35:00
推長知識文
作者: tsl3333 (我們都寂寞)   2018-02-26 20:40:00
專業長知識
作者: evilplayer (孤伶刀 八荒無盡)   2018-02-26 23:04:00
推推~~
作者: timwu (Tim Wu)   2018-02-26 23:17:00
詳細解說給推,聊點想法,sharding不算L2, core & EVM都要改phase2可能要fork才能上,我歸類為L1, 再來 channel routing我也覺得太複雜,所以我都只推簡化版uRaiden, 只給eth 因為BTC script能力不夠啊, 講到跨國交易, 把貓貓嫩模都在L2處理掉 主鏈就不會塞啦,POS也有加速效果 只是團隊很少強調,eth fan最自豪的 現在都還沒加速的超塞主鏈一天處理的交易
作者: martin77 (martin77)   2018-02-26 23:28:00
長知識了
作者: timwu (Tim Wu)   2018-02-26 23:28:00
數超過其他所有幣種包含BTC的總和.
作者: treck (荒野中的一匹狼)   2018-02-26 23:34:00
推推 感謝解說
作者: coldcolour (Ghost的呢喃)   2018-02-27 01:51:00
作者: sdtty (龍井裘德洛)   2018-02-27 07:40:00
所以ripple才是最強的...
作者: wukeepo (Keepostark)   2018-02-27 08:17:00
好強喔
作者: DarkerDuck (達克鴨)   2018-02-27 11:07:00
Ripple並無法達成trustless去中心化共識而且實際上Ripple的官方具有凍結帳號的權利當然假如你不在意這兩點,Ripple交易速度的確更快只是這種東西和傳統銀行金流系統並無太大的差別
作者: steven01942 (蕭邦)   2018-02-27 13:43:00
LTC現在就走在如此的路線上?
作者: goldflower (金色小黃花)   2018-02-27 13:54:00
推個 這篇好多關鍵字讓人survey
作者: john371911 (醬廖)   2018-02-28 00:05:00
推。graphene 還有什麼關鍵字查?有沒有易讀的中文資料?
作者: DarkerDuck (達克鴨)   2018-02-28 00:19:00
https://people.cs.umass.edu/~gbiss/graphene.pdf這是論文,和閃電網路相比,基本原理簡單非常多只是數學驗證collision機率對於一般人比較困難我用白話講就是區塊鏈系統的區塊傳播不再包含所有交易,只需要包含這些交易的filter表所以區塊大小可以極大幅度縮小,達到逼近O(1)剩下的擴容瓶頸就會主要是交易的通訊瓶寬我一直覺得區塊鏈系統才是簡潔的金流解決方案對於金流系統而言,複雜度太高根本是"大災難"https://bitcoin.org/bitcoin.pdf中本聰的比特幣論文也不到十頁而已http://chainb.com/?P=Cont&id=6550 中文新聞研究結果指出可以讓區塊小到 "一個封包"
作者: rmp4rmp4bear (天然呆)   2018-02-28 01:14:00
覺得好像dna, 區塊組成的長鏈用蜁轉的收束方式可以大幅減少空間
作者: DarkerDuck (達克鴨)   2018-02-28 01:17:00
其實這個技術不會縮小區塊鏈大小但可以極大幅度降低擴容後,孤立塊的產生這樣礦工就更願意把區塊上限調高
作者: rmp4rmp4bear (天然呆)   2018-02-28 01:18:00
只是現在在把每個塊只留能完整還原所有資訊的片段階段了改
作者: DarkerDuck (達克鴨)   2018-02-28 01:19:00
其實還有其他分散式的區塊鏈儲存以及UTXO查詢技術但是Core全當作沒這回事,區塊鏈就是廢,LN就是棒棒棒一些比較舊的區塊鏈可以產生UTXO後砍掉,並分散儲存最近Core才剛把零確認交易這個超有用特性幾乎廢掉說啥零確認交易不安全,RBF預設開啟才能避免交易卡死結果BCH有人懸賞1000美金看有沒有人可雙花零確認交易到現在也沒看到那些Core專家雙花成功,笑死人
作者: a2935373 (...)   2018-02-28 02:03:00
LN一定要online這點真的太北七了...
作者: sdtty (龍井裘德洛)   2018-02-28 17:04:00
如果core那麼鳥 為何礦工算力沒有站出來反抗呢? 一直想不透
作者: qxxrbull (XPEC)   2018-02-28 17:08:00
話說零確認交易沒有辦法成功做出double spending的原因是什麼? 我印象中不是實作還是要2確認才算不會被翻盤嗎
作者: DarkerDuck (達克鴨)   2018-02-28 17:29:00
礦工本身就唯利是圖,已經做出BCH這個後備方案就好了反正挖礦演算法都是一樣的,哪個獲利多就挖哪個假如BCH的價格是BTC的十分之一,當然算力也是十分之一零確認交易當然有機會可以double spend但是你要和夠多算力的礦工配合不然依照BCH本身的共識規則,你雙花交易根本傳不出去初版的BTC是禁止雙花交易在網路中被轉傳的結果被Core改掉,說這樣有助於fee market現在BCH又把這垃圾功能拿掉,所以根本不怕雙花
作者: kugwa (kugwa)   2018-02-28 17:35:00
禁止雙花交易在網路中被轉傳意思是mempool裡是否允許雙花的交易存在嗎*不允許
作者: DarkerDuck (達克鴨)   2018-02-28 17:38:00
當然不允許,你雙花交易會被視為conflict transaction不光是進不了mempool,連轉傳出去都沒辦法不過後來Core加了一個option flag叫做RBF讓更高手續費的交易可以取代原來mempool的交易說這樣有助於fee market,也能避免交易卡在mempool現在更是直接當作預設值,所以BTC已經沒有安全的零確認交易了,這項本來中本聰有提到的特性被毀滅不過Core當然可高興了,這樣LN的交易速度就沒人可比了
作者: kugwa (kugwa)   2018-02-28 22:10:00
我知道RBF是為了解決卡交易的情況但我也同意板大說的 沒有transaction replacement的話 零確認交易就會很安全請問板大認為在disable RBF的情況下 要怎麼避免卡交易的情況發生呢是用policy解嗎 例如mempool裡太老的交易優先權會升高

Links booklink

Contact Us: admin [ a t ] ucptt.com