IOTA TL;DR

tags: Study Blockchain

本區討論僅作為本人吸收後的摘要,故只會有大略描述,詳細內容仍得看藍色連結。


其他討論

IOTA 為何需要 Coordinator ?

參考:

  • 因為目前的 IOTA 網路 TPS 仍然很低,很容易被女巫攻擊導致主鏈切換,為了防止被攻擊,故使用 COO 每段時間發布一個 milestone 來紀錄當前的 Tangle 。
  • milestone 直接或間接指向到的交易都會進入 Confirmed 的確認狀態。
  • 但 COO 是由 IOTA Foundation 發布的,因此會有中心化的缺點。

IOTA 是怎麼打包交易的 ?

參考:

  • 一個 bundle 有數個 transaction ,連接上 Tangle 的交易是以 bundle 為單位的。
  • bundle 內的交易都有 branch transaction hash 與 trunk transaction hash :
    • 同一個 bundle 的 bracnch 與 trunk hash 都是同一組,只是每筆交易指向不同
      Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →

什麼是 Minimum weight magnitude (MWM)

  • 是用於調整 PoW 難度的變數,MWM 越高,代表難度越難。
  • 如果 MWM 為 9 ,代表計算出的 transaction hash 後 9 位 trit 要為 0 。
  • 假如 Mainnet 的 MWM 為 14 ,則發布交易的 hash 必須要有大於 14 的 MWM ,否則被 reject 。

IOTA 如何才算 Confirm ?

  • confirm 可以視為要多久交易可以被接收者確定。
  • 在有 COO 的情況下,任何被 COO 的 milestone 直接或間接 reference 到的交易都會被視為 confirm
    • 但 COO 理論上是有權選擇要把 milestone 接到哪個交易,故有集中化的詬病。
  • 在沒有 COO 的情況下,是透過計算 Confirmation Confident (CC)。
    • 要知道某 tip 的 CC 的方式是一次跑很多的 random walker ,越多 random walker 走到該 tip ,那他的 CC 就越高。
    • 例如跑 1000 次 random walker , tip 被走過 997 次,那可以說他的 CC 是 99.7% 。

甚麼是 Masked Authenticated Message (MAM)?

  • 簡單來說,是能夠讓 Tangle 的使用者找到所要的訊息的一種協定。分為 Public mode, Restrict modePrivate mode
  • 會對 Tangle 中交易的 MAM section 做加密並可以被驗證是否為本人發送的。
  • 以下為 Public mode 的概述 :
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    • 發布者透過自己的 SEED 產生 Merkle tree ,該 Merkle tree 的 root hash 即是在 Tangle 中第一代訊息交易的 address。下一代需要再用同手法產生第二棵 Merkle tree 。
      Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
    • 該 root hash 是 address 同時也是解密 trytes 的密鑰,解密後訊息會包含下一代的 root hash ,訂閱者可以依循 root hash 來找得到所有訊息。
    • 可以透過解密後 trytes 的訊息來驗證 Merkle tree 是否正確,若為正確則表示此發布者是合法的。

IOTA 的 XY Attack

  • XY Attack 又被稱為 34% 攻擊,或是 IOTA 的 double-spend-atack 。
  • 在 Tangle 之中,各節點的連線是 private 的,所以光能獲得全網大多數的 hash power 還不夠,還需要有足夠的節點連線。
  • 以下為達成 Tangle 攻擊的幾點要素 :
    • 整體 X% 的 hash power 。
    • 能夠有整體網路的概觀,也就是擁有所有在 Tangle 上節點的連線。(基本上不可能,因為連線都是私下連的)
    • 擁有整體網路 Y% 的連線,為了能將大量的 subtangle 給送出,需要有足夠多的連線。
  • 即使擁有 99% 的 hash power ,但如果只有整體網路 5% 的連線,那樣的攻擊頂多只能使部分的 subtangle 被攻擊成功,其餘 Tangle 不受影響。
  • 要擁有足夠的 X%Y% ,那攻擊才會使整體網路受到影響。
  • IOTA 基本上就是以捨棄被攻擊的部分來保全其餘的 Tangle 。( IOTA 就是會讓網路分裂! )