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

看板DigiCurrency (數位貨幣)作者 (達克鴨)時間6年前 (2018/02/26 16:17), 5年前編輯推噓40(40069)
留言109則, 36人參與, 6年前最新討論串4/6 (看更多)
其實越研究最近對於區塊鏈效率的額外改進方案,越會覺得中本聰的區塊鏈真的是神解 對於全球性金流系統而言,最重要的是可用性共識安全性。 比特幣將可用性的優點體現在不分時間地點、都可以和任何人有比特幣錢包進行交易 在共識安全性上,因為有全網共識,避免了雙花和撤銷交易的可能性,甚至比信用卡安全。 而依照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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.237.120.143 ※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1519633022.A.2CF.html ※ 編輯: DarkerDuck (36.237.120.143), 02/26/2018 16:33:24

02/26 16:34, 6年前 , 1F
首推
02/26 16:34, 1F

02/26 16:37, 6年前 , 2F
再推
02/26 16:37, 2F

02/26 16:38, 6年前 , 3F
02/26 16:38, 3F

02/26 16:46, 6年前 , 4F
02/26 16:46, 4F

02/26 16:52, 6年前 , 5F
02/26 16:52, 5F

02/26 16:56, 6年前 , 6F
好多技術只聽過沒時間研究 感謝板大做整理
02/26 16:56, 6F

02/26 16:59, 6年前 , 7F
02/26 16:59, 7F

02/26 17:10, 6年前 , 8F
我想版大需要自m文XD
02/26 17:10, 8F

02/26 17:28, 6年前 , 9F
02/26 17:28, 9F

02/26 17:28, 6年前 , 10F
02/26 17:28, 10F

02/26 17:40, 6年前 , 11F
02/26 17:40, 11F

02/26 17:41, 6年前 , 12F
感覺ETH發展會比較好
02/26 17:41, 12F

02/26 18:19, 6年前 , 13F
02/26 18:19, 13F

02/26 18:27, 6年前 , 14F
專業文整理
02/26 18:27, 14F
※ 編輯: DarkerDuck (36.237.120.143), 02/26/2018 18:35:50

02/26 18:43, 6年前 , 15F
謝謝板主專業解說,每次看板主的文章就是在提升自
02/26 18:43, 15F

02/26 18:43, 6年前 , 16F
己的知識層次
02/26 18:43, 16F

02/26 19:06, 6年前 , 17F
版主威猛
02/26 19:06, 17F

02/26 19:09, 6年前 , 18F
上一次聽到CAP是大二修資料庫的時候xDDD
02/26 19:09, 18F

02/26 19:36, 6年前 , 19F
如果不是BCH可以改動難度,我大BCH為唯一正統
02/26 19:36, 19F

02/26 20:12, 6年前 , 20F
版主威
02/26 20:12, 20F

02/26 20:18, 6年前 , 21F
如果BCH能由PoW改成PoS,會更好
02/26 20:18, 21F

02/26 20:35, 6年前 , 22F
推長知識文
02/26 20:35, 22F

02/26 20:40, 6年前 , 23F
專業長知識
02/26 20:40, 23F

02/26 23:04, 6年前 , 24F
推推~~
02/26 23:04, 24F

02/26 23:17, 6年前 , 25F
詳細解說給推,聊點想法,sharding不算L2, core & EVM都要改
02/26 23:17, 25F

02/26 23:18, 6年前 , 26F
phase2可能要fork才能上,我歸類為L1, 再來 channel routing
02/26 23:18, 26F

02/26 23:21, 6年前 , 27F
我也覺得太複雜,所以我都只推簡化版uRaiden, 只給eth 因為
02/26 23:21, 27F

02/26 23:24, 6年前 , 28F
BTC script能力不夠啊, 講到跨國交易, 把貓貓嫩模都在L2處
02/26 23:24, 28F

02/26 23:26, 6年前 , 29F
理掉 主鏈就不會塞啦,POS也有加速效果 只是團隊很少強調,
02/26 23:26, 29F

02/26 23:27, 6年前 , 30F
eth fan最自豪的 現在都還沒加速的超塞主鏈一天處理的交易
02/26 23:27, 30F

02/26 23:28, 6年前 , 31F
長知識了
02/26 23:28, 31F

02/26 23:28, 6年前 , 32F
數超過其他所有幣種包含BTC的總和.
02/26 23:28, 32F

02/26 23:34, 6年前 , 33F
推推 感謝解說
02/26 23:34, 33F

02/27 01:51, 6年前 , 34F
02/27 01:51, 34F

, , 35F
農場連結

, , 36F
農場連結

02/27 07:40, 6年前 , 37F
所以ripple才是最強的...
02/27 07:40, 37F

02/27 08:17, 6年前 , 38F
好強喔
02/27 08:17, 38F
還有 38 則推文
02/28 01:29, 6年前 , 77F
說啥零確認交易不安全,RBF預設開啟才能避免交易卡死
02/28 01:29, 77F

02/28 01:29, 6年前 , 78F
結果BCH有人懸賞1000美金看有沒有人可雙花零確認交易
02/28 01:29, 78F

02/28 01:29, 6年前 , 79F
到現在也沒看到那些Core專家雙花成功,笑死人
02/28 01:29, 79F

02/28 02:03, 6年前 , 80F
LN一定要online這點真的太北七了...
02/28 02:03, 80F
其實本來的BTC離線交易的能力是很強的: 發送端假如沒有聯網,然仍可以透過自己的私鑰簽章交易, 並且透過藍芽、NFC甚至是QRcode傳輸給接收端, 接收端再把這個交易廣播出去即可。 或是接收端沒有聯網,只丟個QRcode,發送端一樣簽章交易聯網送給礦工即可。

02/28 17:04, 6年前 , 81F
如果core那麼鳥 為何礦工算力沒有站出來反抗呢? 一直想
02/28 17:04, 81F

02/28 17:04, 6年前 , 82F
不透
02/28 17:04, 82F

02/28 17:08, 6年前 , 83F
話說零確認交易沒有辦法成功做出double spending的原因
02/28 17:08, 83F

02/28 17:08, 6年前 , 84F
是什麼? 我印象中不是實作還是要2確認才算不會被翻盤嗎
02/28 17:08, 84F
交易所的實作大部分都是兩確認以上,因為交易所幾乎都是大額交易。 有錢能夠使礦工推磨,那就有可能如後所述的買通礦工作雙花交易。 所以交易所幾乎都不願意接受零確認交易。 不過也是有例外啦,早期的shapeshift的確會接受小金額的零確認幣幣交易。

02/28 17:29, 6年前 , 85F
礦工本身就唯利是圖,已經做出BCH這個後備方案就好了
02/28 17:29, 85F

02/28 17:30, 6年前 , 86F
反正挖礦演算法都是一樣的,哪個獲利多就挖哪個
02/28 17:30, 86F

02/28 17:30, 6年前 , 87F
假如BCH的價格是BTC的十分之一,當然算力也是十分之一
02/28 17:30, 87F

02/28 17:30, 6年前 , 88F
零確認交易當然有機會可以double spend
02/28 17:30, 88F

02/28 17:31, 6年前 , 89F
但是你要和夠多算力的礦工配合
02/28 17:31, 89F

02/28 17:31, 6年前 , 90F
不然依照BCH本身的共識規則,你雙花交易根本傳不出去
02/28 17:31, 90F

02/28 17:32, 6年前 , 91F
初版的BTC是禁止雙花交易在網路中被轉傳的
02/28 17:32, 91F

02/28 17:32, 6年前 , 92F
結果被Core改掉,說這樣有助於fee market
02/28 17:32, 92F

02/28 17:33, 6年前 , 93F
現在BCH又把這垃圾功能拿掉,所以根本不怕雙花
02/28 17:33, 93F

02/28 17:35, 6年前 , 94F
禁止雙花交易在網路中被轉傳
02/28 17:35, 94F

02/28 17:36, 6年前 , 95F
意思是mempool裡是否允許雙花的交易存在嗎
02/28 17:36, 95F

02/28 17:36, 6年前 , 96F
*不允許
02/28 17:36, 96F

02/28 17:38, 6年前 , 97F
當然不允許,你雙花交易會被視為conflict transaction
02/28 17:38, 97F

02/28 17:38, 6年前 , 98F
不光是進不了mempool,連轉傳出去都沒辦法
02/28 17:38, 98F

02/28 17:38, 6年前 , 99F
不過後來Core加了一個option flag叫做RBF
02/28 17:38, 99F

02/28 17:39, 6年前 , 100F
讓更高手續費的交易可以取代原來mempool的交易
02/28 17:39, 100F

02/28 17:39, 6年前 , 101F
說這樣有助於fee market,也能避免交易卡在mempool
02/28 17:39, 101F

02/28 17:40, 6年前 , 102F
現在更是直接當作預設值,所以BTC已經沒有安全的
02/28 17:40, 102F

02/28 17:40, 6年前 , 103F
零確認交易了,這項本來中本聰有提到的特性被毀滅
02/28 17:40, 103F

02/28 17:40, 6年前 , 104F
不過Core當然可高興了,這樣LN的交易速度就沒人可比了
02/28 17:40, 104F
我直接舉個BCH要如何雙花零確認交易的例子好了, 本來初版BTC的規則就是進到mempool的交易不能被取代, 所以接收端要安全地接受零確認交易只需要多連幾個礦工節點, 大約同時連十幾個礦池節點就足夠達成90%算力保護。 https://bitcointalk.org/index.php?topic=423.0 因此要雙花一筆零確認交易必須偷偷和擁有大算力礦工配合,或是根本就是內鬼。 (這也的確有發生過,雙花SatoshiDice,但很快就被抓包,礦池就把那個內鬼員工開除) 首先把兩個同私鑰的錢包準備好,然後要和一個有高算力的礦池配合,譬如擁有30%的算力 這個礦池同樣表面上一樣不會轉傳雙花交易,但卻會把雙花交易放到mempool裡等確認。 既然擁有30%算力,就代表有30%的機率可以成功雙花,假如是損耗很少的交易 譬如是勝率極高版本的SatoshiDice,那就有利可圖。 等到確認後,整個礦工網路就會發現被婊了,怎麼被確認的交易不是mempool裡的呢?? 其實這很好抓,的確也有發生過,但是你要和礦工配合,而且也很容易被抓包。 但是當然還是有很多人認為不夠安全,礦池真要這樣搞裝死你也無法可施。 所以也有改進方案提出。譬如雙花警告系統,或是weak block。 不過以小額商品交易而言,這風險小到根本可以忽略,絕大部分雙花嘗試都是浪費錢而已

02/28 22:10, 6年前 , 105F
我知道RBF是為了解決卡交易的情況
02/28 22:10, 105F

02/28 22:11, 6年前 , 106F
但我也同意板大說的 沒有transaction replacement的話 零確
02/28 22:11, 106F

02/28 22:11, 6年前 , 107F
認交易就會很安全
02/28 22:11, 107F

02/28 22:15, 6年前 , 108F
請問板大認為在disable RBF的情況下 要怎麼避免卡交易的情
02/28 22:15, 108F

02/28 22:15, 6年前 , 109F
況發生呢
02/28 22:15, 109F

02/28 22:17, 6年前 , 110F
是用policy解嗎 例如mempool裡太老的交易優先權會升高
02/28 22:17, 110F
最簡單的方式就是讓mempool的timeout時間變短,我覺得6小時就夠了。 BTC歷史上並沒有發生超過六小時仍未有區塊產生的情形。 而不是72小時或甚至是兩個禮拜,那實在會讓交易卡太久。 但也不用急著踢出mempool,而是標記為timeout,讓使用者可以用更高手續費交易去取代 這樣仍然是幾乎不會影響到零確認交易, 因為零確認交易的policy本來就只會去接受手續費高到可以在下一個區塊進去的交易。 而比特幣本來就沒有所謂的fee market去搶著進區塊這種想法。 若要防止spam的話直接把relay fee調高即可。 讓mempool的大小膨脹到區塊大小的數百倍根本就是亂搞。 而區塊大小限制應該是要遠大於一般交易需求的。 在這種狀態下,零確認的安全性甚至超越閃電網路。 ※ 編輯: DarkerDuck (61.227.200.140), 03/01/2018 03:39:45

03/01 14:08, 6年前 , 111F
03/01 14:08, 111F
※ 編輯: DarkerDuck (61.227.200.140), 03/01/2018 14:30:06 ※ 編輯: DarkerDuck (118.171.109.20), 03/29/2018 11:43:56 ※ 編輯: DarkerDuck (36.237.86.94), 05/04/2019 04:29:36
文章代碼(AID): #1Qay9-BF (DigiCurrency)
文章代碼(AID): #1Qay9-BF (DigiCurrency)