Try   HackMD

IOTA 使用情境

期望實現的功能

空氣盒子

  • [ ]不定期抽查裝置
  • [ ]回傳裝置版本
  • [x]推播 OTA 訊息
  • [x]與 TangleID 綁定流程
  • [x]點數回饋及使用機制
  • [x]sybil 初步防範

TangleID

  • [x]身分認證
  • [x]發證及驗證流程
  • [x]證書註銷
  • [x]點對點加密傳訊
  • [x]給小費
  • [x]金鑰遺失處理
  • [x]sybil 初步防範

流程

TangleID

  • 每個 identity (無論是個人還是公司) 唯一對應一組 UUID,由用戶向系統註冊產生,這組金鑰對存放於管理的 server,並且引導用戶產生一組 RSA key pair,公鑰與 UUID+I 綁定發布於 Tangle 上

  • 發證單位以私鑰簽章,並搜尋 UUID+I 獲取用戶公鑰加密證書內容後,以 UUID+C 發布

  • 證書持有者將獲取的證書發布至 MAM 上,並決定要以哪種形式公開
    (可以採圖像化引導的方式讓使用者建立 MAM 樹狀結構),
    每個人可以發布多組 MAM tree,
    再將建立的 MAM tree 加上 UUID+P 發布至 Tangle (Public 的資料)

  • 企業以 UUID+Q 向用戶發出閱覽請求,用戶以企業的 UUID+A 回覆並附上 MAM Tree 的資料,以企業的公鑰加密

  • 發證單位須註銷證書時,直接以 UUID+R 公開發出,不做加密(若是加密會沒辦法查到)

  • 用戶雙方傳遞訊息時使用 UUID+M ,透過搜尋對方的 UUID+I 取得公鑰用以加密
    (也可以改進為使用 UUID+M 紀錄 MAM init channel key)

  • 作為 anti-sybil 的方式,可以限制 TangleID 上的每一筆交易皆需要帶 token 且發送至固定地址,成為使用服務的手續費。

  • 金鑰遺失的清況我認為有兩種做法:

    • 維持相同 UUID 並連結新的金鑰,要求補發證書
    • 通過身分認證,向我們取得金鑰副本

空氣盒子

  • 機器開機時透過 TangleID 取得目前使用的 MAM 起始地址,循序讀取資料並按順序進行 OTA 更新。

  • 每台機器皆綁定單一 UUID,將機器內使用的公鑰加上簽章以 UUID+K 記錄至 Tangle 上即完成綁定。

  • 資料傳遞和點數回饋的部份各有兩種做法:

    • 固定地址 || 固定 tag
    • 加密 || 公開
    • 直接將每一筆交易作為 token || 累積數筆交易後發送 token 給使用者
  • 若採用固定地址且要求不為零元交易,可以有效防止 sybil 攻擊,
    這種情形下交易手續費可於發送點數回饋交易時退還

  • 在登入 TangleID 後,使用者可以於網站上消費點數,購買行為會產生一筆交易,由雙方簽署,使用 UUID+B