TWI783330B - 基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法 - Google Patents
基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法 Download PDFInfo
- Publication number
- TWI783330B TWI783330B TW109145456A TW109145456A TWI783330B TW I783330 B TWI783330 B TW I783330B TW 109145456 A TW109145456 A TW 109145456A TW 109145456 A TW109145456 A TW 109145456A TW I783330 B TWI783330 B TW I783330B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- verification
- block chain
- encrypted data
- host
- Prior art date
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一種基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法,透過揭露端主機產生一次性錢包地址及搭配金鑰將揭露資料及檢驗資訊寫入區塊鏈,並且在寫入區塊鏈後,由身分驗證端主機產生相應的有效標記、由收集公告端主機產生相應揭露資料的簽收標記,以及由內容檢驗端主機產生相應檢驗資訊的簽收標記,並且將產生的所述標記一併寫入區塊鏈,以便由四方執行交互驗證,藉以達到提高匿名性且允許確認身分之技術功效。
Description
本發明涉及一種匿名揭露暨四方驗證之系統及其方法,特別是基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法。
近年來,隨著區塊鏈的普及與蓬勃發展,各種區塊鏈應用便如雨後春筍般湧現,其中又以區塊鏈具備無法否認和難以竄改的特性而常被應用於投票或民調等等。
一般而言,傳統以區塊鏈進行投票或民調時,由於區塊鏈會完整地紀錄投票者的地址,當區塊鏈應用普及化後,原本的地址不具名(或稱之為匿名)效果便會逐漸減弱,舉例來說,隨著某一地址的使用率增加,分析者可以針對單一地址來分析使用此地址的使用者,進而得知其選擇、興趣及取向等等,倘若在某一應用中被得知使此地址所對應的真實身分,那麼,此地址便不再具有匿名性,以往的不具名選擇都將形同具名。
有鑑於此,便有廠商提出編碼及加密的技術手段,其透過雜湊及金鑰加密的方式,對資料內容(如:選票或舉報)進行編碼及加密,使得公開於區塊鏈上的資料仍然能夠維持相當程度的匿名性。然而,此方式在金鑰被竊取的情況下,竊取者可以搭配暴力測試的方式嘗試各種雜湊函式來執行解密及解碼以獲得資料內容,故具有匿名性不佳的問題。另外,雖然許多應用需要不具名的特性,如:匿名投票、匿名舉報等等,但是為了避免發生弄虛作假的情況,實務上仍然需要有驗證身分真實性的機制,而傳統方式往往只在初始時或投票完成時才會進行驗證,導致存在資料不透明的空檔。
綜上所述,可知先前技術中長期以來一直存在無法兼顧匿名性及允許確認身分的問題,因此實有必要提出改進的技術手段,來解決此一問題。
本發明揭露一種基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法。
首先,本發明揭露一種基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統,其包含:揭露端主機、身分驗證端主機、收集公告端主機及內容檢驗端主機。其中,所述揭露端主機用以傳送一次性錢包地址至身分驗證端主機,並且以收集公告端公鑰加密揭露資料以生成第一加密資料,再以所述一次性錢包地址發布第一加密資料,將所述第一加密資料寫入區塊鏈,以及透過內容檢驗端公鑰加密檢驗資訊以生成第二加密資料,再透過所述一次性錢包地址將第二加密資料寫入區塊鏈;所述身分驗證端主機用以在偵測到一次性錢包地址將第一加密資料寫入區塊鏈時,將對應所述第一加密資料的第一有效標
記寫入區塊鏈以作證第一加密資料來自所述一次性錢包地址,以及在偵測到所述一次性錢包地址將第二加密資料寫入區塊鏈時,將對應此第二加密資料的第二有效標記寫入區塊鏈以作證第二加密資料來自所述一次性錢包地址;所述收集公告端主機用以在區塊鏈上偵測到第一有效標記及其對應的第一加密資料時,自區塊鏈載入第一加密資料,並且通過收集公告端私鑰解密以獲得揭露資料,再將對應此第一加密資料的第一簽收標記寫入區塊鏈,以及將解密獲得的揭露資料寫入至區塊鏈成為公開揭露資料;所述內容檢驗端主機用以在偵測到第二有效標記及其對應的第二加密資料時,自區塊鏈取得第二加密資料,並且通過內容檢驗端私鑰解密以獲得檢驗資訊,再將對應第二加密資料的第二簽收標記寫入至區塊鏈,以及在偵測到公開揭露資料時,自區塊鏈載入此公開揭露資料及檢驗資訊,用以驗證公開揭露資料與揭露資料的內容是否相同,並且將驗證結果嵌入與公開揭露資料相應的檢驗標記,再將此檢驗標記寫入區塊鏈。
另外,本發明還揭露一種基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之方法,應用在包含揭露端主機、身分驗證端主機、收集公告端主機及內容檢驗端主機的區塊鏈網路,其步驟包括:揭露端主機傳送一次性錢包地址至身分驗證端主機,並且以收集公告端公鑰加密揭露資料以生成第一加密資料,再以所述一次性錢包地址發布第一加密資料,用以將第一加密資料寫入區塊鏈;當身分驗證端主機偵測到所述一次性錢包地址將第一加密資料寫入區塊鏈時,將對應第一加密資料的第一有效標記寫入區塊鏈,用以作證第一加密資料來自一次性錢包地址;收集公告端主機在區塊鏈上偵測到第一有效標記及其對應的第一加密資料時,自區塊鏈載入第一加密資料,並且通過收集公告端私鑰解密以獲得揭露資料,再將對應第一加密資料的第一簽收標記寫入區塊
鏈;揭露端主機透過內容檢驗端公鑰加密檢驗資訊以生成第二加密資料,再透過所述一次性錢包地址將第二加密資料寫入區塊鏈;身分驗證端主機偵測到所述一次性錢包地址將第二加密資料寫入區塊鏈時,將對應第二加密資料的第二有效標記寫入區塊鏈,用以作證第二加密資料來自一次性錢包地址;內容檢驗端主機偵測到第二有效標記及其對應的第二加密資料時,自區塊鏈取得第二加密資料,並且通過內容檢驗端私鑰解密以獲得檢驗資訊,再將對應第二加密資料的第二簽收標記寫入至區塊鏈;收集公告端主機將解密獲得的揭露資料寫入至區塊鏈成為公開揭露資料;以及內容檢驗端主機偵測到公開揭露資料時,自區塊鏈載入公開揭露資料及檢驗資訊,用以驗證公開揭露資料與揭露資料的內容是否相同,以及將驗證結果嵌入與公開揭露資料相應的檢驗標記並寫入區塊鏈。
本發明所揭露之系統與方法如上,與先前技術的差異在於本發明是透過揭露端主機產生一次性錢包地址及搭配金鑰將揭露資料及檢驗資訊寫入區塊鏈,並且在寫入區塊鏈後,由身分驗證端主機產生相應的有效標記、由收集公告端主機產生相應揭露資料的簽收標記,以及由內容檢驗端主機產生相應檢驗資訊的簽收標記,並且將產生的所述標記一併寫入區塊鏈,以便由四方執行交互驗證。
透過上述的技術手段,本發明可以達成提高匿名性且允許確認身分之技術功效。
100:區塊鏈網路
110:揭露端主機
120:身分驗證端主機
130:收集公告端主機
140:內容檢驗端主機
300:區塊鏈
310:第一加密資料
311:揭露資料
312:加密鹽
320:第一有效標記
330:第一簽收標記
410:第二加密資料
411:檢驗資訊
412:加密鹽
420:第二有效標記
430:第二簽收標記
510:公開揭露資料
520:檢驗標記
步驟210:揭露端主機傳送一一次性錢包地址至身分驗證端主機,並且以一收集公告端公鑰加密一揭露資料以生成一第一加密資料,再以該一次性錢包地址發布該第一加密資料,用以將該第一加密資料寫入一區塊鏈
步驟220:該身分驗證端主機偵測到該一次性錢包地址將該第一加密資料寫入該區塊鏈時,將對應該第一加密資料的一第一有效標記寫入該區塊鏈,用以作證該第一加密資料來自該一次性錢包地址
步驟230:收集公告端主機在該區塊鏈上偵測到該第一有效標記及其對應的該第一加密資料時,自該區塊鏈載入該第一加密資料,並且通過一收集公告端私鑰解密以獲得該揭露資料,再將對應該第一加密資料的一第一簽收標記寫入該區塊鏈
步驟240:該揭露端主機透過一內容檢驗端公鑰加密一檢驗資訊以生成一第二加密資料,再透過該一次性錢包地址將該第二加密資料寫入該區塊鏈
步驟250:該身分驗證端主機偵測到該一次性錢包地址將該第二加密資料寫入該區塊鏈時,將對應該第二加密資料的一第二有效標記寫入該區塊鏈,用以作證該第二加密資料來自該一次性錢包地址
步驟260:內容檢驗端主機偵測到該第二有效標記及其對應的該第二加密資料時,自該區塊鏈取得該第二加密資料,並且通過一內容檢驗端私鑰解密以獲得該檢驗資訊,再將對應該第二加密資料的一第二簽收標記寫入至該區塊鏈
步驟270:該收集公告端主機將解密獲得的該揭露資料寫入至該區塊鏈成為一公開揭露資料
步驟280:該內容檢驗端主機偵測到該公開揭露資料時,自該區塊鏈載入該公開揭露資料及該檢驗資訊,用以驗證該公開揭露資料與該揭露資料的內容是否相同,以及將驗證結果嵌入與該公開揭露資料相應的一檢驗標記並寫入該區塊鏈
第1圖為本發明基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統的系統方塊圖。
第2A圖及第2B圖為本發明基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之方法的方法流程圖。
第3A圖至第3D圖為應用本發明進行匿名的投票或舉報之示意圖。
以下將配合圖式及實施例來詳細說明本發明之實施方式,藉此對本發明如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
首先,在說明本發明所揭露之基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法之前,先對本發明的應用環境作說明,本發明係應用在區塊鏈網路環境,此區塊鏈網路包含揭露端主機、身分驗證端主機、收集公告端主機及內容檢驗端主機。實際上,上述這些主機皆可視為區塊鏈網路的節點,並且各自存在一條記錄相同內容的區塊鏈。除此之外,所述區塊鏈上也可以存在預先設置的智能合約(Smart Contract),所述智能合約是指在區塊鏈的基礎上依據既定的條件及傳輸的資訊來驅動執行指令的電腦程式,具體而言,所述智能合約係透過程式語言,例如:Solidity、Serpent、LLL、EtherScript、Sidechain等等來撰寫,其可包含各種不同的函式(Function)、事件(Event)、參數狀態等等,用以藉由執行指令來改變參數狀態或觸發事件。
以下配合圖式對本發明基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法做進一步說明,請先參閱「第1圖」,「第1圖」為
本發明基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統的系統方塊圖,此系統包含:揭露端主機110、身分驗證端主機120、收集公告端主機130及內容檢驗端主機140。其中,揭露端主機110用以傳送一次性錢包地址至身分驗證端主機120,並且使用一個收集公告端公鑰來加密揭露資料以生成第一加密資料,再使用所述一次性錢包地址在區塊鏈網路100發布(Deploy)第一加密資料,以便將所述第一加密資料寫入區塊鏈,以及透過一個內容檢驗端公鑰來加密檢驗資訊以生成第二加密資料,再透過所述一次性錢包地址將第二加密資料寫入區塊鏈。在實際實施上,所述收集公告端公鑰是指預先從收集公告端主機130獲得的公開金鑰(Public Key);所述內容檢驗端公鑰則是指預先從內容檢驗端主機140獲得的公開金鑰;所述一次性錢包地址可透過分層確定性錢包(Hierarchical Deterministic Wallet,HD Wallet)根據做為種子的主密鑰所生成,實際上,身分驗證端主機120會預先儲存主要錢包地址或身分資料,以便在身分驗證端主機120根據主要錢包地址或身分資料對揭露端主機110完成驗證且自揭露端主機110接收到一次性錢包地址時,建立一次性錢包地址與主要錢包地址或身分資料的對應關係,進而允許從所述對應關係中確認使用者的真實身分。另外,除了上述對「揭露資料」及「檢驗資訊」進行加密之外,還可以搭配使用密碼學中的鹽(salt)並進行加密以產生加密鹽,用以作為第一加密資料和第二加密資料的其中一部分,以便提高安全層級。
身分驗證端主機120用以自揭露端主機110接收一次性錢包地址,以及在偵測到一次性錢包地址將第一加密資料寫入區塊鏈時,將對應所述第一加密資料的第一有效標記寫入區塊鏈以作證第一加密資料來自所述一次性錢包地址,以及在偵測到所述一次性錢包地址將第二加密資料寫入區塊鏈時,
將對應此第二加密資料的第二有效標記寫入區塊鏈以作證第二加密資料來自所述一次性錢包地址。在實際實施上,由於揭露端主機110會如前所述,先傳送一次性錢包地址至身分驗證端主機120,所以身分驗證端主機120會在偵測之前,會先確認揭露端主機110是否具備資格,例如:透過比對主要錢包地址、實名驗證或其相似方式進行確認),若是,才會偵測此一次性錢包地址是否將第一加密資料寫入區塊鏈。另外,身分驗證端主機120產生的所述第一有效標記(針對揭露資料)可以使用JSON或其相似格式進行記錄,其內容如下:「{加密後的揭露資料之交易雜湊值:“0x04542......”,來源地址是否有效:True}」或者在智能合約(Smart Contract)內新增一筆記錄如下:「[揭露資料記錄號:13,來源地址是否有效:False]」
同樣地,身分驗證端主機120產生的所述第二有效標記(針對檢驗資訊)也使用JSON或其相似格式進行記錄,其內容如下:「{加密後的檢驗資訊之交易雜湊值:“0x04542......”,來源地址是否有效:True}」或者在智能合約內新增一筆記錄如下:「[檢驗資訊記錄號:13,來源地址是否有效:False]」
收集公告端主機130用以在區塊鏈上偵測到第一有效標記及其對應的第一加密資料時,自區塊鏈載入第一加密資料,並且通過收集公告端私鑰,即:收集公告端主機130本身的私密金鑰(Private Key)來解密以獲得揭露資料,
再將對應此第一加密資料的第一簽收標記寫入區塊鏈,以及將解密獲得的揭露資料寫入至區塊鏈成為公開揭露資料。在實際實施上,所述收集公告端私鑰與收集公告端公鑰相應,並且為收集公告端主機130的同一組金鑰對(Key Pairs),其可使用對稱式或非對稱式加密技術來實現。另外,所述揭露資料及公開揭露資料可包含具有唯一性的識別碼,用以提供收集公告端主機130在公開所述揭露資料成為公開揭露資料時,使內容檢驗端主機140根據識別碼辨識出對應且應檢驗的揭露資料。
內容檢驗端主機140用以在偵測到第二有效標記及其對應的第二加密資料時,自區塊鏈取得第二加密資料,並且通過內容檢驗端私鑰解密以獲得檢驗資訊,再將對應第二加密資料的第二簽收標記寫入至區塊鏈,以及在偵測到公開揭露資料時,自區塊鏈載入此公開揭露資料及檢驗資訊,用以驗證公開揭露資料與揭露資料的內容是否相同,並且將驗證結果嵌入與公開揭露資料相應的檢驗標記,再將此檢驗標記寫入區塊鏈。換句話說,所述檢驗資訊本身具備的功能與意義是用於檢驗公開揭露資料與最初揭露資料(即:揭露資料)的一致性。在實際實施上,收集公告端主機130產生的所述第一簽收標記(針對揭露資料)可以使用JSON或其相似格式進行記錄,其內容如下:「{加密後的揭露資料之交易雜湊值:“0x04542......”,解密是否成功:False}」或者在智能合約內新增一筆記錄如下:「[揭露資料記錄號:17,解密是否成功:True]」
同樣地,內容檢驗端主機140產生的所述第二簽收標記(針對檢驗資訊)也使用JSON或其相似格式進行記錄,其內容如下:「{加密後的檢驗資訊之交易雜湊值:“0x04542......”,來源地址是否有效:True}」或者在智能合約內新增一筆記錄如下:「[檢驗資訊記錄號:13,解密是否成功:True]」
相較於前述的有效標記主要是記錄來源地址是否有效,此處的簽收標記主要是記錄解密是否成功。另外,所述公開揭露資料與揭露資料是否一致的驗證方式包含全文比對、雜湊值檢驗及其相似者,舉例來說,可透過全文比對或雜湊值檢驗來實現驗證,甚至也可透過前述兩者的相似方式來進行驗證。不過,雖然前述以全文比對或雜湊值檢驗為例,但本發明並不以此為限,換句話說,任何能夠驗證揭露資料與揭露資料是否一致的方式,例如:核對和(Checksum)、訊息鑑別碼(Message Authentication Code,MAC)等等,用於檢驗資料一致性(Data Integrity)的各種演算法,皆不脫離本發明的應用範疇。
要補充說明的是,身分驗證端主機120雖然知道一次性錢包地址與真實身分的關係,但是無法得知一次性錢包地址與揭露資料和檢驗資訊的關係;收集公告端主機130雖然知道一次性錢包地址與揭露資料和檢驗資訊的關係,但是無法得知一次性錢包地址與真實身分的關係;內容檢驗端主機140雖然知道一次性錢包地址與揭露資料和檢驗資訊的關係,但是無法得知一次性錢包地址與真實身分的關係。另外,除了收集公告端主機130之外,其它如揭露端主機110、身分驗證端主機120及內容檢驗端主機140皆無法從區塊鏈上的第一加密
資料得知揭露資料;除了內容檢驗端主機140之外,其它如揭露端主機110、身分驗證端主機120及收集公告端主機130皆無法從區塊鏈上的第二加密資料得知檢驗資訊。如此一來,所述四方主機中沒有任何一方能夠單獨得知所有資料及其關係,但是藉由四方協同運作又能夠確認身分,進而達成同時兼顧匿名性與允許確認身分的目的。
特別要說明的是,在實際實施上,本發明所述的主機皆可利用各種方式來實現,包含軟體、硬體或其任意組合,例如,在某些實施方式中,各主機可利用軟體及硬體或其中之一來實現,除此之外,本發明亦可部分地或完全地基於硬體來實現,例如,系統中的一個或多個主機可以透過積體電路晶片、系統單晶片(System on Chip,SoC)、複雜可程式邏輯裝置(Complex Programmable Logic Device,CPLD)、現場可程式邏輯閘陣列(Field Programmable Gate Array,FPGA)等來實現。本發明可以是系統、方法及/或電腦程式。電腦程式可以包括電腦可讀儲存媒體,其上載有用於使處理器實現本發明的各個方面的電腦可讀程式指令,電腦可讀儲存媒體可以是可以保持和儲存由指令執行設備使用的指令的有形設備。電腦可讀儲存媒體可以是但不限於電儲存設備、磁儲存設備、光儲存設備、電磁儲存設備、半導體儲存設備或上述的任意合適的組合。電腦可讀儲存媒體的更具體的例子(非窮舉的列表)包括:硬碟、隨機存取記憶體、唯讀記憶體、快閃記憶體、光碟、軟碟以及上述的任意合適的組合。此處所使用的電腦可讀儲存媒體不被解釋為瞬時訊號本身,諸如無線電波或者其它自由傳播的電磁波、通過波導或其它傳輸媒介傳播的電磁波(例如,通過光纖電纜的光訊號)、或者通過電線傳輸的電訊號。另外,此處所描述的電腦可讀程式指令可以從電腦可讀儲存媒體下載到各個計算/處理設備,或者通過網路,例
如:網際網路、區域網路、廣域網路及/或無線網路下載到外部電腦設備或外部儲存設備。網路可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火牆、交換器、集線器及/或閘道器。每一個計算/處理設備中的網路卡或者網路介面從網路接收電腦可讀程式指令,並轉發此電腦可讀程式指令,以供儲存在各個計算/處理設備中的電腦可讀儲存媒體中。執行本發明操作的電腦程式指令可以是組合語言指令、指令集架構指令、機器指令、機器相關指令、微指令、韌體指令、或者以一種或多種程式語言的任意組合編寫的原始碼或目的碼(Object Code),所述程式語言包括物件導向的程式語言,如:Common Lisp、Python、C++、Objective-C、Smalltalk、Delphi、Java、Swift、C#、Perl、Ruby與PHP等,以及常規的程序式(Procedural)程式語言,如:C語言或類似的程式語言。所述電腦程式指令可以完全地在電腦上執行、部分地在電腦上執行、作為一個獨立的軟體執行、部分在客戶端電腦上部分在遠端電腦上執行、或者完全在遠端電腦或伺服器上執行。
請參閱「第2A圖」及「第2B圖」,「第2A圖」及「第2B圖」為本發明基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之方法的方法流程圖,應用在包含揭露端主機110、身分驗證端主機120、收集公告端主機130及內容檢驗端主機140的區塊鏈網路100,其步驟包括:揭露端主機110傳送一次性錢包地址至身分驗證端主機120,並且以收集公告端公鑰加密揭露資料以生成第一加密資料,再以該一次性錢包地址發布該第一加密資料,用以將該第一加密資料寫入區塊鏈(步驟210);當身分驗證端主機120偵測到該一次性錢包地址將該第一加密資料寫入該區塊鏈時,將對應該第一加密資料的第一有效標記寫入該區塊鏈,用以作證該第一加密資料來自該一次性錢包地址(步驟220);收集
公告端主機130在該區塊鏈上偵測到該第一有效標記及其對應的該第一加密資料時,自該區塊鏈載入該第一加密資料,並且通過收集公告端私鑰解密以獲得該揭露資料,再將對應該第一加密資料的第一簽收標記寫入該區塊鏈(步驟230);揭露端主機110透過內容檢驗端公鑰加密檢驗資訊以生成第二加密資料,再透過該一次性錢包地址將該第二加密資料寫入該區塊鏈(步驟240);身分驗證端主機120偵測到該一次性錢包地址將該第二加密資料寫入該區塊鏈時,將對應該第二加密資料的第二有效標記寫入該區塊鏈,用以作證該第二加密資料來自該一次性錢包地址(步驟250);內容檢驗端主機140偵測到該第二有效標記及其對應的該第二加密資料時,自該區塊鏈取得該第二加密資料,並且通過內容檢驗端私鑰解密以獲得該檢驗資訊,再將對應該第二加密資料的第二簽收標記寫入至該區塊鏈(步驟260);收集公告端主機130將解密獲得的該揭露資料寫入至該區塊鏈成為公開揭露資料(步驟270);以及內容檢驗端主機140偵測到該公開揭露資料時,自該區塊鏈載入該公開揭露資料及該檢驗資訊,用以驗證該公開揭露資料與該揭露資料的內容是否相同,以及將驗證結果嵌入與該公開揭露資料相應的檢驗標記並寫入該區塊鏈(步驟280)。透過上述步驟,即可透過揭露端主機110產生一次性錢包地址及搭配金鑰將揭露資料及檢驗資訊寫入區塊鏈,並且在寫入區塊鏈後,由身分驗證端主機120產生相應的有效標記、由收集公告端主機130產生相應揭露資料的簽收標記,以及由內容檢驗端主機140產生相應檢驗資訊的簽收標記,並且將產生的所述標記一併寫入區塊鏈,以便由四方執行交互驗證。
以下配合「第3A圖」至「第3D圖」以實施例的方式進行如下說明,如「第3A圖」至「第3D圖」所示意,「第3A圖」至「第3D圖」為應用本發
明進行匿名的投票或舉報之示意圖。當應用在匿名投票時,揭露端主機110的角色可視為投票人、身分驗證端主機120的角色可視為各投票所選務人員、收集公告端主機130的角色可視為選務中心、內容檢驗端主機140的角色可視為指定驗票人員、揭露資料為選舉人投票,以及檢驗資訊為與揭露資料相同的內容、根據揭露資料進行雜湊演算所得到的雜湊值或任何能判斷檢驗資訊與揭露資料的內容是否一致的資訊等等。另外,各端主機的操作、確認資訊與寫入行為可透過裝置或系統自動化,例如:物聯網(Internet of Thing,IoT)投票機或專用投票的行動程式(APP)。以下為進行匿名投票的流程步驟:
1.如「第3A圖」所示意,揭露端主機110將欲使用的一次性錢包地址傳送至身分驗證端主機120。此步驟相當於投票人於投票所進行身分檢驗後,將欲使用的一次性錢包地址,告知投票所選務人員。
2.如「第3B圖」所示意,揭露端主機110使用收集公告端公鑰來加密揭露資料311以生成第一加密資料310,再以一次性錢包地址發布此第一加密資料310,用以將第一加密資料寫入區塊鏈300。另一方面,揭露端主機110還會如「第3C圖」所示意,使用內容檢驗端公鑰加密檢驗資訊411以生成第二加密資料410,再透過一次性錢包地址將所述第二加密資料410寫入區塊鏈300。在實際實施上,揭露資料311和檢驗資訊411可包含相同的識別碼,以便內容檢驗端主機140根據此識別碼辨識出對應且應檢驗的揭露資料。另外,寫入區塊鏈300的方式可透過將第一加密資料310及第二加密資料410寫入智能合約來實現,而為了提高加密安全性,還可將密碼學的鹽加密成為加密鹽(312、412),並且使其成為所述第一加密資料310及第二加密資料410的一部分以供解密之用。此步驟相當於投票人使用選務中心公鑰(如:收集公告端公鑰)加密其投票內容
(含識別碼),並且將加密結果寫入智能合約(如:投票所收集合約)。同時允許使用多名指定驗票人員公鑰(如:內容檢驗端公鑰)加密相同內容,寫入投票所收集合約。
3.身分驗證端主機120在偵測到一次性錢包地址將第一加密資料310寫入區塊鏈300時,將對應所述第一加密資料310的第一有效標記320寫入區塊鏈300,用以作證第一加密資料310來自一次性錢包地址。另一方面,身分驗證端主機120在偵測到一次性錢包地址將第二加密資料410寫入區塊鏈300時,將對應所述第二加密資料410的第二有效標記420寫入區塊鏈300,用以作證第二加密資料410來自一次性錢包地址。此步驟相當於各投票所選務人員在觀測到投票人的加密結果(如:第一加密資料310與第二加密資料410)寫入投票所收集合約時,將對應的有效標記(如:第一有效標記320及第二有效標記420)寫入投票所收集合約中。
4.當收集公告端主機130在區塊鏈300上偵測到第一有效標記320及其對應的第一加密資料310時,自區塊鏈300載入第一加密資料310,並且通過收集公告端私鑰來解密已經載入的第一加密資料310以獲得揭露資料311,再將對應所述第一加密資料310的第一簽收標記330寫入區塊鏈300。此步驟相當於選務中心觀測到有效標記與對應的加密結果時,從區塊鏈上取得加密結果,並且使用選務中心私鑰(如:收集公告端私鑰)解密以得到投票內容與識別碼,再將對應的簽收標記(如:第一簽收標記330)寫入投票所收集合約中。
5.如「第3C圖」所示意,內容檢驗端主機140在偵測到第二有效標記420及其對應的第二加密資料410時,自區塊鏈300取得第二加密資料410,並且通過內容檢驗端私鑰來解密以獲得檢驗資訊411,再將對應所述第二加密資
料410的第二簽收標記430寫入至區塊鏈300。在實際實施上,內容檢驗端主機140的數量可以一個或多個。此步驟相當於多位指定驗票人員在觀測到有效標記與對應的加密結果時,各自從區塊鏈上取得加密結果,並且使用各自的私密金鑰解密以得到檢驗資訊與識別碼,再將對應的簽收標記(如:第二簽收標記430)寫入投票所收集合約中。
6.如「第3D圖」所示意,收集公告端主機130將解密獲得的揭露資料311寫入至區塊鏈300成為公開揭露資料510。此步驟相當於選務中心將收到的各投票內容(含識別碼)寫入至另一智能合約,如:公開驗票合約。
7.內容檢驗端主機140在偵測到公開揭露資料510時,自區塊鏈300載入此公開揭露資料510及其相應的檢驗資訊411,用以驗證公開揭露資料510與揭露資料311的內容是否相同,以及將驗證結果嵌入與公開揭露資料510相應的檢驗標記520並且寫入區塊鏈300。此步驟相當於各指定驗票人員透過識別碼,在公開驗票合約中確認到自己應檢驗之投票內容,檢驗是否與自己收到的檢驗資訊中的全文一致,將檢驗結果對公開驗票合約寫入承認標記。
如此一來,各投票內容都應有多個指定驗票人員寫入的檢驗標記才視為有效。選務中心後續統計有效的投票內容並完成選舉計票。選務中心可與多個投票所、大量分散的指定驗票人員合作,並布署多個投票所收集合約與多個公開驗票合約,最後統計所有成立的公開驗票合約,統計其投票內容作為投票結果。
接下來,當應用在匿名舉報時,揭露端主機110的角色可視為舉報人、身分驗證端主機120的角色可視為指定身份機構(如:戶政事務系統)、收集公告端主機130的角色可視為檢舉系統、內容檢驗端主機140可視為地方行
政或警消系統、揭露資料為檢舉內容,以及檢驗資訊為檢舉內容之雜湊值。各端主機的操作、確認資訊與寫入行為可透過裝置或系統自動化,例如:舉報網頁系統或行動應用程式。實際上,應用在匿名舉報與應用在匿名投票,兩者大同小異,其差異僅在於各端主機的角色及揭露資料的內容不同。因此,以下同樣以「第3A圖」至「第3D圖」說明進行匿名舉報的流程步驟:
1.如「第3A圖」所示意,揭露端主機110同樣先將欲使用的一次性錢包地址傳送至身分驗證端主機120。此步驟相當於舉報人於戶政事務系統進行身分檢驗後,將欲使用的一次性錢包地址,告知戶政事務系統。
2.如「第3B圖」所示意,揭露端主機110使用收集公告端公鑰來加密揭露資料311(含識別碼)以生成第一加密資料310(可包含加密鹽312),再以一次性錢包地址發布此第一加密資料310,用以將第一加密資料310寫入區塊鏈300。另一方面,如「第3C圖」所示意,揭露端主機110還會使用內容檢驗端公鑰加密檢驗資訊411(含相同的識別碼)以生成第二加密資料410(可包含不同的加密鹽412),再透過一次性錢包地址將所述第二加密資料410寫入區塊鏈300。此步驟相當於舉報人用檢舉系統公鑰(如:收集公告端公鑰)來加密其檢舉內容(含識別碼)與加密鹽,再將加密結果寫入區塊鏈的一筆交易,以及舉報人以檢舉內容計算產生檢舉雜湊值。接著,舉報人使用地方行政或警消系統公鑰(如:內容檢驗端公鑰)加密其檢舉雜湊值、識別碼及加密鹽,並且將加密結果寫入區塊鏈的一筆交易。
3.身分驗證端主機120在偵測到一次性錢包地址將第一加密資料310寫入區塊鏈300時,將對應所述第一加密資料310的第一有效標記320寫入區塊鏈300,用以作證第一加密資料310來自一次性錢包地址。另一方面,身分驗
證端主機120在偵測到一次性錢包地址將第二加密資料410寫入區塊鏈300時,將對應所述第二加密資料410的第二有效標記420寫入區塊鏈300,用以作證第二加密資料410來自一次性錢包地址。此步驟相當於戶政事務系統在觀測到舉報人的加密結果(如:第一加密資料310與第二加密資料410)之交易被寫入區塊鏈時,將註明加密結果的交易雜湊值之有效標記(如:第一有效標記320及第二有效標記420)寫入區塊鏈300。
4.當收集公告端主機130在區塊鏈300上偵測到第一有效標記320及其對應的第一加密資料310時,自區塊鏈300載入第一加密資料310,以便通過收集公告端私鑰來解密已經載入的第一加密資料310以獲得揭露資料311,再將對應所述第一加密資料310的第一簽收標記330寫入區塊鏈300。此步驟相當於檢舉系統觀測到有效標記與對應的加密結果時,從區塊鏈上取得加密結果,用檢舉系統私鑰(如:收集公告端私鑰)解密,得到檢舉內容與識別碼,並且將註明加密結果的交易雜湊值之簽收標記(如:第一簽收標記330)寫入區塊鏈300。
5.如「第3C圖」所示意,內容檢驗端主機140在偵測到第二有效標記420及其對應的第二加密資料410時,自區塊鏈300取得第二加密資料410,並且通過內容檢驗端私鑰來解密以獲得檢驗資訊411,再將對應所述第二加密資料410的第二簽收標記430寫入至區塊鏈300。在實際實施上,內容檢驗端主機140的數量可以一個或多個。此步驟相當於地方行政或警消系統觀測到有效標記與對應的加密結果時,從區塊鏈上取得加密結果,用地方行政或警消系統私鑰來解密以得到雜湊值與識別碼,再將註明加密結果的交易雜湊值之簽收標記(如:第二簽收標記430)寫入區塊鏈300。
6.如「第3D圖」所示意,收集公告端主機130將解密獲得的揭露資料311寫入至區塊鏈300成為公開揭露資料510。此步驟相當於檢舉系統將收到的檢舉內容(含識別碼)寫入區塊鏈的一筆交易,成為公開檢舉內容(如:公開揭露資料)。
7.內容檢驗端主機140在偵測到公開揭露資料510時,自區塊鏈300載入此公開揭露資料510及其相應的檢驗資訊411,用以驗證公開揭露資料510與揭露資料311的內容是否相同,以及將驗證結果嵌入與公開揭露資料510相應的檢驗標記520並且寫入區塊鏈300。此步驟相當於地方行政或警消系統透過識別碼,確認到自己應檢驗之檢舉內容,檢驗是否其雜湊計算的雜湊值與自己收到的檢驗資訊中的檢舉雜湊值一致,將註明公開檢舉內容的交易雜湊值之檢驗標記寫入區塊鏈的一筆交易。
如此一來,各檢舉內容都應有地方行政或警消系統寫入的檢驗標記才視為有效。檢舉系統後續可依被證實的檢舉內容進行對應行政處理,正常流程無須得知檢舉人真實身份;僅在惡意濫用舉報之情形,可能透過跨機構向戶政事務系統要求究責,以避免同機構內實名制舉報容易洩露檢舉人資訊給被檢舉方之問題,區分核身(身分)與核實(內容)之權責。
綜上所述,可知本發明與先前技術之間的差異在於透過揭露端主機產生一次性錢包地址及搭配金鑰將揭露資料及檢驗資訊寫入區塊鏈,並且在寫入區塊鏈後,由身分驗證端主機產生相應的有效標記、由收集公告端主機產生相應揭露資料的簽收標記,以及由內容檢驗端主機產生相應檢驗資訊的簽收標記,並且將產生的所述標記一併寫入區塊鏈,以便由四方執行交互驗證,藉
由此一技術手段可以解決先前技術所存在的問題,進而達成提高匿名性且允許確認身分之技術功效。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
100:區塊鏈網路
110:揭露端主機
120:身分驗證端主機
130:收集公告端主機
140:內容檢驗端主機
Claims (10)
- 一種基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統,該系統包含: 一揭露端主機,用以傳送一一次性錢包地址,並且以一收集公告端公鑰加密一揭露資料以生成一第一加密資料,再以該一次性錢包地址發布該第一加密資料,將該第一加密資料寫入一區塊鏈,以及透過一內容檢驗端公鑰加密一檢驗資訊以生成一第二加密資料,再透過該一次性錢包地址將該第二加密資料寫入該區塊鏈; 一身分驗證端主機,用以自該揭露端主機接收該一次性錢包地址,以及在偵測到該一次性錢包地址將該第一加密資料寫入該區塊鏈時,將對應該第一加密資料的一第一有效標記寫入該區塊鏈以作證該第一加密資料來自該一次性錢包地址,以及在偵測到該一次性錢包地址將該第二加密資料寫入該區塊鏈時,將對應該第二加密資料的一第二有效標記寫入該區塊鏈以作證該第二加密資料來自該一次性錢包地址; 一收集公告端主機,用以在該區塊鏈上偵測到該第一有效標記及其對應的該第一加密資料時,自該區塊鏈載入該第一加密資料,並且通過一收集公告端私鑰解密以獲得該揭露資料,再將對應該第一加密資料的一第一簽收標記寫入該區塊鏈,以及將解密獲得的該揭露資料寫入至該區塊鏈成為一公開揭露資料;以及 一內容檢驗端主機,用以在偵測到該第二有效標記及其對應的該第二加密資料時,自該區塊鏈取得該第二加密資料,並且通過一內容檢驗端私鑰解密以獲得該檢驗資訊,再將對應該第二加密資料的一第二簽收標記寫入至該區塊鏈,以及在偵測到該公開揭露資料時,自該區塊鏈載入該公開揭露資料及該檢驗資訊,用以驗證該公開揭露資料與該揭露資料的內容是否相同,並且將驗證結果嵌入與該公開揭露資料相應的一檢驗標記,再將該檢驗標記寫入該區塊鏈。
- 如請求項1之基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統,其中該一次性錢包地址係由該揭露端主機透過分層確定性錢包(Hierarchical Deterministic Wallet, HD Wallet)根據做為種子的主密鑰所生成,以及該身分驗證端主機預先儲存一主要錢包地址或一身分資料,當該身分驗證端主機根據該主要錢包地址或該身分資料對該揭露端主機完成驗證,並且自該揭露端主機接收到該一次性錢包地址時,建立該一次性錢包地址與該主要錢包地址或該身分資料的對應關係。
- 如請求項1之基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統,其中所述第一有效標記、所述第二有效標記、所述第一簽收標記及所述第二簽收標記允許記錄在相同的一智能合約或不同的多筆區塊鏈交易記錄,所述第一有效標記及第一簽收標記包含加密後的該揭露資料之交易雜湊值及解密是否成功的判斷訊息,所述第二有效標記及第二簽收標記包含加密後的該檢驗資訊之交易雜湊值及來源地址是否存在的判斷訊息。
- 如請求項1之基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統,其中該揭露資料及該公開揭露資料包含一識別碼,用以提供該收集公告端主機在公開該揭露資料成為該公開揭露資料時,使該內容檢驗端主機根據該識別碼辨識出對應且應檢驗的該揭露資料。
- 如請求項1之基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統,其中該公開揭露資料與該揭露資料是否一致的驗證方式包含全文比對、雜湊值檢驗及其相似者。
- 一種基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之方法,應用在包含一揭露端主機、一身分驗證端主機、一收集公告端主機及一內容檢驗端主機的一區塊鏈網路,其步驟包括: 該揭露端主機傳送一一次性錢包地址至該身分驗證端主機,並且以一收集公告端公鑰加密一揭露資料以生成一第一加密資料,再以該一次性錢包地址發布該第一加密資料,用以將該第一加密資料寫入一區塊鏈; 當該身分驗證端主機偵測到該一次性錢包地址將該第一加密資料寫入該區塊鏈時,將對應該第一加密資料的一第一有效標記寫入該區塊鏈,用以作證該第一加密資料來自該一次性錢包地址; 該收集公告端主機在該區塊鏈上偵測到該第一有效標記及其對應的該第一加密資料時,自該區塊鏈載入該第一加密資料,並且通過一收集公告端私鑰解密以獲得該揭露資料,再將對應該第一加密資料的一第一簽收標記寫入該區塊鏈; 該揭露端主機透過一內容檢驗端公鑰加密一檢驗資訊以生成一第二加密資料,再透過該一次性錢包地址將該第二加密資料寫入該區塊鏈; 該身分驗證端主機偵測到該一次性錢包地址將該第二加密資料寫入該區塊鏈時,將對應該第二加密資料的一第二有效標記寫入該區塊鏈,用以作證該第二加密資料來自該一次性錢包地址; 該內容檢驗端主機偵測到該第二有效標記及其對應的該第二加密資料時,自該區塊鏈取得該第二加密資料,並且通過一內容檢驗端私鑰解密以獲得該檢驗資訊,再將對應該第二加密資料的一第二簽收標記寫入至該區塊鏈; 該收集公告端主機將解密獲得的該揭露資料寫入至該區塊鏈成為一公開揭露資料;以及 該內容檢驗端主機偵測到該公開揭露資料時,自該區塊鏈載入該公開揭露資料及該檢驗資訊,用以驗證該公開揭露資料與該揭露資料的內容是否相同,以及將驗證結果嵌入與該公開揭露資料相應的一檢驗標記並寫入該區塊鏈。
- 如請求項6之基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之方法,其中該一次性錢包地址係透過分層確定性錢包(Hierarchical Deterministic Wallet, HD Wallet)根據做為種子的主密鑰所生成,以及該身分驗證端主機預先儲存一主要錢包地址或一身分資料,當該身分驗證端主機根據該主要錢包地址或該身分資料對該揭露端主機完成驗證,並且自該揭露端主機接收到該一次性錢包地址時,建立該一次性錢包地址與該主要錢包地址或該身分資料的對應關係。
- 如請求項6之基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之方法,其中該揭露資料及該公開揭露資料包含一識別碼,用以提供該收集公告端主機在公開該揭露資料成為該公開揭露資料時,使該內容檢驗端主機根據該識別碼辨識出對應且應檢驗的該揭露資料。
- 如請求項6之基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之方法,其中所述第一有效標記、所述第二有效標記、所述第一簽收標記及所述第二簽收標記允許記錄在相同的一智能合約或不同的多筆區塊鏈交易記錄,所述第一有效標記及第一簽收標記包含加密後的該揭露資料之交易雜湊值及解密是否成功的判斷訊息,所述第二有效標記及第二簽收標記包含加密後的該檢驗資訊之交易雜湊值及來源地址是否存在的判斷訊息。
- 如請求項6之基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之方法,其中該公開揭露資料與該揭露資料是否一致的驗證方式包含全文比對、雜湊值檢驗及其相似者。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109145456A TWI783330B (zh) | 2020-12-22 | 2020-12-22 | 基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109145456A TWI783330B (zh) | 2020-12-22 | 2020-12-22 | 基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202226783A TW202226783A (zh) | 2022-07-01 |
TWI783330B true TWI783330B (zh) | 2022-11-11 |
Family
ID=83437162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109145456A TWI783330B (zh) | 2020-12-22 | 2020-12-22 | 基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI783330B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150356555A1 (en) * | 2014-06-04 | 2015-12-10 | Antti Pennanen | System and method for executing financial transactions |
EP3073670A1 (en) * | 2015-03-27 | 2016-09-28 | BGC International, Inc. | A system and a method for personal identification and verification |
TW201926155A (zh) * | 2017-12-01 | 2019-07-01 | 鯨鏈科技股份有限公司 | 智能合約系統、合約制訂方法與電腦可讀取儲存裝置 |
-
2020
- 2020-12-22 TW TW109145456A patent/TWI783330B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150356555A1 (en) * | 2014-06-04 | 2015-12-10 | Antti Pennanen | System and method for executing financial transactions |
EP3073670A1 (en) * | 2015-03-27 | 2016-09-28 | BGC International, Inc. | A system and a method for personal identification and verification |
TW201926155A (zh) * | 2017-12-01 | 2019-07-01 | 鯨鏈科技股份有限公司 | 智能合約系統、合約制訂方法與電腦可讀取儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW202226783A (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109067801B (zh) | 一种身份认证方法、身份认证装置及计算机可读介质 | |
CN107506661B (zh) | 一种基于区块链的生成房屋历史记录的方法 | |
CN109978688A (zh) | 分布式共识***之访问控制方法及其契约产生器与服务器 | |
CN105659559B (zh) | 验证远程服务器的安全性 | |
CN109639714A (zh) | 一种基于区块链的物联网身份注册与验证方法 | |
CN109905360B (zh) | 数据验证方法及终端设备 | |
CN110519260A (zh) | 一种信息处理方法及信息处理装置 | |
CN111538784A (zh) | 一种基于区块链的数字资产交易方法、装置及存储介质 | |
US11600129B2 (en) | Electronic voting system and method based on homogeneous cryptography | |
EP4092984A1 (en) | Data processing method and apparatus, device and medium | |
CN102495979B (zh) | 数字资源交易中实现可信计数的*** | |
TWI644556B (zh) | 具隱密性的kyc資料共享系統及其方法 | |
TWI622949B (zh) | 具多重密鑰的kyc資料標記之爭議救濟系統及其方法 | |
KR20220109099A (ko) | 블록체인 기반으로 데이터 기밀성과 무결성을 강화한 전력 중개 방법 및 전력 중개 시스템 | |
CN115147975B (zh) | 一种基于区块链的加密网络投票方法 | |
KR100912532B1 (ko) | 신뢰 컴퓨팅 환경에서 각 참여자가 상호 보증 기능을 갖는인터넷 전자투표 방법 및 시스템 | |
TWI755210B (zh) | 基於區塊鏈的允許確認身分之匿名揭露暨多對多承認之系統及其方法 | |
CN112910641A (zh) | 用于跨链交易监管的验证方法、装置、中继链节点及介质 | |
TWI644270B (zh) | 具監管機制的帳聯網系統及其實施方法 | |
TWI783330B (zh) | 基於區塊鏈的允許確認身分之匿名揭露暨四方驗證之系統及其方法 | |
CN112507369B (zh) | 基于区块链的业务处理方法、装置、可读介质及电子设备 | |
CN115225346A (zh) | 一种面向征信大数据领域的数据存证*** | |
Zhu et al. | Research on Modify Protection of Metrology Electronic Certificate Based on Blockchain Technology | |
CN110766400B (zh) | 基于区块链的交易记录处理方法、记账节点及介质 | |
CN112784249A (zh) | 实现无标识情形下进行移动终端认证处理的方法、***、处理器及其计算机可读存储介质 |