--- tags: iota --- # 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`