# [TEM] 去中心化領稿費機制實驗 2
###### tags: `TEM`
[ToC]
---
## 🧙♂️ 1. 申請人
:::info
Johnson
:::
## ⛲️ 2. 申請贊助之公共財
去中心化領稿費機制實驗 2
### 📣 2.1 Introduction
TEM Medium 已經透過[去中心化領稿費機制實驗 1](https://hackmd.io/@nic619/SkZDIp2GJl) 改變為投稿人自己到[領稿費網站](https://ethertw.github.io/RoyaltyAutoClaim/)上領取,審稿人也都透過同一個網站為每篇投稿給出稿費等級。
但目前的文章登記、投稿人領取稿費地址登記都還是由中心化的 Admin 操作,因此這個 Grant 的目的就是要透過 ZK Email 的技術來達成去中心化的文章和領稿費地址的登記。
### 🎯 2.2 Objectives
這個實驗性的 Grant 希望能將目前的稿費領取系統再進一步去中心化,讓投稿人可以自己登記投稿並自己完成稿費領取。
### 📕 2.3 Plan
1. 在[目前的稿費領取機制](https://github.com/EtherTW/RoyaltyAutoClaim)中加入 [ZK Email](https://ethtaipeixtem.substack.com/i/164167919/zk-email-summary-by-ryan) 技術,讓投稿人可以透過 eth.taipei@gmail.com 的回信來作為投稿認證及稿費領取資格的認證
2. 完成開發心得及技術文章產出並發表至 TEM Medium
#### 延伸(不包含在這個 Grant 之中)
- 如果要提供審稿人隱私保護,會需要零知識證明讓審稿人能隱藏身份。
## 💰 3. 申請贊助金額
USD$ 2500 (2000 + 500;500 為後來新增整合 Semaphore 的部分)
## 📝 4. 補充
### Spec
#### 1. 系統組成
- 鏈上的 `RoyaltyAutoClaim` [合約](https://github.com/EtherTW/RoyaltyAutoClaim)及[前端](https://github.com/EtherTW/RoyaltyAutoClaim/tree/main/frontend)
- 參與角色:Admin、Reviewer、投稿人
- Admin:維護 Reviewer 地址、維護合約
- Reviewer:負責給予投稿文章一個稿費金額
- 投稿人:登記投稿、在稿費金額決定後領取稿費
#### 2. 執行流程
##### a. 初始化
- Admin 將手續費與稿費轉給 `RoyaltyAutoClaim` 合約
- Admin 註冊 Reviewer 們的地址
註:如果合約已經在前一版進行過初始化,那就可以省略初始化的步驟。
##### b. 登記投稿
- eth.taipei@gmail.com 在收到並確認投稿資訊後,回信給投稿人“確認已收到投稿: XXXX by YYY”,其中XXXX 為文章標題名稱;YYY 為投稿人名稱
- 投稿人透過 ZK Email 證明收到來自 eth.taipei@gmail.com 的確認投稿資訊回覆,將投稿資訊及領取稿費地址(Recipient)登記至 `RoyaltyAutoClaim` 合約中
##### c. Review 並決定稿費金額
(至少兩位)Reviewer 決定一篇投稿的稿費。稿費有四個等級,最終稿費取所有 Reviewer 的稿費平均。稿費等級:
1. 20
2. 40
3. 60
4. 80
##### d. 領取稿費
- 投稿人以登記的 Recipient 地址到 `RoyaltyAutoClaim` 合約領取稿費(合約會驗證 Recipient 的簽名)
#### 3. `RoyaltyAutoClaim` 合約
要修改的函式如下:
`function registerSubmission(string title, address royaltyRecipient)`
- 原本運作方式為驗證 Admin 簽章,現在要換成驗證 ZK Email 證明
新增的函式如下:
`function updateRegistrationVerifier(address registrationVerifier)`
- 讓 Admin 註冊或更新 ZK Email 的 Verifier(註冊投稿用的 Verifier)
`function revokeEmail(string title, bytes proof)`
- 目的是讓 Admin 能撤銷某個投稿人產生的證明,可能是因為流程有誤所導致
### Updated Spec Details (2025/12/20) by Johnson
Please refer to https://hackmd.io/@johnson86tw/BJQWi61Cxl