陳琳韋婭
(中國農(nóng)業(yè)銀行湖南省分行科技與產(chǎn)品管理部,湖南 長沙 410000)
區(qū)塊鏈系統(tǒng)中使用哈希函數(shù)輸出的散列來表示區(qū)塊鏈的狀態(tài),它為區(qū)塊鏈的不可篡改性提供了密碼學上的保障。該文設計了基于同態(tài)變色龍哈希的陷門分配和恢復方案。它使用變色龍哈希函數(shù)取代區(qū)塊鏈中的普通哈希函數(shù)(sha256),既可以利用哈希函數(shù)的特性保障區(qū)塊鏈的安全,又可以利用陷門對區(qū)塊鏈進行編輯。而加入了同態(tài)性的變色龍哈希函數(shù)使數(shù)據(jù)的處理者在對陷門進行管理時只能接觸到加密處理后的數(shù)據(jù),無法訪問數(shù)據(jù)本身,實現(xiàn)了分離處理權和所有權的目標,保護了數(shù)據(jù)隱私,提高了數(shù)據(jù)的安全性。
代數(shù)領域的同態(tài)性可以為4種,加法同態(tài)、乘法同態(tài)、減法同態(tài)和除法同態(tài)。Ron Rivest和Leonard Adleman在1978年率先提出了同態(tài)加密的概念。
要滿足加法同態(tài)加密函數(shù)就需要滿足()+()=(+)。其中,()、()為自變量函數(shù);(+)為自變量和的函數(shù)。
基于復合剩余類困難問題的Paillier 算法是對加法同態(tài)的。滿足乘法同態(tài)的加密函數(shù)需要滿足()×()=(×)。其中,(×)為自變量積的函數(shù)。
基于大素數(shù)的分解因子難題的RSA算法對乘法操作是同態(tài)的。一個同時滿足加法同態(tài)和乘法同態(tài)的同態(tài)加密算法稱為代數(shù)同態(tài),也叫全同態(tài)。
可以將變色龍哈希函數(shù)的安全性規(guī)約到密碼學體系的數(shù)學難題,解決算法有基于離散對數(shù)困難性的算法、基于大整數(shù)分解困難性的算法。密碼學中的離散對數(shù)問題如下:限定循環(huán)群={g|=0,1,2,…}及其生成元和階=||(為次方,為整數(shù));給定整數(shù),計算元素=很容易(為次方,為整數(shù));給定元素,計算整數(shù)使=非常困難,不存在多項式時間算法。
選擇系統(tǒng)安全參數(shù),根據(jù)系統(tǒng)安全參數(shù)選取素數(shù)、,令素數(shù)如公式(1)所示。
選取1個階為、生成元為的GDH群。GDH群對DDH問題是簡單的,對CDH問題是困難的。
基于系統(tǒng)的公開參數(shù),計算消息的變色龍哈希值,如公式(3)所示。
式中:為信息,∈Z
其中,滿足公式(5)。
該算法滿足以下4個性質(zhì):1) 有效計算。對給定的公鑰、私鑰、消息以及隨機值對(,)來說,在多項式時間內(nèi)可以計算哈希值H(,)。2) 抗碰撞性。沒有一個有效的多項式時間算法在僅輸入公鑰后就可以找到消息和隨機數(shù)對(,)和(,)((),使公式(6)成立)。3) 陷門沖突。能找到一個有效的概率多項式算法,在輸入陷門密鑰時,任何一對消息、隨機數(shù)對(,)和任意的消息都能找到隨機數(shù),使公式(6)成立且滿足公式(7)。4) 一致性。從隨機選擇的中無法得到任何關于的信息。
普通區(qū)塊鏈的區(qū)塊鏈接方式通常由1個三元組<,,>組成(為父區(qū)塊的交易哈希值,∈{0,1};為交易根哈希值,∈{0,1};為算法計數(shù)器,∈)。當?shù)V工成功地計算出解密該區(qū)塊相關數(shù)學題的答案后,便根據(jù)相應的路由分配算法通過廣播的形式在全網(wǎng)廣播新的區(qū)塊。每個收到新區(qū)塊的節(jié)點都會根據(jù)哈希算法:{0,1}{0,1}(變色龍哈希函數(shù))對區(qū)塊的有效性進行驗證,有效的區(qū)塊須滿足條件((,,)<)(<)=1。
不同于普通區(qū)塊鏈是固定的哈希依賴關系,可編輯區(qū)塊鏈的每個區(qū)塊單元之間有1把可以打開的“鎖”。如果沒有對應的“鑰匙”很難找到哈希沖突,那么該區(qū)塊鏈是不可變的。但是擁有“鑰匙”就可以有效地找到任意內(nèi)容的哈希沖突,從而替換區(qū)塊的內(nèi)容。可編輯區(qū)塊鏈的區(qū)塊鏈接由1個四元組<,,(,)>組成((為哈希值;為對比字符)。
可編輯區(qū)塊鏈一共包括4個算法(CH=(HGen,Hash,HVer,HCol)):1) 密鑰生成算法HGen。輸入安全參數(shù),輸出公鑰h、陷門t。該過程如公式(8)所示。2) 哈希生成算法Hash。輸入公鑰h、消息,輸出哈希值、對比字符串。該過程如公式(9)所示。3) 有效性驗證算法HVer。輸入公鑰h、消息、哈希值以及對比字符串,輸出驗證結果。該過程如公式(10)所示。4) 哈希碰撞算法HCol。輸入陷門t、哈希值、消息、對比字符串以及消息,輸出對比字符串。該過程如公式(11)所示且滿足公式(12)。
可編輯區(qū)塊鏈的交易和出塊過程與普通區(qū)塊鏈一樣,當?shù)V工利用哈希生成算法挖到礦后,就在全網(wǎng)廣播新的區(qū)塊。每個收到新區(qū)塊的節(jié)點都會根據(jù)有效性驗證算法對區(qū)塊的有效性進行驗證。驗證結果是一個布爾值,當=1時,表示區(qū)塊有效;當=0時,表示區(qū)塊無效。此時的變色龍哈希算法對沒有陷門的節(jié)點來說,與傳統(tǒng)的哈希算法并沒有區(qū)別,仍然是抗碰撞的。此時,有效區(qū)塊須滿足公式(13)。
式中::{0,1}*{0,1}為變色龍哈希函數(shù),∈,∈。
當可編輯區(qū)塊鏈有編輯需求時,陷門持有者利用密鑰生成算法生成的陷門可以對區(qū)塊進行操作。這時從問題區(qū)塊到其父區(qū)塊之間的“鎖”是可以打開的,那么任何編輯操作都是可能的(刪除、修改和插入任意數(shù)量的區(qū)塊)。當編輯者利用哈希碰撞算法人為地制造出哈希沖突后,在全網(wǎng)廣播新的區(qū)塊,每個收到新區(qū)塊的節(jié)點都會對新的區(qū)塊進行驗證。此時,有效的區(qū)塊除了滿足公式(13)以外,還需要滿足公式(12)。
如果陷門丟失或破壞,那么可編輯的區(qū)塊鏈將失去可編輯的特性,還原為不可變的普通區(qū)塊鏈。
為了提高實際生產(chǎn)環(huán)境內(nèi)容管理的能力,解決當前區(qū)塊鏈系統(tǒng)中內(nèi)容缺乏監(jiān)管的問題,突破普通區(qū)塊鏈錯誤數(shù)據(jù)不可變的局限性,提高系統(tǒng)應對復雜環(huán)境的靈活性,該文設計了基于雙鏈的可編輯區(qū)塊鏈系統(tǒng)。采用普通區(qū)塊鏈和可編輯區(qū)塊鏈相結合的方式對陷門進行驗證,避免出現(xiàn)陷門持有者故意給出錯誤的分片破壞陷門恢復、信道傳輸過程中惡意節(jié)點篡改陷門分片等現(xiàn)象。同時,各個陷門分片的持有者線下生成隨機數(shù)作為陷門分片,避免出現(xiàn)中心化分發(fā)者權利過大的現(xiàn)象,并且該方案減少了因建立安全信道和安全多方計算而產(chǎn)生的計算開銷過大的問題。
首先設置了2條不斷增長的鏈:其中一條是區(qū)塊內(nèi)容不可改的監(jiān)管鏈BC,另外一條是區(qū)塊內(nèi)容可修改的交易鏈RBC。普通區(qū)塊鏈使用普通哈希函數(shù),可編輯區(qū)塊鏈使用公鑰動態(tài)更新的變色龍哈希函數(shù)。
普通節(jié)點的權限如下:1) 擁有自身區(qū)塊鏈地址的公私鑰對可以在區(qū)塊鏈上發(fā)起交易、觸發(fā)普通交易相關的智能合約。2) 知道自身所在區(qū)塊鏈的哈希公鑰可以通過區(qū)塊鏈的哈希函數(shù)驗證區(qū)塊內(nèi)容,也可以競爭礦工角色并打包區(qū)塊。這類節(jié)點分別獨立存在于監(jiān)管鏈BC和交易鏈RBC中,2條鏈的普通節(jié)點相互之間并不存在關聯(lián)。
特權節(jié)點是系統(tǒng)的管理員節(jié)點,在初始化時從特權節(jié)點池中預選出個特權節(jié)點。特權節(jié)點可以對監(jiān)管鏈BC和交易鏈RBC進行操作,而特權節(jié)點池中暫時沒有當選為特權節(jié)點的其他節(jié)點則成為監(jiān)管鏈BC上的普通節(jié)點。特權節(jié)點的主要工作如下:1) 每個特權節(jié)點P負責管理交易鏈RBC的變色龍哈希陷門的分片x,包括陷門分片x的生成和陷門的恢復。2) 特權節(jié)點P需要參與交易鏈RBC的區(qū)塊內(nèi)容編輯共識,在認可新的區(qū)塊內(nèi)容后,通過變色龍哈希函數(shù)H計算區(qū)塊哈希值所對應的哈希沖突,達到編輯區(qū)塊鏈內(nèi)容的目的。3) 特權節(jié)點在身份驗證智能合約SC上可以發(fā)起并參與仲裁投票,從而在系統(tǒng)中剔除存在惡意操作的可疑特權節(jié)點。
交易鏈RBC上的創(chuàng)世區(qū)塊RB由特權節(jié)點初始化,并且規(guī)定交易鏈上有且僅有創(chuàng)世區(qū)塊RB是不可更改的。RB區(qū)塊體中包括鏈接到監(jiān)管鏈BC上的中心管理智能合約SC的地址。該合約上包括監(jiān)管鏈BC上所有涉及交易鏈RBC區(qū)塊編輯操作的合約地址,包括身份驗證智能合約SC、密鑰管理智能合約SC以及陷門驗證智能合約SC的地址。交易鏈RBC上每個區(qū)塊RB的變色龍哈希函數(shù)H的公鑰y以密鑰管理智能合約SC所發(fā)布最新的哈希公鑰為準。
監(jiān)管鏈BC的密鑰管理智能合約SC上生成交易鏈RBC的變色龍哈希公鑰以及陷門私鑰。具體的變色龍陷門生成方法如下:首先,根據(jù)系統(tǒng)安全參數(shù)選取滿足=+1的2個大素數(shù)、(為任意整數(shù))和變色龍哈希函數(shù)的基數(shù)(∈Z)在全網(wǎng)公開。每個特權節(jié)點P私下選取隨機數(shù)x(x∈Z)作為陷門的分片,并按公式(14)~公式(15)計算公鑰分片y。
為了保證陷門分片x不暴露,公鑰的具體生成過程如下:第一個特權節(jié)點在密鑰管理智能合約SC上發(fā)布第一個公鑰分片,如公式(16)所示。第二個特權節(jié)點根據(jù)密鑰管理智能合約SC上最新的公鑰分片計算,如公式(17)所示。
根據(jù)該方法類推,第個特權節(jié)點根據(jù)公鑰分片y來計算得到最新的公鑰分片y,直至所有特權節(jié)點完成公鑰的合成操作,如公式(18)所示。
由離散對數(shù)難題的難解性可知,節(jié)點在公網(wǎng)上已知公鑰和參數(shù)、以及,并不能由此算出任意陷門的分片x和陷門,因此可以保證陷門的保密性。。
在監(jiān)管鏈BC的密鑰管理智能合約SC公布了交易鏈RBC的最新變色龍哈希函數(shù)的公鑰后,交易鏈RBC里的普通節(jié)點就可以配合隨機數(shù)對區(qū)塊的交易內(nèi)容(∈Z*)進行打包,計算得到滿足計算難度的區(qū)塊的哈希值。所用到的哈希算法為變色龍哈希函數(shù)H,如公式(19)所示。
交易鏈RBC上的礦工計算出區(qū)塊內(nèi)容、對應的哈希值之后,根據(jù)哈希函數(shù)的抗碰撞性可知,沒有一個有效的方法可以在僅輸入公鑰后就找到消息和隨機數(shù)對(,)、(,)。其中,使公式(20)成立。
首先,交易鏈RBC上的某個區(qū)塊RB通過投票共識確定需要將內(nèi)容修改為。其次,每個特權節(jié)點需要在線下廣播該區(qū)塊的陷門分片。由于區(qū)塊鏈具有公開透明性,因此根據(jù)觸發(fā)密鑰管理智能合約SC生成公鑰分片y的記錄可知,其觸發(fā)節(jié)點對應的身份為P。于是當廣播收到特權節(jié)點P的陷門分片后,將其記為x。
當特權節(jié)點收到-1個陷門分片后,就可以利用同態(tài)變色龍哈希函數(shù)的同態(tài)性對陷門的正確性進行驗證。當滿足公式(21)時,就可以認為節(jié)點收到的分片正確。
合約根據(jù)密鑰管理智能合約SC中記錄的公鑰分片y的值來計算公式(21)右式的值,如公式(27)所示。
根據(jù)y的值計算得出公式(28)。
驗證通過后,特權節(jié)點按照公式(2)合成的正確陷門,利用陷門來計算哈希沖突,從而將編輯區(qū)塊鏈內(nèi)容為。其基本原理如公式(27)所示。
根據(jù)公式(27)可以得到公式(28)。
因此,特權節(jié)點可以計算出變色龍哈希的沖突值,如公式(29)所示。
最后,特權節(jié)點需要在監(jiān)管鏈BC的中心管理智能合約SC上公布交易鏈RBC當前所修正的區(qū)塊RB最新的隨機數(shù)以及內(nèi)容的哈希值作為存證。使交易鏈RBC能夠確定最新的區(qū)塊內(nèi)容為目標內(nèi)容??紤]不斷增長的區(qū)塊鏈存在性能問題,實際內(nèi)容只在交易鏈RBC廣播,監(jiān)管鏈BC上只保存的哈希值,以節(jié)省區(qū)塊鏈的存儲空間,優(yōu)化查詢和管理效率。在完成一次完整的交易鏈RBC上區(qū)塊編輯交易過程之后,特權節(jié)點需要重復一次監(jiān)管鏈BC上交易鏈RBC的公鑰和陷門生成過程,以及時更新可編輯鏈的公鑰及陷門。
作為一個有效的解決方案,可編輯的區(qū)塊鏈技術可以讓用戶修改區(qū)塊鏈的數(shù)據(jù)。然而,由于存在可信第三方的要求、管理費用高或缺乏問責機制等問題,因此現(xiàn)有的可編輯區(qū)塊鏈不能保障數(shù)據(jù)安全。該文從銀行業(yè)的實際業(yè)務需求出發(fā),提供了一個可編輯區(qū)塊鏈系統(tǒng)方案。為了避免增加系統(tǒng)的額外負擔,該文設計的區(qū)塊鏈基于雙鏈結構,從普通區(qū)塊鏈和可編輯區(qū)塊鏈的區(qū)塊結構、變色龍哈希算法的特點(優(yōu)勢)2個方面解釋了可編輯區(qū)塊鏈的編輯原理,并描述了具體的方案。該方案利用變色龍哈希解決可能出現(xiàn)的安全問題。區(qū)塊鏈將在陷門管理過程中記錄各種信息,并在出現(xiàn)爭議時將其作為問責的證據(jù)。分析表明,該方法成本不高,且能有效處理惡意行為。