?

基于區塊鏈的公平可驗證抽簽系統*

2024-01-25 12:15尤毅晨杜紅珍
關鍵詞:可驗證中獎合約

尤毅晨,杜紅珍,任 蕾

(寶雞文理學院 數學與信息科學,陜西 寶雞 721013)

隨著社會、經濟和科技的快速發展,由于人口基數龐大,導致原料供應短缺或者對環境影響過大從而不得不限量供應。例如,女性宮頸癌疫苗的預約搶購;一線城市按年定量的汽車搖號、購房搖號;2022年北京冬季奧林匹克運動會吉祥物手辦、掛飾的搶購;部分地區學校的入學資格分配等等。這些搶購搖號易受外界因素影響,參與過程難以公開透明展示,結果無法驗證,存在后臺操作的可能性,結果公開后參與者可能面臨泄露身份數據,遭受廣告騷擾、詐騙等問題。對于社會上存在的此類問題,一個基于區塊鏈的公開可驗證抽簽系統可以提高公平性,增加決策的透明度,保證每個人有相同的機會獲得指標,避免了財富和社會地位的差異對抽簽的影響,減少人們對抽簽結果的不信任感,促進醫療、教育、資源的均衡分配。

區塊鏈(Blockchain)最早出現于2008年中本聰發表的Bitcoin:Apeer-to-peerelectroniccashsystem文章中[1]。區塊鏈技術是一種去中心化、分布式的賬本技術,它通過將交易記錄組織成“區塊”并使用加密算法和分布式共識機制來確保交易記錄的不可篡改性和安全性。在區塊鏈中,每個參與者都可以在自己的節點上存儲完整的賬本拷貝,節點相互之間通過共識機制來協調賬本的更新和同步。由于區塊鏈上的每個交易都被記錄在多個節點上,因此區塊鏈具有去中心化、不可篡改、透明等特點,可以提供更加安全和可信賴的數據存儲和交換方式,具有多方數據一致性、防篡改、隱私保護和智能驅動等特性。智能合約是部署并運行在區塊鏈上的一種可編程的代碼,當滿足設置的條件后,實現各種合同的自動化管理和執行。

近年來,常用的抽簽方案使用隨機數或軟件程序的設計來實現隨機公平的抽簽。抽簽系統最重要的性能指標就是公平性,一定要保證抽簽參與個體被抽取的概率相等。文獻[2]提出了一個基于聯盟區塊鏈的福利彩票系統,但是其開獎階段沒有做到公平性,部分開獎號碼無法被取到;文獻[3]設計了一種多功能抽簽選擇器軟件系統,通過軟件以隨機數形式從眾多候選數據中隨機選擇部分數據的方式來實現抽簽,但是該系統存在后臺操控的可能,無法做到抽簽過程公開透明的展示;文獻[4]通過容噪量子擲幣協議構建了一個多方網絡抽簽系統,但是該協議的安全性與效率是成反比的,難以在實際中使用;文獻[5]設計了一個基于C/S模式的網絡抽簽系統,但是面向用戶是局域網中安裝了客戶端的機器,應用范圍有局限性且抽簽結果不能公開驗證;文獻[6]設計了一種基于ExcelVBA的講課競賽抽簽系統,通過在Excel文件中嵌入VBA程序實現講課競賽的隨機抽簽,但是該系統是已知參賽備選人員名單后為其抽取講課題目,也不具備可驗證性。以上文獻的抽簽方案中,主要存在抽簽的公平性、隱私性、可驗證性和效率低的問題,為了解決上述問題,基于區塊鏈技術提出了一個公平可驗證抽簽系統。

1 背景知識

1.1 智能合約

智能合約(Smart Contract)最早由SZABO于1995年提出[7],是一種基于區塊鏈技術的計算機程序,可自動執行和履行合同條款。智能合約基于區塊鏈技術,利用去中心化、分布式的賬本技術來保存交易記錄和執行合約[8]。在智能合約中,合同條款被編寫為可執行的代碼,智能合約由生成、發布和執行3個部分組成。當滿足合同條件時,智能合約會自動執行,并在區塊鏈上保存交易記錄,以確保數據的安全和可靠性,避免了傳統合同需要人工介入和監督的問題,從而提高了合同的執行效率和可靠性。智能合約的應用非常廣泛,可以實現許多傳統合同無法實現的功能。例如,在抽簽系統中,智能合約可以根據條件自動執行獎勵的發放,并將抽簽資格轉移到中簽者的賬戶中,從而提高了獎勵發放的速度和可靠性。

1.2 ELGamal加密體制

ELGamal公鑰密碼體制[9]是ELGAMAL于1985年基于Diffile-Hellman密鑰交換算法[10]提出的,其安全性由有限域上的離散對數難題保證。該加密體制由參數設置、密鑰生成、加密、解密4部分組成。

(1) 參數設置

隨機選取一個大素數p,構建一個模p的有限域Zp,g是Zp上的生成元,且g∈Zp。

(2) 密鑰生成

隨機選擇x∈[1,p-1],計算y=gxmodp,私鑰SK={x},公鑰PK={p,g,y}。

(3) 加密

對于明文消息m,加密者隨機挑選一個秘密值k∈[1,p-1],用接收者的公鑰對明文消息加密得到密文

E(m)={c1=gkmodp,c2=mykmodp},

其中,E(·)表示加密算法。

(4) 解密

接收者收到密文消息{c1,c2}后,使用私鑰恢復得到明文

其中,D(·)表示解密算法。

2 抽簽系統

系統基于以太坊設計開發,以太坊是一個通用區塊鏈平臺,其基礎是區塊鏈技術。簽名后的合約通過P2P網絡直接發布,并被每個節點接收并儲存在其共識體系中。每個節點將最近接收到的所有合約體系打包,計算出集合的哈希值,然后擴散至全網其他節點。每個節點收到此數值后,與自身計算出的數值進行比較,達成共識,以確保合約穩定執行。

2.1 系統模型

系統架構如圖1所示,主要包括抽簽發布者、抽簽參與者、智能合約、區塊鏈、存儲系統以及可信中心TA共6個部分。

圖1 抽簽系統架構Fig. 1 Lottery system architecture

抽簽發布者:負責設置抽簽人數、參與人數和抽簽獎勵,設置完成后向可信中心發送抽簽申請。

抽簽參與者:需要獲取抽簽資格的人員,使用身份注冊參與抽簽。

智能合約:區塊鏈上的一串代碼,當滿足條件的抽簽結果出來時,給予被抽中的參與者獎勵資格。

區塊鏈:負責記錄用戶的注冊、記錄參與者的抽簽信息、計算抽簽數據、可信中心TA的操作信息。

存儲系統:負責存儲設置的抽簽信息、抽簽者身份信息、區塊鏈和智能合約的數據。

可信中心TA:負責系統的管理、初始系統參數的選擇、抽簽參與者的注冊,驗證注冊參與者身份后,可信機構會為其生成注冊信息并上傳至區塊鏈。

2.2 抽簽系統上區塊鏈的安全模型

本系統上區塊鏈的安全模型如圖2所示,共有3層,分別為應用層,合約層,數據層。其中應用層用來操作抽簽系統和對用戶進行管理;合約層用來設置共識機制,在區塊鏈上部署智能合約和保持節點的相互聯系;數據層用來保存系統中的數據,將新產生的信息以新的區塊的方式成鏈式結構保存。

圖2 安全模型Fig. 2 Security model

2.3 具體流程

抽簽發布者向可信機構提供證明自己發起抽簽活動的證明材料以及設置參與抽簽用戶的限制條件、抽簽參與人數上限、抽簽獎勵、獎勵數量等參數,可信機構驗證無誤后對外發布抽簽活動。

2.3.1 初始化階段

2.3.2 注冊階段

2.3.3 抽簽階段

2.3.4 派獎階段

因為每個參與者最終得到的身份哈希H(yi||UI||ti)是其發送注冊請求時的時間戳、選擇隨機數計算的離散對數和用戶的身份信息共同進行哈希運算得到的,而哈希函數具有單向性,所以抽簽階段得到的抽獎數字是不可操控的。抽簽截止后,將每個參與者最終得到的抽獎數字從小到大排列,按順序即可取到中獎名額數量的參與者,廣播所取到的所有中獎數字ωi、中獎用戶的yi值、參與注冊的人數和注冊成功的人數。

例1現有某醫院作為抽簽發布者,得到一批九價HPV疫苗,可以滿足10位女性的注射需求,所以對外公開抽取10位注射者。首先向可信機構提供這批疫苗的來源、批號、生產日期等相關信息,然后提供醫院的注冊資質,最后向可信機構說明本次抽取10位年齡在16至26歲且工作或居住地在本地的女性來注射這批疫苗。隨后可信機構驗證醫院信息無誤后將信息記錄在區塊鏈上。設置智能合約為最后抽取到的10位用戶發放注射疫苗資格并對外發布抽簽活動。

抽簽截止后,共有200位抽簽參與者,其中有3位男性參與者,27位年齡不在16至26歲之間的參與者,42位無法提供工作證明或居住地證明的參與者,8位注冊重復或注冊信息有誤參與者??尚艡C構記錄注冊人數為200,注冊成功人數為120,并記錄在區塊鏈上等待抽簽結束對外公布。

可信中心TA計算H(yi||Hi||ti),并將結果由十六進制轉換成十進制再計算ωi。如編號120的抽簽參與者的抽獎數字為:

42813567636390724052700025738182452599mod116068178639776=78941110719631。

如表1,編號為1,2,119,120的抽簽參與者中,

35978919955237<75719772694539<

78941110719631<93308196732002,

其中,1號參與者的抽獎數字ω1最小,所以在這4人中優先中簽。同理計算出120位參與者的抽獎數字ωi后,按從小到大排列,取前10位中簽并公開對應的ωi和yi。

抽簽結束后,TA廣播中獎用戶選取的yi、對應的中獎數字ωi、參與注冊的人數和注冊成功的人數。中獎的用戶如果存在異議或者是獎勵發放過程中有遇到的問題,可以通過其選取的xi來證明自己身份;未中獎的用戶可以通過計算出自己的抽獎數字對比是否大于廣播的中獎數字。

3 系統安全分析

3.1 可驗證性

用戶Ui接收到TA發送的ESK=(ci1,ci2,ti)||(ci1,ci2,ti)后,只需要驗證其有效性,再解密

3.2 合法性

通過驗證參與者身份的合法性,防止代抽或惡意參與者,如果用戶多次選取隨機數向TA多次提交注冊申請,則只記錄第一次注冊信息,后續全部返回reject。由于每一次注冊、每一次開獎都在區塊鏈上有記錄,所以保證了數據的安全性和公平性。分布式記賬,遭受惡意攻擊也不會重新抽簽,可以從別處恢復數據。參與主體隨時申訴,擁有監管保障。即使遇到了惡意用戶,也可以根據可信中心記錄的(yi||Ui||ti)找到用戶對應身份信息進行追責。

3.3 準確性

根據區塊鏈不可篡改、永久運行、可追溯的特性,所有階段都是記錄在區塊鏈上的,并且最后的派獎階段是智能合約自動執行,當注冊結束計算出抽獎數字后,便可以按照設定的程序自動派獎,保證了抽簽獎勵發放的準確性。

3.4 隱私性

由于注冊階段的用戶私鑰是自己選擇的,即使他人截取到EPK(yi)和TA返回用戶的ESK=(ci1,ci2,ti)||(ci1,ci2,ti),也無法解密將yi和用戶的身份信息Ui對應起來。等抽獎結束后公布了中獎用戶的yi,也不知道中獎用戶的身份信息,保證了用戶的身份隱私,減小了用戶因參與抽簽而遭受詐騙信息和廣告騷擾的可能。

3.5 不可預測性

最終抽獎號碼的產生取決于眾多參與者的主觀選擇和參與注冊的人數,每位參與者選取的隨機數,注冊的時間都是主觀的,并且最終進行哈希運算,每位用戶在抽簽結束前都不知道參與注冊成功的人數,由哈希函數的單向性,任何一個因素的微小變化都會影響抽簽號碼的變化,所以參與用戶無法通過計算預測來實現中獎。

3.6 不可操控性

4 結語

本文針對當前社會存在的資源分配限制問題,提出了一個新的基于區塊鏈的公平可驗證抽簽系統,該系統可以保證抽簽過程的公開可驗證,并保護了抽簽參與者的隱私信息,可以提高公眾對抽簽過程的信任程度,在一定程度上維護了社會的公平。但是由于對抽簽參與者隱私性的高度保護,本文使用了ELGamal公鑰密碼體制,傳遞密文的長度是明文長度的2倍,使得通信的信息量增大,以后的研究中可以在保證安全性的前提下,減少通信的信息量,提高系統的效率。

猜你喜歡
可驗證中獎合約
“可驗證”的專業術語解釋
丟失的中獎彩票
一種基于區塊鏈技術的可信電子投票方法
云計算視角下可驗證計算的分析研究
意外中獎
中獎啦!
虛假的中獎
無可信第三方的可驗證多秘密共享
合約必守,誰能例外!——對“情勢變更”制度不可寄于過高期望
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合