參照資料 https://blog.iota.org/the-tangle-an-illustrated-introduction-4d5eae6fe8d4/ https://www.sciencedirect.com/science/article/pii/S0167739X19329048/pdfft?md5=d1a1a54c24930be1dd50b4b6d24e3b67&pid=1-s2.0-S0167739X19329048-main.pdf ### IOTA ### IOTA 是一種加密貨幣和分佈式帳本技術(DLT)平台,旨在實現物聯網(IoT)上的機器之間的安全通訊和支付。 ### The Tangle ### 在2015,Serguei Popov提出了一種用於物聯網的微交易基礎設施名為The Tangle,相較於區塊鏈更節能,提高了交易速度並將成本幾乎降至零。 它雖然跟區塊鏈一樣是一個有向無環圖,但它並不是單一路經的鏈,而是一個網路。 Blockchain: ![image](https://hackmd.io/_uploads/rJrxG80zA.png) The Tangle ![image](https://hackmd.io/_uploads/ry-J6pTzC.png) The Tangle交易流程為下: 1. 當有新的交易節點要加入網路裡,該用戶依照Markov Chain Monte Carlo演算法尋找至多兩個舊時間段上的交易節點進行驗證。 2. 節點檢查這選取的交易是否存在衝突,如果有衝突,則不批准衝突的交易(預防雙重支付)。 3. 對於節點要發出的交易,它必須解決一種類似的工作量證明(PoW),這是通過找到一個隨機數(nonce),使得隨機變數與已批准交易的一些數據連接起來後的hash值符合某些規範,這種驗證計算工作量比區塊鏈執行的工作量要輕得多。 4. 驗證過後,就可以新的交易加入網路裡並指向兩個剛驗證的節點 5. 新加入的交易交易節點會等待被其他交易節點驗證 而要注意得是The Tangle是一個非同步傳輸,意味著每個用戶並不一定擁有最新的資訊,這意味著雙重支付有可能發生,而解決的方式就是不斷執行Markov Chain Monte Carlo並選取可能性最高的那個branch,這個機率可以最好的表示各個brach的重要性,以及他們被移除後對網路的影響力有多大,而這就意味著那些不重要的branch最終會因為沒有人去選擇而被拋棄。 另外因為每次節點都會尋找至多兩個節點進行驗證,這個網路架構不管同時加入多龐大得交易,都會收斂。 Markov Chain Monte Carlo講解影片: https://youtu.be/yApmR-c_hKU and https://www.youtube.com/watch?v=kV_UfhjLlHI ### 其他應用 ### - Snapshotting - Masjed Authenticated Messaging(MAM) - Seeds, public key and private key 皆可參考這篇,在2.2. The implementation裡面有詳細講解(上面沒提到的地方感覺比較難講) https://www.sciencedirect.com/science/article/pii/S0167739X19329048/pdfft?md5=d1a1a54c24930be1dd50b4b6d24e3b67&pid=1-s2.0-S0167739X19329048-main.pdf