**:
可能因為iota和byteball的原因,一提到dag,很多人就會擔心dag可能有中心化的問題。包括iota依賴validator節點,byteball依賴witness節點。這篇文章嘗試為iota和byteball正名,更重要的,介紹乙個讓我很興奮的東西,hashgraph。
什麼是區塊鏈
的共識談到
區塊鏈,共識是個繞不開的話題。到底共識在解決什麼問題呢?
使用者a在銀行賬戶裡有100塊,這100塊a只能使用一次,在a轉給b 100塊後就沒辦法再給c轉100塊。這看起來是個再自然不過的邏輯,實際上依賴了銀行這個**資料庫在幫你記賬,銀行在維護所有交易的順序,銀行在維護所有參與者的共識。
而在區塊鏈
中,沒有**資料庫來統一記賬,a轉給b 100塊的同時也跟c轉100塊,如果沒有全域性認可的交易順序,b跟c有可能都以為自己收到了來自a的轉賬交易,就有可能造成雙花(double spend)問題。所以共識機制的作用,就是維護乙個大家都認可的交易順序。
而中本聰在位元幣網路中設計了pow(proof of work)工作量證明機制,礦工通過競爭乙個時間段內的交易打包權利,獲勝的礦工根據手續費高低挑選這個時間段內發生的交易的交易順序,並且把這些交易打包到乙個區塊中,區塊跟區塊之間鏈結完成這個網路的交易時間順序,完成位元幣網路的共識。
不管是pow、pos還是dpos,這些共識演算法通過競爭獲得產生區塊的方法確實解決了共識問題,卻不能稱得上優雅,每乙個區塊的形成過程似乎都是在把大部分交易拒之門外,留下一些滿足礦工口味的交易打包到區塊中。
基於區塊的共識有哪些問題
不夠快礦工之間通過競爭一段時間的交易打包權獲得激勵,每筆交易被確認,首先需要足夠幸運或者花足夠多手續費才有可能被礦工選中。交易即使被礦工選中,還是需要等待乙個出塊時間。在付出足夠多手續費之後,位元幣要十分鐘才可以被打包到區塊,
以太坊也要十幾秒才被得到確認。不管是位元幣還是
以太坊,效能上講都離大規模商用有很遠距離,完全不能滿足類似visa的使用場景。
不公平礦工到底在扮演什麼樣的角色?中本聰***中,通過經濟模型刺激,礦工為了獲得coinbase激勵和交易手續費,會拼命破解算力難題不會作惡。然而事實上礦工已經在利用自己的出塊權,一些礦工組成了聯盟,收「交易加速費」,把錢直接交給聯盟,這筆交易就可以快速獲得確認。這還算說的過去,反正普通使用者要麼提高手續費,要麼直接用錢賄賂礦工。更嚴重的例子,在一些吸引眼球的ico專案火爆的募集資金過程中,某些礦場會優先確認自己的交易,即使普通參與者設定的手續費更高,網速更快,礦工壓根無視你的交易,當然與投資機會無緣。最終,優質ico專案居然都被礦工搶走。礦工,寧有種乎?
dag是不是為了效能犧牲了安全
之前文章提到過,dag跟
區塊鏈的結合,從開始出現就是為了解決
區塊鏈的效能問題,從結合block和dag做側鏈思路,到摒棄block概念的dagcoin,再到已經取得一定成功的iota和bytebal。不少人在質疑這些dag應用的安全性,是不是還滿足去中心化的的共識。包括iota是不是過多依賴還沒開源的validator,byteball的witness節點有沒有作惡空間。
這裡推薦看一下byteball創始人tony在乙個bar裡的訪談, 。我們發現在以區塊組織交易結構的共識中,打包交易的礦工是擁有相對很大的操作空間的,礦工可以選擇哪些交易進入區塊,哪些交易不被處理,甚至可以只**滿足自己利益的交易,因為在乙個很長的出塊時間裡,礦工有足夠空間從幾萬幣交易中選擇自己看中的交易來組合打包,因為只要自己獲得了出塊權利,這個時間段的交易哪些被確認就是自己說了算。而在byteball的witness節點中,witness節點能做的事情很有限,收到一筆交易後,能做的只是記錄交易的時間戳,因為沒有出塊時間留出來的時間空擋,需要馬上處理下一筆交易。所以byteball創始人一直強調不要把witness跟礦工混淆,witness扮演的更多的是乙個checkpoint的角色,只是幫系統記錄交易發生的先後順序,沒有留出作惡的空間。
更進一步的,為了讓見證人節點更加安全去中心化,也有不少團隊提出了自己的方案,包括信源鏈考慮見證人節點之間通過挖礦保證安全,萬物鏈itc提出在見證人節點之間通過pbft公式保證見證人節點的安全。
hashgraph,讓dag至少跟位元幣一樣安全
如果還是不能打消對dag的疑慮,hashgraph至少讓dag跟位元幣一樣安全,而且更加公平。
hashgraph是swirds公司抱有專利的一種分布式賬本共識,也沒有區塊概念,交易跟交易直接組成dag。目前swirds公司沒有做關於ico的打算,目前更多在以技術服務商的身份在**鏈和物聯網方向做應用落地。swirds cto leemon baird是個非常有魅力的演講者,推薦leemon在hbs的演講,
效能角度,目前hashgraph共識已經滿足了幾十萬的併發,效能瓶頸已經不是協議本身,而是到了網路io層。
安全角度,hashgraph的數學上可以證明滿足非同步拜占庭容錯,至少跟位元幣一樣安全。
公平角度,沒有礦工這種超級權利的角色存在。
leemon baird有提到,hashgraph的共識也很適合構建公有鏈。關於hashgraph共識的詳細內容,可以關注作者後續文章。
寫在文末
hashgraph的出現,證明dag在安全性上已經不需擔心,至少跟位元幣一樣安全,而dag的效能更是卓越。基於區塊的
區塊鏈結構只是分布式共識協議實現的第一次嘗試,新的優秀的共識協議會繼續出現,而dag,就是乙個非常值得嘗試的方向。
justburning
gluPerspective的牛逼解釋
gluperspective gldouble fovy,gldouble aspect,gldouble znear,gldouble zfar 首先得設定gluperspective,來看看它的引數都表示什麼意思 fovy,這個最難理解,我的理解是,眼睛睜開的角度,即,視角的大小,如果設定為0,...
Undo和Redo以及牛逼的MVCC
前段時間看了下資料庫的基礎知識,稍微整理一下。redo,顧名思義就,重做。以恢復操作為目的,重現操作。redo記錄transaction logs,分為online和archived。比如,機器停電,那麼在重起之後需要online redo logs去恢復系統到失敗點。比如,磁碟壞了,需要用arch...
牛逼的 彈出層 layer !!!
功能強大,實用,操作方便,文件齊全。常用功能 doctype html html head meta charset utf 8 title layer 更懂你的web彈窗解決方案 title script src script script src layer layer.js script sc...