# 提案:粉絲讓票混合抽籤系統 ## 0. 組員 R14922A13 R14922118 R14922137 ## 1. 動機 在演唱會或電影票的搶票場景中,許多粉絲在買到票後,會因各種原因想要「**將票讓給其他粉絲**」。然而,目前的二手讓票市場存在以下問題: * **黃牛與機器人壟斷**,造成真正的粉絲難以取得票券。 * **轉讓過程不透明**,容易引發詐騙與信任危機。 * 目前大多依賴中心化平台,缺乏公開可驗證的分配機制。 為了解決這些問題,我們提出一個 **區塊鏈驅動的混合抽籤機制**,結合「會員/實名優先」與「公開抽籤」,在 **防黃牛、提升公平性與信任** 三個目標之間取得平衡。 --- ## 2. 問題定義 當一張票被釋出時,往往會有許多粉絲同時登記想要獲得這張票。此時系統必須有一套 **公平、透明且防濫用的分配機制**,來決定票券的最終接收者,並且要能避免黃牛利用多重帳號與高速機器人搶票。 --- ## 3. 提出的方法 我們設計了一個「**混合分配機制**」: * **70% 的票券**保留給「**符合會員或實名制資格的使用者**」進行抽籤(資格池)。 * **30% 的票券**則開放給其他一般使用者進行抽籤(公開池)。 此設計的目的在於: * 讓真正的粉絲(會員或實名者)有較高的中籤機會, * 但同時保留一部分名額給其他使用者,維持公開性與公平性, * 達到「防黃牛」與「信任機制」的雙重效果。 ### 3.1. 核心特色 * **區塊鏈智能合約**負責票券託管、登記與抽籤流程 * **可驗證隨機數**(VRF 或 Commit–Reveal)確保抽籤過程公開透明 * **資格驗證機制**防止黃牛濫用 * **反濫用政策**(限價、登記次數限制、黑名單機制)提升信任度 --- ## 4. 系統設計 ### 4.1 角色 * **讓票者(A)**:持有票券並希望釋出 * **資格粉絲(Pool A)**:已完成會員認證或實名登記的使用者 * **一般粉絲(Pool B)**:其他登記的使用者 * **智能合約**:負責票券 NFT 託管、登記、抽籤與轉移 ### 4.2 流程 1. **建立讓票批次** 讓票者將票券(NFT)鎖進智能合約中,設定登記時間區間。 2. **登記期間** 使用者於時間內登記。 系統驗證是否為資格粉絲,並將使用者分入 Pool A 或 Pool B。 3. **混合抽籤** * Pool A(資格粉絲池)抽出 70% 的票券 * Pool B(公開池)抽出 30% 的票券 * 抽籤過程使用鏈上可驗證的隨機數,確保不可操控。 4. **領取票券** 中籤者於截止日前完成認領,合約將票券轉給中籤者。 若未領取,票券可再進行候補分配或二次抽籤。 --- ## 5. 隨機性與信任 為了避免「黑箱抽籤」,我們採用以下方法之一產生隨機數: * **VRF(Verifiable Random Function)**:從可信來源請求隨機數並提供可驗證證明。 * **Commit–Reveal 機制**:先提交隱藏值(commit),抽籤後再公開(reveal),合併區塊資訊產生種子。 所有登記資料、抽籤種子與結果都會記錄在鏈上,任何人都可以事後驗證過程與結果。 --- ## 6. 防黃牛機制 * **資格名單驗證**:使用 Merkle proof 驗證會員/實名帳號 * **身分去重**:每個人每批次只能登記一次 * **限價政策**:禁止高於票面價格的轉讓 * **黑名單機制**:對於多次中籤未領或可疑行為的帳號,暫時移除資格 --- ## 7. 預期成果 * 一套能執行 **70/30 混合抽籤的智能合約原型** * 一個簡易前端,展示批次建立、登記、抽籤、領票流程 * 公開可驗證的抽籤結果,提升粉絲間的信任度 --- ## 8. 參考資料 * 以太坊 VRF 技術文件 * Fisher–Yates 抽籤演算法 * Merkle Tree 證明與驗證方法 * 目前主流售票平台(KKTIX、Accupass、Ticketmaster)的讓票機制 --- ## 總結 本專案以區塊鏈與加密技術為基礎,設計一個兼顧「**公平性**」與「**防黃牛**」的粉絲讓票機制。透過「**70/30 混合抽籤 + 實名驗證 + 可驗證隨機數**」,達到一個既能保障真粉絲權益,又能維持公開透明的信任系統。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up