[發明專利]一種基于區塊鏈的福利彩票公平開獎方法有效
| 申請號: | 201810735389.2 | 申請日: | 2018-07-06 |
| 公開(公告)號: | CN108831002B | 公開(公告)日: | 2021-06-01 |
| 發明(設計)人: | 許春香;李闖;劉大為;溫昕晟;白蘭華 | 申請(專利權)人: | 電子科技大學 |
| 主分類號: | G07C15/00 | 分類號: | G07C15/00 |
| 代理公司: | 電子科技大學專利中心 51203 | 代理人: | 鄒裕蓉 |
| 地址: | 611731 四川省成*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 區塊 福利彩票 公平 開獎 方法 | ||
1.一種基于區塊鏈的福利彩票公平開獎方法,其特征在于,包括以下步驟:
步驟1.準備工作:規定開獎、停售時間;彩票發起者部署彩票的智能合約,智能合約包括投注模塊和開獎模塊;
步驟2.投注模塊:在智能合約中設置初始變量OpenChal為0,在售賣彩票的過程中,當一個投注者投注后,智能合約利用投注者以太坊地址、投注金額和投注時間與設置的變量OpenChal作為輸入更新變量OpenChal;在彩票出售的時間內,任何擁有以太坊地址的用戶均能夠以任意金額投注任意開獎號碼;彩票停售后,所有用戶均不能進行彩票投注;
步驟2中更新變量OpenChal的具體過程為:
在智能合約中設置初始變量OpenChal為0,在售賣彩票的過程中,當一個投注者投注后,智能合約利用投注者以太坊地址BetAddr、投注金額BetAmount和投注時間BetTime與設置的變量OpenChal進行計算如下更新變量OpenChal:其中,||為連接符,為異或運算,H為哈希運算,H:{0,1}*→{0,1}256,表示將任意長度的二進制值映射為長度為256的二進制值;
步驟3.開獎模塊:彩票開獎時,智能合約獲取截止到開獎時間最新確認的12個區塊的哈希值,利用這12個哈希值和OpenChal的值計算得到開獎的挑戰值;
在開獎的挑戰值后添加填充數據,進行六次哈希計算;其中,每進行一次哈希計算,填充數據加1;得到產生雙色球號碼的6個哈希值;將6個哈希值取模33的余數并加1;得到6個紅色球號碼;若6個紅色球號碼中存在兩個相同的號碼,則舍棄其中一個號碼,改變填充數據,重新計算哈希值進行操作得到新的紅色球號碼,將新的紅色球號碼與其他紅色球號碼進行比較,若不同則保留,若相同則舍棄該號碼,重復上述操作,直至找到6個互不相同的紅色球號碼為止;
將開獎的挑戰值作為輸入,并在挑戰值后添加填充數據,利用填充數據計算得到新的哈希值,該哈希值取模16的余數并加1,得到1個藍色球號碼;
步驟3中計算開獎挑戰值的過程為:
步驟3-1.彩票開獎時,智能合約獲取截止到開獎時間最新確認的12個區塊的哈希值,利用這12個哈希值和OpenChal的值計算得到開獎的挑戰值;
彩票開獎時,獲取截止到開獎時間最新確認的12個區塊的哈希值HBlock1,HBlock2,HBlock3,HBlock4,HBlock5,HBlock6,HBlock7,HBlock8,HBlock9,HBlock10,HBlock11,HBlock12;開獎的挑戰值
紅色球的計算過程為:
步驟3-2.在開獎的挑戰值后添加填充數據f,進行六次哈希計算;其中,填充數據的初始值f=0,每進行一次哈希計算,填充數據f加1;得到產生雙色球號碼的6個哈希值;
六次哈希計算:s1=H(OpenChal||f),f=f+1,s2=H(OpenChal||f),f=f+1,s3=H(OpenChal||f),f=f+1,s4=H(OpenChal||f),f=f+1,s5=H(OpenChal||f),f=f+1,s6=H(OpenChal||f),f=f+1,得到256比特的哈希值s1,s2,s3,s4,s5,s6;
將6個二進制形式的哈希值s1,s2,s3,s4,s5,s6取模33的余數并加1;得到6個紅色球號碼:r1=(s1mod33)+1,r2=(s2mod33)+1,r3=(s3mod33)+1,r4=(s4mod33)+1,r5=(s5mod33)+1,r6=(s6mod33)+1,其中mod為取模運算;
步驟3-3.若6個紅色球號碼r1,r2,r3,r4,r5,r6中存在兩個相同的號碼,則舍棄其中一個號碼,重新計算哈希值得到新的紅色球號碼,s7=H(Bhash||f),f=f+1,r7=(s7mod33)+1,s8=H(Bhash||f),f=f+1,r8=(s8mod33)+1……,將新的紅色球號碼與其他紅色球號碼進行比較,若不同則保留,若相同則舍棄該號碼,重復上述操作,直至找到6個互不相同的紅色球號碼為止;
藍色球的計算過程為:
步驟3-4.將開獎的挑戰值OpenChal作為輸入,并在該挑戰值后添加填充數據f,計算新的哈希值l=H(OpenChal||f),取l模16的余數并加1得到取值范圍為1~16的數字n,n=(lmod16)+1,則n為雙色球中藍色球號碼。
2.根據權利要求1所述的基于區塊鏈的福利彩票公平開獎方法,其特征在于,基于以太坊智能合約的彩票需要開獎前至少六分鐘停止售賣彩票,其開獎和停售時間與雙色球的開獎、停售時間保持一致。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于電子科技大學,未經電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810735389.2/1.html,轉載請聲明來源鉆瓜專利網。





