
Soteria 主題分享:
Ming Guo | DAG的前世今生(一)
https://bihu.com/article/1145448479
Q1. dag目的是啥?不能順藤摸瓜,有尾無頭加密備份?
A: 不同類型的DAG目的也不相同,但是共通之處是為了連接到更多的節點,無論這個節點是交易還是區塊(錢包或礦工),因為分佈式網路的一個最基本特點就是節點需要充分連接才能有助於達成共識。
另外,DAG是“有向無環圖”,所以是“有頭有尾”的,頭就是“創世節點”,尾則是動態變化的。
區塊鏈數據是“不加密”的,除非是匿名區塊鏈;但是裡麵包含有數字簽名的所謂Merkel Tree.
Q2. “中本聰共識”跟“拜占庭容錯共識”最大差異是什麼?
A: 我覺得“中本聰共識”跟“拜占庭容錯共識”最大差異是,中本聰共識保證的是“概率安全性”,而不是“拜占庭容錯共識”的那種”定域安全性“。這就使得”中本聰共識“的網絡可擴展性(注意不是性能可擴展性)遠遠好於”拜占庭容錯共識“網路。中本聰共識可以有無限個節點的擴展性網絡,而拜占庭共識網絡的節點通常比較有限,在幾十個或幾百個這個量級,據說谷歌可以達到上千個。
Q3. DAG 和主鏈的主要優勢是什麼?
A: 如果你問的是Soteria DAG 這種blockDAG 的話,相比比特幣拋棄大部分挖出的區塊,只留下最長主鏈的算法,Soteria DAG 會把所有合法的區塊都寫進最後的區塊鏈裡,這就是我們說的“包容性”,它的好處是,不浪費礦工的工作和能量,長遠來看有助於防止算力集中等。
Q4. 普通的blockchain的block也是順序出呀, Block是算好之後再接上去的吧?
A: 完全正確,正是因為這點,很多側鏈的塊都不能鏈接上了,最終是被拋棄了,以保證更重要的安全和順序。 blockDAG就是更多的包容了並發的區塊。所以在保證安全的情況下,提高了整體系統性能。
Q5.BlockDAG 還需要POW嗎?還是中本聰那套POW?
blockDAG同樣需要POW.. 我們會在下面幾次的分享中細講我們的POW.. 和中本聰的不同。
Q6: DAG有哪些潛在需要改進的地方?
A: DAG的不同的寬度(k)和網絡速度還有節點處理速度有很大關係,就是同樣的算法,比如Phantom or Greedy Phantom,都還有很多可以調整的空間,我們寫了很多開發者工具,希望大家共同測試找到一個目前網絡和系統環節最合適的方案。
Q7. 如何看待未來PoW、PoS機制下對應的加密經濟市場規模佔比?
A: 我其實不知道PoW對PoS的比例,我比較相信PoW,因為畢竟那個是現在10年battle tested唯一的成功範例。 PoS還需要時間考驗。而且Libra出來以後,很多PoS的項目面臨更大的挑戰了。
Q8. 劉shu: blockdag是怎麼防51%攻擊,防雙花的呢?
A: Ming Guo: blockDAG 是中本聰共識,所以,防51%攻擊的思路和比特幣網絡是一致的,就是需要防止常見的算力攻擊的手段,比如selfish mining等;實際上,由於比特幣的最長鏈勝出策略,實際情況是有很多條鏈在挖,所以勝出的最長鏈通常不需要51%算力就可以勝出其他的“次長鏈”,比如37%~40%,那麼blockDAG由於容納了所有的合法“次長鏈”,所以對抗這種攻擊blockDAG比比特幣更有效。
Q9. 劉shu: 什麼叫合法的次長鏈?就是出現了分叉的區塊也是可以接受的?
A: Ming Guo: 合法的“次長鏈”就是說大家都在挖自己的“私鏈”,然後一起公佈,那麼最長的那個勝出。
劉shu: 那還是沒能解決51攻擊和雙花的問題呀!依舊是最長鏈。
Ming Guo: 我剛才說的這些都是比特幣的算力攻擊的情況。
劉shu: 哦哦哦,那blockdag是怎麼解決呢?
Ming Guo: blockDAG 隨時在給這些“分叉”的區塊“稱重”,我們叫”染色“,拓撲排序,所以可以很高效地解決這個問題. 我重複強調一下,51%攻擊本身不是一個要解決的問題,這就是中本聰共識的安全“閥門”,失守這個閥門,就會失去鏈的安全性。
劉shu: 同意51%攻擊本身不是bug, 但是會對普通投資者和交易所等帶來經濟損失。如果再block a裡的一筆交易轉到M賬戶,在分叉的block a裡同樣一筆交易轉到N賬戶,那怎麼解決?
Ming Guo: 實際情況是,由於最長鏈勝出,selfish mining, 很多算力攻擊根本不需要51%算力就能成功,這是可以優化的,blockDAG 就是針對這種攻擊的一個優化算法結構, 雙花問題用排序解決,排在前面的勝出。
劉shu: 分叉的這些區塊到底是承認,還是不承認?承認的話怎麼記錄區塊A和區塊A'?
Ming Guo這些問題都涉及到算法的細節,下次分享(下週二)我們會更深入的分享Soteria DAG 的算法,這些問題就容易明白了。根據Soteria DAG 的算法,分叉的區塊都承認,所以叫“包容性”出塊,我們給所有分叉的區塊“染色”,然後排序,染成“藍色”的是“合法”區塊,排在前面,染成“紅色”的是“可疑”區塊,排在後面,在一定情況下(比如很多代以前的)會被丟棄。
所以來聽我們下週二8月13日更深入的Soteria DAG 技術分享吧!
劉shu: 非常期待。
相關鏈接相關鏈接
(全文完)
(全文完)
(全文完)