• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 自媒體 查看內容
    • 5374
    • 0
    • 分享到

    10分鐘看懂曾飆漲千倍卻暗藏風險的IOTA和它的DAG

    2018-4-17 20:55

    來源: hellobtc

    大白導讀:上周六推送“警報!一大波DAG公鏈正在接近!”,介紹了不用區塊來記錄數據的一類公鏈,在用真金白銀投資這類項目之前,有必要先花十分鐘深入了解。

    本文作者:湯強,橫跨中英文世界的區塊鏈觀察家。



    2017年9月7日,麻省理工學院(MIT)發表公開信:數字貨幣IOTA存在嚴重漏洞,2個月前MIT私信過IOTA團隊,希望他們改代碼。


    但IOTA團隊沒有理會,最終MIT選擇把漏洞公之于眾。這個漏洞究竟是什么?一切,要從IOTA的數據結構DAG說起。


    一、什么是DAG?


    DAG:Directed Acyclic Graph,中文意為“有向無環圖”。


    有向無環圖是一種存儲數據的方式。“有向”指所有數據順著同一方向存儲;“無環”指數據結構間不構成循環。像條毛線織的圍巾,可以一直編下去。

    圖1 DAG 有向無環圖(纏結 Tangle)


    你可以這樣理解:區塊鏈是每個區塊記多筆交易,而DAG是每個區塊存一筆交易,所以它們的本質相同。在IOTA白皮書里,把結扎在一起的交易稱為纏結(Tangle),如圖1。


    你可能會奇怪,這些交易為什么要連線、標箭頭?因為使用者每發起一筆交易,必須驗證之前的兩筆交易。


    這很像讓一個孤兒自己選擇養父母。DAG是孤兒的世界,每筆交易天生是孤兒,但養父母不能隨便亂選,他們必須根正苗紅,否則孤兒自己就不會被下一代選為父母,不被選擇意味著從此消失


    如果一筆交易不被后來的交易所驗證,它就會變成真正的孤兒,從此在賬本里失去合法性。


    纏結圖的本質上是訂在一起的賬本,而交易發起者的驗證就是訂書釘,可他們用什么方式驗證交易?


    答案是我們熟悉的工作量證明:POW


    交易發起者自己選擇兩筆合法交易,花2秒鐘找出一個隨機數,讓“隨機數+信息”的哈希值符合系統要求。


    驗證所需的工作量與前手交易權重成正比,交易權重相當于驗證難度,難度越高驗證時間越長。IOTA中,權重是以3為底的指數增長:3的1次方、3的2次方、3的3次方……被驗證次數越多的交易權重越大。


    所以,如果你擔心驗證完兩筆正確交易卻沒人來驗證你,那這種擔心是多余的,因為驗證新鮮交易更容易,如果驗證靠前的陳舊交易,工作量會指數級地翻上去:本來2秒鐘能驗證完的交易,現在要花2小時,何必?


    另外,你可能會問,DAG下為什么不能只驗證一筆交易,必須是兩筆或兩筆以上?


    因為如果只往前驗證一筆,網絡會被大算力操控。


    算力強者很容易抬高交易權重,拉長尾巴,以堵死后面的驗證通路,讓隨后的誠實交易不得不屈從大算力;可驗太多交易又會耗時過長。


    所以,驗兩筆能兼顧安全和效率。


    于是,發起者一邊提交自己的交易,一邊驗證別人的交易,以此編織著一個去中心化網絡。注意:這個網絡不是纏結圖,纏結圖里的點是交易記錄,而網絡指參與交易的所有節點。


    可是DAG下會不會發生雙重支付呢?


    會。


    二、DAG下如何保證賬本安全?


    假如我轉你價值100萬元的IOTA,你非常高興,確認后把100萬元貨物交給我,但此時我心生歹念。


    我靠算力發起攻擊,用一筆權重更大的交易驗證合法交易之前的交易。

    圖2 大權重攻擊


    只要超過主體誠實的DAG,隨后的交易都會接在我的DAG后面生長,這樣我就賴掉之前的交易,白白從你手里拿走100萬元的貨。


    關鍵問題是,我得匯聚多少算力才能實現雙重支付?


    需要全網34%的算力。


    IOTA團隊說,網絡還沒成熟,所以先找個協管員看場子,這名協管員就是一臺名叫Coordinator的服務器。所有交易是否合法,暫時全由這位協管員拍板,拍板后告訴其他節點,該驗證哪些交易。


    官方說,2018年會撤下協管員,這也意味著,目前IOTA暫時并非一個去中心化的網絡。可如何能確保賬本安全,中心化并非是不可行的方案。


    影響賬本安全的另一個因素是數字簽名,因為攻擊者無法使用他們沒有的私鑰簽出和你一樣的數字簽名,而保障這件事的是哈希算法,它具有一個特征:哈希不同文本能得出不同結果。如果哈希不同文本出現同樣的結果,這種情況稱為“碰撞”。


    MIT報告指出:


    IOTA使用了自己開發的哈希算法curl,但是curl算法的哈希值極易發生碰撞,于是就能偽造數字簽名。


    IOTA的DAG是靠后手保護前手,一旦攻擊者成功偽造數字簽名,后手挑不出偽造者的錯,非法交易就能大搖大擺地通過驗證,這意味著別人用其他私鑰也能撬走你賬戶里的錢。


    現在IOTA有協管員保護,但如果撤下協管員,簽名能否會被仿冒,就完全得寄希望于攻擊者沒有哈希出和你一樣的簽名。


    你可能認為,有協管員的情況下這不會成為一個問題,因為協管員會公正地驗證所有交易,至少它能取消不合法交易,但事情并非這么簡單。


    因為協管員自己也有私鑰,一旦泄露,造成的結果將比服務器電源插座被拔還要嚴重,因為此時持有私鑰者具備改動任意交易的技術可能,這就是集中管賬的風險。


    現在有協管員看家,技術上的確能過濾惡意,可IOTA的最終目標終究是脫離協管員、全網自治,除了面臨偽造數字簽名的問題,還要面臨一道難題:


    34%攻擊。


    防止這種攻擊的一個辦法是招募礦工,但由于IOTA無手續費,所有沒有礦工會響應,與此同時,IOTA還面臨著拒絕服務攻擊的可能,就像不收物業費的小區,靠業主自治很難掃清不法份子,甚至掃不凈地上的落葉。


    包括IOTA團隊在內,暫時沒有人給出解決方案。當然,讓人垂淚的棘手問題還不止這些。


    三、用戶私鑰問題


    本段與DAG無關,但由于采用DAG的加密貨幣不多,而IOTA又是持有范圍較大的幣種,所以寫下這段,僅作安全提示。


    IOTA用戶的私鑰由種子生成,種子長這樣:

    KJGH9YZXCYVYOWTV9YULOVYASDL99YGIAEQWEDFGHNSLNGHJFGHIJPCIYEC9GWOLMFGHGQ99Y9HNMRQASF


    一共81位,看起來很長,但其實只有大寫字母和數字9,人們除了質疑為什么不用小寫字母和其他數字壓縮種子長度之外,還有兩點關鍵的質疑:種子如何憑空產生?種子如何生成私鑰?


    IOTA團隊沒有公開種子和私鑰的生成算法。


    《區塊鏈資產樸素安全課》中提過,比特幣的私鑰是一個隨機數,由256個0或1組成,文末配有轉換工具網址,那就是公開的私鑰生成算法。


    但IOTA的私鑰只能用官網錢包生成,如果私鑰生成算法不公開,用戶就無法驗證眼前的是否是只有1000種可能的偽隨機數私鑰。


    所以,IOTA用戶的私鑰有兩層風險:


    1. 受curl算法的影響,私鑰被冒簽的風險;

    2. 受私鑰生成算法未公開的影響,私鑰被破解的風險。


    如果還有第三層風險,那就是每次劃轉錢后,必須把余額轉至新的地址,否則余額不保。


    這源自于能抵抗量子攻擊的溫特尼茨單次簽名(Winternitz one-time signature)的特性:每簽一次,私鑰就會暴露一半。這讓每個私鑰變成一根一次性筷子,每用一次都會被污染半截。


    不知何時,IOTA才能平息這些質疑。


    結語


    DAG是一種數據存儲結構,從它被發明的30多年來一直都有人使用,本身并沒有問題。但它和區塊鏈的區別在于DAG沒有傳統意義上的共識,每筆交易的可信與否取決于相信這筆交易的人數。


    所以采用DAG技術的核心問題在于如何保護全網達成的一致?


    IOTA使用了中心化方案:先協管員看護,以后慢慢放開。同樣采用DAG的另一種加密貨幣Byteball就很淳樸,12名礦工通過收交易手續費的方式保護系統安全。


    DAG曾經作為比特幣擴容的方案,但最終沒被采用,因為基于DAG的分布式網絡在保護共識方面很難比區塊更有效。


    作為一種創新的存儲方式,DAG和采用區塊記錄交易的方式相比,盡管很有趣,但它暫時沒有明顯的優勢,這就是為什么很多區塊鏈項目沒有選擇DAG的原因。


    IOTA現在還沒有解開自己的纏結,但作為旁觀者的我們,有一點值得我們警醒。


    加密數字貨幣的技術復雜度遠超我們想象,但并非不可理解,只要我們投入足夠的時間,一定可以理清思路,理性決策。


    最受傷的人,恰恰是在局勢未明朗時,僅憑日漲一寸的K線圖就匆忙入場者,他們生怕承受錯過的痛苦,甚至會有人因為纏結圖和物聯網長得像而看好DAG在物聯網領域的發揮。


    未經深入思考的投資者很可憐,捧著一摞血汗錢走進天羅地網,他們哪里會想到,編織這張網的可能不是別人的惡意,而恰恰是自己的認知偏差。


    千萬別眼紅那些跑步進場、月賺10倍的朋友,他們可能有驚人的浮盈,但由于跑步進場這個動作本身就是未經深入思考的結果,于是,在邁出腿的一瞬間,就已經注定了大概率的結局。


    投資大神喬伊·格林布雷(Joel Greenblatt)有個著名的類比:


    買了股票但不知道買了什么,就如同手持火把穿過一個炸藥工廠,你可能活下來,但你依然是一個傻子。


    所以,拿出你的儲備知識,啟動你的邏輯鏈條,把思路里的纏結整理成區塊,烘干認知偏差,時刻讓自己的投資邏輯保持干爽。


    主要參考資料 |

    1. Serguei Popov*:The Tangle(IOTA官網白皮書v1.3)

    2. MIT:Cryptographic vulnerabilities in IOTA 2017-9-7

    3. Ivan:https://youtu.be/QsdZVnq4G60

    4. Palmer:https://youtu.be/LtWUJtnQbKs

    5. Richard Heart:https://youtu.be/w8_1JFE_9dI


    ——End——

    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频