本發明涉及的是一種電子投票領域的技術,具體是一種基于虛擬貨幣的投票系統。
背景技術:
比特幣等是一種具有去中心化性質的虛擬貨幣,完全通過點對點技術實現的電子現金系統。此類虛擬貨幣的基礎技術是區塊鏈技術,它可以使得在線支付能夠直接由一方發起并支付給另外一方,也就是說在交易過程中間不需要通過第三方參與,例如金融機構的調解。此類虛擬交易在全球范圍內興起,應用市場也不斷擴展。
區塊(block)是比特幣交易中的最小單元,每10分鐘,全網就會生成一個區塊,所有的交易信息都會被包裝在這個區塊中,而這些區塊則會以特定的順序排列成鏈,這就是交易鏈,也叫區塊鏈。此類虛擬貨幣系統中的所有交易信息記錄都將保存在交易鏈中,由交易鏈保障區塊的安全,也就保障了單個交易的安全。
技術實現要素:
本發明針對現有技術多采用自定義的區塊鏈進行投票以管理根證書,導致其安全邊際較小的缺陷,提出一種基于虛擬貨幣的投票系統,適用于不同類型大小和不同時間跨度的投票過程,完全公開保存轉賬記錄的交易鏈從而保證投票過程的透明性與公正性。
本發明是通過以下技術方案實現的:
本發明包括:登記模塊、投票模塊和統計模塊,其中:登記模塊設置虛擬貨幣的轉賬地址作為各候選項的投票地址,并登記投票者及其對應的投票賬戶;投票模塊讀取投票者選擇的候選項,將投票者的投票賬戶中的虛擬貨幣轉入其選擇的候選項的投票地址中;統計模塊提取所有候選項的轉賬記錄,得到投票者總數、投票時間、有效票數、無效票數以及各候選項的有效得票。
所述的虛擬貨幣為比特幣或萊特幣。
所述的登記模塊包括:投票方登記單元、候選項登記單元和虛擬貨幣分配單元,其中:投票方登記單元登記投票者并為其關聯投票賬戶,候選項登記單元登記候選項并設置虛擬貨幣的轉賬地址作為各候選項的投票地址,虛擬貨幣分配單元為各個投票賬戶分配所需的虛擬貨幣。
所述的投票模塊包括:界面單元和轉賬單元,其中:界面單元與投票者交互并將投票者選擇的候選項傳輸到轉賬單元,轉賬單元將投票者的投票賬戶中的虛擬貨幣轉入其選擇的候選項的對應投票地址中。
所述的統計模塊包括:數據讀取單元、票數統計單元和呈現單元,其中:數據讀取單元讀取在有效投票時間內的所有投票賬戶轉賬記錄并提交票數統計單元,票數統計單元將轉賬記錄轉化為投票記錄并統計投票者總數、投票時間、有效票數、無效票數以及各候選項的有效得票,呈現單元將投票者總數、投票時間、有效票數、無效票數以及各候選項的有效得票通過屏幕顯示。
附圖說明
圖1為本發明整體結構示意圖;
圖2為登記模塊結構示意圖;
圖3為投票模塊結構示意圖;
圖4為統計模塊結構示意圖。
具體實施方式
本實施例中投票系統應用比特幣網絡來實現投票過程。面向投票過程數據鏈為比特幣歷史交易過程中完整區塊鏈,該區塊鏈中的每一個區塊包含有如下結構:神奇數、區塊大小、數據區塊頭信息以及交易計數和交易詳情。比特幣區塊之間通過相應的hash值相連接,每個區塊都由網絡中的礦工計算而來,網絡中的所有計算能力共同支撐了網絡的數據安全性。
如圖1所示,本實施例包括:登記模塊、投票模塊和統計模塊,其中:登記模塊設置虛擬貨幣的轉賬地址作為各候選項的投票地址,并登記投票者及其對應的投票賬戶;投票模塊讀取投票者選擇的候選項,將投票者的投票賬戶中的虛擬貨幣轉入其選擇的候選項的投票地址中;統計模塊提取所有候選項的轉賬記錄,得到投票者總數、投票時間、有效票數、無效票數以及各候選項的有效得票。
如圖2所示,所述的登記模塊包括:投票方登記單元、候選項登記單元和虛擬貨幣分配單元,其中:投票方登記單元登記投票者并為其關聯投票賬戶,候選項登記單元登記候選項并設置虛擬貨幣的轉賬地址作為各候選項的投票地址,虛擬貨幣分配單元為各個投票賬戶分配所需的虛擬貨幣。
所述的投票方登記單元所登記投票者可以以本人的比特幣賬戶作為投票賬戶。虛擬貨幣分配單元為各個投票賬戶轉入足額的比特幣。所有候選項的投票地址以及投票規則以文件形式輸出并公布。
所述的候選項設為兩組,其中:第一組有三個候選項分別為c1-1,c1-2,和c1-3,投票規則為單選,即投票者只能在三個候選項中選擇一個進行轉賬投票。當有投票者往三個候選項中的兩個或者三個轉賬,則該投票為無效票。第二組有5個候選項c2-1、c2-2、c2-3、c2-4和c2-5,投票規則為多選且要求是3個以內,即投票者只能在五個候選項中選擇一個、兩個或者三個進行轉賬投票,當有投票者往五個候選項中的4個或者5個轉賬,則該投票者投出的是無效票。
采用json格式的文件方式來存儲和公開投票者投票賬戶和投票規則。其中全部投票者投票賬戶文件中每一個對象包含了一個投票登記點的所有已登記的投票賬戶,對象的名稱為投票登記點名稱,對象的值為一個有序列表,列表中的每一項為一個已登記的投票賬戶。投票規則文件中的候選項上限對象展示了投票者可以選取的候選項上限,對象的值為整型,當為1,則該次投票只能單選,當大于1,則該次投票者可以多選,但所選的候選項數目不能超過該值,其余的每一個對象都代表了一個候選項,對象的名稱為候選項,對象的值為該候選項對應的轉賬地址即投票地址。
如圖3所示,所述的投票模塊包括:界面單元和轉賬單元,其中:界面單元與投票者交互并將投票者選擇的候選項傳輸到轉賬單元,轉賬單元將投票者的投票賬戶中的虛擬貨幣轉入其選擇的候選項的投票地址中。
所述的界面單元將投票者選擇的候選項轉化為該候選項所對應的投票地址,而后由轉賬單元執行轉賬操作。當投票者的選擇是單選,則向對應候選項的轉賬地址轉入特定數額的比特幣。當投票者的選擇是多選,則按照投票規則檢查投票者的選擇是否為無效投票,若其為無效投票,則駁回投票請求,需要投票方進行再一次投票,若為符合投票規則,則分別向每一個候選項投票地址轉入特定數額的比特幣。為保證轉賬過程被比特幣網絡及時確認并保存在區塊鏈中,除了需要轉入候選項的必要金額(可選擇比特幣最小幣值),投票賬戶的剩余比特幣可設置為轉賬的手續費。
如圖4所示,所述的統計模塊包括:數據讀取單元、票數統計單元和呈現單元,其中:數據讀取單元讀取在有效投票時間內的所有投票賬戶轉賬記錄并提交票數統計單元,票數統計單元將轉賬記錄轉化為投票記錄并統計投票者總數、投票時間、有效票數、無效票數以及各候選項的有效得票,呈現單元將投票者總數、投票時間、有效票數、無效票數以及各候選項的有效得票通過屏幕顯示。轉賬記錄保存于交易鏈中。
所述的數據讀取單元采用大步長6來初步確定區塊范圍,再通過不斷減少搜索步長,每次減少1,來最終確定區塊鏈符合有效投票時間的區間。讀取所有的有效投票時間段存在于交易鏈中的轉賬記錄后,票數統計單元通過對比特幣數據結構的解析,使其轉化為能夠讀取的投票記錄。
對本實施例中的對所有候選項的投票分別進行統計,其中第一組總票數為13071,其中有效票為339,無效票為12732,第二組總票數為13071,其中有效票為1210,無效票為11861,統計所用平臺為個人電腦,有效投票時間為80分鐘,統計所用時間為2分鐘。
與現有技術相比,本發明具有大型虛擬貨幣網絡交易活躍計算量大所帶來的安全性,完全公開保存轉賬記錄的交易鏈從而保證了投票過程的透明性與公正性,適用于不同類型大小、不同規模大小以及不同時間跨度的投票過程。
上述具體實施可由本領域技術人員在不背離本發明原理和宗旨的前提下以不同的方式對其進行局部調整,本發明的保護范圍以權利要求書為準且不由上述具體實施所限,在其范圍內的各個實現方案均受本發明之約束。