---
# System prepended metadata

title: Iota Tangle

---

參照資料
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