---
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`