高 偉 陳利群 唐春明 張國(guó)艷 李 飛
1(魯東大學(xué)數(shù)學(xué)與統(tǒng)計(jì)科學(xué)學(xué)院 山東煙臺(tái) 264025) 2(薩里大學(xué)計(jì)算機(jī)系 英國(guó)薩里 GU27XH) 3(廣州大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院 廣州 510006) 4(山東大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 山東青島 266237)
區(qū)塊鏈本質(zhì)上是一種去中心化、不可更改、可追溯的分布式數(shù)據(jù)庫(kù).近十幾年來(lái),區(qū)塊鏈技術(shù)迅速發(fā)展,從區(qū)塊鏈1.0(從以比特幣為代表)開(kāi)始,經(jīng)歷區(qū)塊鏈2.0(到以太坊為代表的智能合約),進(jìn)入?yún)^(qū)塊鏈3.0(以去中心化應(yīng)用Dapp為代表),應(yīng)用領(lǐng)域不斷擴(kuò)大,被認(rèn)為是引發(fā)下一代產(chǎn)業(yè)革命的核心要素,是助推未來(lái)數(shù)字化經(jīng)濟(jì)發(fā)展、支撐社會(huì)各界數(shù)字化轉(zhuǎn)型的國(guó)家戰(zhàn)略技術(shù)[1].
在區(qū)塊鏈發(fā)展過(guò)程中,去中心化和不可算改性往往被認(rèn)為是區(qū)塊鏈構(gòu)建信任的關(guān)鍵性質(zhì).區(qū)塊鏈借此實(shí)現(xiàn)數(shù)據(jù)共享、共治,進(jìn)而共建安全可信的生態(tài)系統(tǒng).然而,隨著區(qū)塊鏈的發(fā)展,人們逐漸對(duì)其不可更改性有了更全面、更深刻的辯證性認(rèn)識(shí).事實(shí)上,區(qū)塊鏈的不可更改性也帶來(lái)諸多不利的方面[2-5].例如,在以太坊2016年的The DAO事件中,已經(jīng)上鏈的合約中存在漏洞,導(dǎo)致了大規(guī)模的以太幣非法轉(zhuǎn)移,由于缺乏相應(yīng)的區(qū)塊鏈修正機(jī)制,官方只得通過(guò)硬分叉來(lái)勉強(qiáng)解決問(wèn)題,而之后爆發(fā)的ATN事件也面臨區(qū)塊鏈修改機(jī)制的需求.現(xiàn)有公開(kāi)運(yùn)行的諸多區(qū)塊鏈上,如比特幣系統(tǒng),存在一些負(fù)面的、惡意的違法信息,而且受制于不可更改性、同時(shí)借助區(qū)塊鏈的公開(kāi)性而廣泛傳播,既危害了廣大用戶,也危害了區(qū)塊鏈本身,甚至可能危害社會(huì)、國(guó)家安全.特別是在區(qū)塊鏈日益廣泛、深刻地融入到金融、保險(xiǎn)、司法、社會(huì)治理等諸多領(lǐng)域的背景下,區(qū)塊鏈技術(shù)迫切需要安全、便捷、可控的技術(shù)手段來(lái)更新鏈上關(guān)鍵數(shù)據(jù)并清除有害數(shù)據(jù),進(jìn)而實(shí)現(xiàn)區(qū)塊鏈的有效合法監(jiān)管,保障區(qū)塊鏈的健康發(fā)展.
2017年,著名密碼學(xué)家Atenise等人[2]首次提出了可修正區(qū)塊鏈的概念,并給出了較為系統(tǒng)的解決方案,所依賴的關(guān)鍵密碼學(xué)工具是變色龍哈希函數(shù).可修正(redactable,editable)區(qū)塊鏈的研究逐漸在區(qū)塊鏈研究領(lǐng)域引起關(guān)注.2020年5月,袁勇等人發(fā)表了關(guān)于可修正區(qū)塊鏈的綜述文章[3],較為系統(tǒng)性地梳理和研究其現(xiàn)實(shí)需求及工作框架,從數(shù)據(jù)修改、刪除、插入、過(guò)濾和隱藏等環(huán)節(jié)詳細(xì)闡述了可修正區(qū)塊鏈的技術(shù)與方法,并討論了該領(lǐng)域亟需解決的若干關(guān)鍵問(wèn)題.
本文以變色龍哈希函數(shù)為主要工具研究了可修正區(qū)塊鏈的構(gòu)造問(wèn)題,主要貢獻(xiàn)包括3個(gè)方面:
1) 提出了稱作一次變色龍哈希函數(shù)的新型密碼原語(yǔ):當(dāng)每個(gè)標(biāo)簽下的碰撞都不超過(guò)一個(gè)時(shí),敵手計(jì)算任何新碰撞都是不可行的,相當(dāng)于碰撞陷門(mén)未暴露任何信息;而存在某個(gè)標(biāo)簽下的碰撞超過(guò)一個(gè)時(shí),則所有標(biāo)簽下的二對(duì)一碰撞都可以擴(kuò)展為任意的三對(duì)一碰撞,相當(dāng)于碰撞陷門(mén)部分暴露.
2) 基于RSA假設(shè)構(gòu)造了在隨機(jī)預(yù)言模型下可證明安全的一次變色龍哈希函數(shù),其效率與基于RSA的最經(jīng)典高效的普通變色龍哈希函數(shù)相當(dāng)[6].
3) 基于一次變色龍哈希函數(shù)概念實(shí)現(xiàn)了區(qū)塊鏈的(至多)一次修正機(jī)制,并基于RSA問(wèn)題給出該機(jī)制的高效構(gòu)造.對(duì)于新提出的可修正區(qū)塊鏈,每個(gè)區(qū)塊所允許的修改次數(shù)不得超過(guò)一次,否則任何修改過(guò)的區(qū)塊內(nèi)容都可以被任何人修改成任何內(nèi)容.之前的可修訂區(qū)塊鏈對(duì)修訂次數(shù)不做限定,既賦予了合法修改者過(guò)高修改權(quán)限,也導(dǎo)致了現(xiàn)有可修改區(qū)塊鏈難以高效實(shí)現(xiàn)的后果.
本節(jié)主要介紹以變色龍哈希函數(shù)為構(gòu)件的可修正區(qū)塊鏈相關(guān)工作,可修正區(qū)塊鏈的其他構(gòu)造方法可參見(jiàn)文獻(xiàn)[3].
變色龍哈希函數(shù)是一種帶陷門(mén)的特殊抗碰撞哈希函數(shù)[7].陷門(mén)持有者可輕易地計(jì)算任意輸入數(shù)據(jù)的哈希碰撞,從而可以在不改變哈希函數(shù)輸出的情況下,任意地改變哈希函數(shù)的輸入.對(duì)于未知陷門(mén)者,變色龍哈希函數(shù)與傳統(tǒng)的哈希函數(shù)一樣具有抗碰撞性.作為一種基礎(chǔ)的密碼學(xué)原語(yǔ),變色龍哈希函數(shù)是構(gòu)造變色龍哈希簽名、緊致安全簽名、同態(tài)簽名、可凈化簽名、身份認(rèn)證、可驗(yàn)證計(jì)算、可證明安全公鑰加密等各類密碼學(xué)方案的重要工具.關(guān)于變色龍哈希函數(shù)較為系統(tǒng)的研究,可參閱文獻(xiàn)[6].
可修正區(qū)塊鏈的概念是由Atenise等人在2017年正式提出[2].其核心思想是用變色龍哈希函數(shù)代替普通抗碰撞哈希函數(shù)(內(nèi)層哈希)來(lái)計(jì)算區(qū)塊所有交易的摘要,而此哈希值又被普通哈希函數(shù)鏈(外層哈希)固定在區(qū)塊鏈上.這一方法是目前最成熟的可修正區(qū)塊鏈技術(shù),已作為專利授權(quán)給了埃森哲公司.其優(yōu)點(diǎn)在于,在擁有密鑰的用戶利用變色龍哈希特性修改歷史數(shù)據(jù)時(shí),操作簡(jiǎn)單,且對(duì)前后區(qū)塊沒(méi)有影響,可以避免硬分叉.文獻(xiàn)[2]指出,為了適應(yīng)可修正區(qū)塊鏈的應(yīng)用需求,變色龍哈希函數(shù)需要滿足加強(qiáng)的抗碰撞性質(zhì),即在修改塊引起了多個(gè)變色龍哈希碰撞暴露的情況下,計(jì)算新的哈希碰撞(意味著非法的區(qū)塊修改操作)仍然是不可行的.然而具有增強(qiáng)抗碰撞性的變色龍哈希的構(gòu)造面臨較高技術(shù)難題.文獻(xiàn)[2]所給出的構(gòu)造方法不得不依賴公鑰加密、零知識(shí)證明等復(fù)雜密碼原語(yǔ).可修正機(jī)制自然對(duì)不可更改性和去中心化兩大特性帶來(lái)不利影響,對(duì)修正特權(quán)進(jìn)行最大程度的限制是必要的設(shè)計(jì)準(zhǔn)則.為此,文獻(xiàn)[2]將門(mén)限密碼方法引入了變色龍哈希函數(shù),用以實(shí)現(xiàn)修正陷門(mén)及操作在多個(gè)主體間的分享.本文則注意到限制修改權(quán)限的其他維度,即陷門(mén)持有者對(duì)一個(gè)區(qū)塊的修改次數(shù).特別是從區(qū)塊鏈用戶角度看,區(qū)塊鏈理應(yīng)最大限度地保證不可更改性.因此,為了增加很少動(dòng)用的可更改性質(zhì)而引入“無(wú)限次”修改權(quán)限是不合理的.
為了實(shí)現(xiàn)細(xì)粒度更高的修改機(jī)制,Derler等人于2019年將變色龍哈希函數(shù)改進(jìn)為基于策略變色龍哈希函數(shù)[8].對(duì)于基于策略變色龍哈希函數(shù),只要某主體所擁有的角色屬性滿足指定策略,該主體私鑰就可以用來(lái)計(jì)算碰撞.通過(guò)引入基于策略變色龍哈希函數(shù),文獻(xiàn)[8]實(shí)現(xiàn)了從區(qū)塊層面到交易層面的細(xì)粒度的可控修正機(jī)制.Derler等人也給出基于策略變色龍哈希函數(shù)的構(gòu)造框架,其可看做是基于屬性加密和附帶臨時(shí)陷門(mén)變色龍哈希函數(shù)的組合,而這2個(gè)組件構(gòu)造的復(fù)雜性也造成了此方案實(shí)現(xiàn)的復(fù)雜程度.作為進(jìn)一步的功能擴(kuò)展,Tian等人[9]于2020年提出了帶黑盒審計(jì)的基于策略變色龍哈希函數(shù),并將其應(yīng)用于可修正區(qū)塊鏈,為所有的區(qū)塊修改操作提供了事后審計(jì)監(jiān)督機(jī)制,在一定程度上達(dá)到預(yù)防修改特權(quán)濫用的效果.
變色龍哈希函數(shù)主要是為了豐富區(qū)塊鏈修正機(jī)制的功能,其運(yùn)行效率卻受制于底層復(fù)雜構(gòu)件的限制.文獻(xiàn)[10]則構(gòu)造了更高效率的具有加強(qiáng)抗碰撞性的變色龍哈希函數(shù),但仍然需要依賴雙線性對(duì)、零知識(shí)證明、公鑰加密等密碼構(gòu)件.Wu等人[11]基于格上困難問(wèn)題構(gòu)造了具有加強(qiáng)抗碰撞性的變色龍哈希函數(shù),并借助格工具避免了公鑰加密和零知識(shí)證明等復(fù)雜構(gòu)件,同時(shí)也因格工具而帶有格密碼本身的局限性.由此可見(jiàn),高效率的加強(qiáng)抗碰撞性變色龍哈希函數(shù)仍然是實(shí)現(xiàn)高效可修正區(qū)塊鏈的關(guān)鍵技術(shù)環(huán)節(jié).李佩麗等人[4]針對(duì)聯(lián)盟鏈改進(jìn)了可修改區(qū)塊鏈技術(shù),結(jié)合秘密共享方案設(shè)計(jì)了新的變色龍哈希函數(shù),使得在共同決策結(jié)果滿足修改觸發(fā)條件情況下,聯(lián)盟鏈中的每個(gè)用戶都有修改歷史記錄的權(quán)利.
定義1.設(shè)KRSA(1λ)是一個(gè)概率多項(xiàng)式時(shí)間算法,輸入安全參數(shù)1λ,輸出一個(gè)RSA模N和2個(gè)大素?cái)?shù)p,q,使得N=pq,還輸出e,d使得ed=1 mod (p-1)(q-1),稱敵手A(t,ε)解決RSA問(wèn)題,如果其運(yùn)行時(shí)間不超過(guò)t,其成功概率:
定義2.一次變色龍哈希函數(shù)由4個(gè)多項(xiàng)式時(shí)間算法組成:
CH=(ChGen,ChHash,ChVer,ChCld).
1)ChGen(1λ)→(hk,tk)
此密鑰生成算法輸入為安全參數(shù)1λ,輸出是哈希公鑰hk和碰撞私鑰tk.
2)ChHash(hk,τ,m)→(h,r)
ChHash(hk,τ,m,r)→h或h=Hash(hk,τ,m,r).
3)ChVer(hk,τ,h,m,r)→b
此哈希驗(yàn)證算法輸出b,表示h是否為合法的哈希函數(shù)值.本文考慮公開(kāi)擲幣型變色龍哈希函數(shù),此算法也就是判定等式ChHash(hk,τ,m,r)=h是否成立.
4)ChCld(hk,tk,τ,m,r,m′)→r′
此碰撞算法輸出r′使得:
ChHash(hk,τ,m,r)=ChHash(hk,τ,m′,r′),m≠m′
5) 抗一次碰撞性
稱CH=(ChGen,ChHash,ChVer,ChCld)為安全的一次變色龍哈希哈數(shù),若:
Fig. 1 Redactable blockchain structure diagram圖1 可修訂區(qū)塊鏈結(jié)構(gòu)圖
(τ1,h1,m1,1,r1,1,m1,2,r1,2,m1,3,r1,3)
滿足m1,1,m1,2,m1,3兩兩不同且:
ChVer(hk,τ1,h1,m1,j,r1,j)=1,j=1,2,3,
一個(gè)二重碰撞,即(τ2,h2,m2,1,r2,1,m2,2,r2,2)滿足m2,1≠m2,2且:
ChVer(hk,τ2,h2,m2,j,r2,j)=1,j=1,2,
Pr(ChVer(hk,τ2,h2,m2,3,r2,3)=1),
即(τ2,h2,m2,1,r2,1,m2,2,r2,2,m2,3,r2,3)是三重碰撞的概率不可忽略.
注1.抗一次碰撞性的形式化定義所給出的安全概念涵蓋了2種情形:
1) 性質(zhì)1保證.對(duì)于碰撞達(dá)到一次的任何標(biāo)簽,算出新碰撞是不可行的;
2) 性質(zhì)2保證.一旦某個(gè)標(biāo)簽下的3個(gè)消息碰撞到一個(gè)哈希值(該標(biāo)簽下的碰撞超過(guò)了一次),則對(duì)于碰撞達(dá)到一次的任何標(biāo)簽,算出新碰撞變得可行.后面將結(jié)合可修正區(qū)塊鏈環(huán)境,進(jìn)一步討論抗一次碰撞性的應(yīng)用意義.
沿用文獻(xiàn)[2],先給出普通區(qū)塊鏈的形式化描述.首先,一個(gè)區(qū)塊就是一個(gè)三元組
B=s,x,ctr,s∈{0,1}κ,x∈{0,1}*,ctr∈.
稱上述區(qū)塊B有效,如果:
(1)
此處,
H:{0,1}*→{0,1}κ,G:{0,1}*→{0,1}κ
是抗碰撞哈希函數(shù),分別稱作外層哈希和內(nèi)層哈希,而參數(shù)D∈和q∈分別是一個(gè)用戶在指定時(shí)間內(nèi)被限定的區(qū)塊困難層次和最大哈希次數(shù).區(qū)塊鏈就是區(qū)塊鏈接而成的序列.最右邊的區(qū)塊稱作鏈頭當(dāng)鏈頭時(shí),可通過(guò)添加新區(qū)塊B′=s′,x′,ctr′擴(kuò)展為更長(zhǎng)新鏈而B(niǎo)′滿足s′=H(ctr,G(s,x)).
沿用文獻(xiàn)[2],再給出可修正(Redactable)區(qū)塊鏈的形式化描述,其區(qū)塊為四元組B=s,x,ctr,r,其中s,x,ctr如前所述,而新增r則是對(duì)應(yīng)的變色龍哈希函數(shù)中的隨機(jī)值.稱(可修正)區(qū)塊B有效,如果
(2)
即相比于普通區(qū)塊鏈,內(nèi)層哈希函數(shù)G不再是普通哈希函數(shù),而是變色龍哈希函數(shù).對(duì)于鏈頭Head(C)=s,x,ctr,r的可修正區(qū)塊鏈可通過(guò)添加新區(qū)塊B′=s′,x′,ctr′,r′擴(kuò)展為更長(zhǎng)的新鏈C′=C‖B′,B′滿足
s′=H(ctr,ChHash(hk,(s,x),r))
為了便于理解,圖1給出可修正區(qū)塊鏈模型的圖示(內(nèi)層的變色龍哈希函數(shù)表示為G(hk,(s,x),r)):
對(duì)于可修正區(qū)塊鏈及其對(duì)內(nèi)層變色龍哈希函數(shù)性質(zhì)要求的詳細(xì)闡述,請(qǐng)參閱文獻(xiàn)[2].
本節(jié)先給出基于RSA的一次變色龍哈希函數(shù)的構(gòu)造,然后在隨機(jī)預(yù)言模型下證明其安全性.鑒于本方案可看做基于RSA的經(jīng)典變色龍哈希函數(shù)的擴(kuò)展[6],且關(guān)鍵運(yùn)算僅由模指數(shù)構(gòu)成,此節(jié)對(duì)效率分析不做贅述.
本節(jié)構(gòu)造一個(gè)基于RSA難題的一次變色龍哈希函數(shù)
CH=(ChGen,ChHash,ChVer,ChCld).
1)ChGen(1λ)→(hk,tk)
根據(jù)輸入的安全參數(shù)1λ,選擇同樣長(zhǎng)度的2個(gè)不同的大素?cái)?shù)p,q,并計(jì)算N=pq.然后,選擇足夠大的素?cái)?shù)e>2l,此處l是保證e足夠大的一個(gè)參數(shù).接著,計(jì)算d使得ed=1 mod (p-1)(q-1).然后,隨機(jī)選擇x0←RN,并計(jì)算最后,選定2個(gè)密碼學(xué)意義下安全的哈希函數(shù):
He:{0,1}→
相應(yīng)的哈希公鑰和碰撞私鑰為
hk=(N,e,X0,He,HN),tk=d.
2)ChHash(hk,τ,m)→(h,r),
給定哈希公鑰hk,標(biāo)簽τ和消息m∈e,計(jì)算
此處
然后,輸出h,r.方便起見(jiàn),將本過(guò)程表示
h=Hash(hk,τ,m,r).
3)ChVer(hk,τ,h,m,r)→b
4)ChCld(hk,tk,τ,m,r,m′)→r′
對(duì)以上計(jì)算結(jié)果,易知:
首先,證明引理1,其對(duì)應(yīng)定義2中抗一次碰撞性的性質(zhì)1;然后,證明引理2,其對(duì)應(yīng)定義2中抗一次碰撞性的性質(zhì)2;最后,綜合2個(gè)引理,證明上述構(gòu)造方案在RSA假設(shè)下是安全的一次變色龍哈希函數(shù).
(3)
(4)
通過(guò)計(jì)算模擬:
(5)
再由擴(kuò)展的歐幾里得算法可得:
此處的s,t滿足:
證畢.
(6)
一組二重碰撞(τ2,h2,m2,1,r2,1,m2,2,r2,2)滿足:
(7)
和目標(biāo)消息m2,3,總能輸出r2,3滿足:
此處,當(dāng)i分別1,2時(shí),mi,1,mi,2,mi,3各不相同.
(8)
(9)
由哈希函數(shù)(理想化為隨機(jī)預(yù)言機(jī))的隨機(jī)性知,式(8)(9)中指數(shù)部分為零的概率可忽略,從而利用擴(kuò)展的歐幾里得算法知,存在s′,t′,s″,t″使得:
(10)
同理,由式(9)可得:
(11)
對(duì)于式(10)(11),兩邊分別相除得:
再由擴(kuò)展歐幾里得算法,可得s?,t?使得:
es?+h21t′-h31t″t?=1.
從而可得:
結(jié)合式(11),進(jìn)一步得到:
由式(7)得:
再由擴(kuò)展歐幾里得算法,可得:
此處
由(x0,x2,1),根據(jù)所構(gòu)造的一次變色龍哈希函數(shù)的求碰撞算法ChCld,可得:
證畢.
綜合引理1,2得:
定理1.變色龍哈希函數(shù)
CH=(ChGen,ChHash,ChVer,ChCld)
是安全的一次變色龍哈希函數(shù).
如第2.3節(jié)所述,在文獻(xiàn)[2]中,由普通區(qū)塊鏈到可修正區(qū)塊鏈的本質(zhì)改動(dòng)是把內(nèi)層的普通抗碰撞哈希函數(shù)替換為具有增強(qiáng)抗碰撞性的變色龍哈希函數(shù),參見(jiàn)第2.3節(jié)中式(1)(2),與此類似,本節(jié)所考慮的可修正區(qū)塊鏈則是進(jìn)一步將內(nèi)層哈希替換為一次變色龍哈希函數(shù).
首先,給出本文所構(gòu)造可修正區(qū)塊鏈的結(jié)構(gòu)描述.具體來(lái)講,沿用文獻(xiàn)[2]相關(guān)符號(hào),給出可修正(Redactable)區(qū)塊鏈的形式化描述,其區(qū)塊為四元組s,x,ctr,r,其中B=s,x,ctr,r參見(jiàn)第2.3節(jié),而區(qū)塊標(biāo)識(shí)符τ可根據(jù)具體應(yīng)用而約定選取,不顯式地體現(xiàn)為區(qū)塊元素.稱(可修正)區(qū)塊B有效,如果
s′=H(ctr,Hash(hk,τ,(s,x),r)).
首先,分析合法(對(duì)任何區(qū)塊至多修改一次)修改區(qū)塊信息的操作過(guò)程.由一次變色龍哈希函數(shù)性質(zhì),可對(duì)該區(qū)塊鏈進(jìn)行修正操作:設(shè)區(qū)塊B=s,x,ctr,r和區(qū)塊B′=s′,x′,ctr′,r′前后相連,區(qū)塊標(biāo)識(shí)符分別為τ和τ′,故滿足關(guān)系:
s′=H(ctr,Hash(hk,τ,(s,x),r)),
根據(jù)定義2中抗一次碰撞性中性質(zhì)1,在修改者未曾二次修改任何區(qū)塊時(shí)(即對(duì)于變色龍哈希函數(shù),每個(gè)標(biāo)簽所對(duì)應(yīng)的碰撞不超過(guò)一次),任何人沒(méi)有能力可將做過(guò)修改過(guò)一次的區(qū)塊進(jìn)行第二次修改,當(dāng)然也就更沒(méi)有能力去修改未曾修改過(guò)的區(qū)塊.
則得到針對(duì)一次變色龍哈希函數(shù)的三重碰撞.而根據(jù)定義2中的性質(zhì)2,基于一個(gè)三重碰撞,任何二重碰撞可以擴(kuò)展成為三重碰撞.對(duì)應(yīng)到可修正區(qū)塊鏈環(huán)境下,出現(xiàn)二次修改區(qū)塊后,任何人都有能力將修改過(guò)一次的區(qū)塊中內(nèi)容變?yōu)槿魏蝺?nèi)容.簡(jiǎn)言之,修改權(quán)限的違規(guī)(指某個(gè)區(qū)塊的修改過(guò)2次),則“可修改”功能崩潰,當(dāng)然也就意味著整個(gè)區(qū)塊鏈的崩潰.
據(jù)第1節(jié)所述,文獻(xiàn)[2]中的可修正區(qū)塊鏈方案(稱作方案B)最為典型.本節(jié)選擇該方案與本文所提可修正區(qū)塊鏈方案(稱作方案A)進(jìn)行比較.
從功能角度比較,普通區(qū)塊鏈?zhǔn)?次可修正區(qū)塊鏈,體現(xiàn)了區(qū)塊鏈不可更改性;方案B是∞-次可修正型區(qū)塊鏈,即修改特權(quán)者可對(duì)任何區(qū)塊進(jìn)行任意多次修改;而方案A是一次可修正型區(qū)塊鏈,即修改特權(quán)者可修改每個(gè)區(qū)塊的次數(shù)至多一次.1)由于區(qū)塊鏈?zhǔn)怯烧\(chéng)實(shí)者占多數(shù)的礦工群體維護(hù)、存在較多待修正內(nèi)容的區(qū)塊鏈會(huì)被廣泛抵制等客觀原因,實(shí)際運(yùn)行的區(qū)塊鏈中需要修正內(nèi)容的區(qū)塊占比非常少,即需要?jiǎng)佑眯拚貦?quán)的場(chǎng)合并不多,而需要對(duì)一個(gè)區(qū)塊反復(fù)修正的場(chǎng)景更是極少;2)不可更改性是區(qū)塊鏈的關(guān)鍵特性,可修正性從某種程度上傷害了這一特性.因此,在引入可修正性時(shí),最大程度地限制修正特權(quán)是設(shè)計(jì)可修正區(qū)塊鏈的重要準(zhǔn)則.事實(shí)上,文獻(xiàn)[2]非常重視可修正權(quán)的限制,主要是通過(guò)在多個(gè)用戶間分享修正權(quán)來(lái)避免特權(quán)濫用.相比之下,方案A則從修改次數(shù)的維度上,對(duì)修改特權(quán)進(jìn)行了最大程度限制,從而更好地提升可修正區(qū)塊鏈的用戶信任度.另外,方案A也可以引入方案B的特權(quán)分享機(jī)制,從而可在2個(gè)維度上限制修正特權(quán).
從構(gòu)造模塊的密碼學(xué)性質(zhì)看,方案B要求底層的變色龍哈希函數(shù)具有所謂的增強(qiáng)的抗碰撞性,可簡(jiǎn)單表述為敵手在獲得同一哈希值的n個(gè)原像后,也不能得到算出第n+1個(gè)原像;而方案A要求底層的變色龍哈希函數(shù)具有相對(duì)弱一些的抗碰撞性,可簡(jiǎn)單表述為敵手獲得同一哈希值的2個(gè)原像后,也不能得到算出第3個(gè)原像.
從算法復(fù)雜度來(lái)看,為了實(shí)現(xiàn)增強(qiáng)的抗碰撞性,文獻(xiàn)[2]提出的構(gòu)造方案需要借助公鑰加密、零知識(shí)證明等復(fù)雜的密碼原型;而本文所構(gòu)造的一次變色龍哈希函數(shù)方案,則是對(duì)基于RSA的經(jīng)典變色龍哈希方案的簡(jiǎn)單推廣[6],就哈希計(jì)算而言只是將原本的2個(gè)模冪的模乘變成了3個(gè)模冪的模乘.
因此,相比于文獻(xiàn)[2]的可修正區(qū)塊鏈方案,本文所提可修正區(qū)塊鏈方案在功能上可實(shí)現(xiàn)更嚴(yán)格、更合理、更全面地修正特權(quán)的管控機(jī)制,同時(shí)在實(shí)現(xiàn)途徑上可提供更簡(jiǎn)單高效的構(gòu)造方法.
區(qū)塊鏈以其不可更改、去中心化、可追溯等特點(diǎn)迅速發(fā)展為學(xué)術(shù)界、工業(yè)界乃至全社會(huì)的熱點(diǎn)技術(shù),應(yīng)用場(chǎng)景快速擴(kuò)展和滲透,成為支撐社會(huì)數(shù)字化轉(zhuǎn)型和數(shù)字化經(jīng)濟(jì)發(fā)展的基礎(chǔ).然而,區(qū)塊鏈的不可更性也面臨越來(lái)越多的現(xiàn)實(shí)挑戰(zhàn),區(qū)塊鏈上不可避免地會(huì)存在各類有害信息,給區(qū)塊鏈的健康發(fā)展帶來(lái)巨大障礙.在司法、經(jīng)濟(jì)、金融、社會(huì)治理等關(guān)鍵領(lǐng)域引入?yún)^(qū)塊鏈的前提是監(jiān)管已經(jīng)成為業(yè)界共識(shí),但作為監(jiān)管機(jī)制基礎(chǔ)的可修正區(qū)塊鏈研究才剛剛起步.本文從可修正區(qū)塊鏈實(shí)際需求分析的入手,發(fā)現(xiàn)現(xiàn)有可修正區(qū)塊鏈對(duì)于可修正次數(shù)沒(méi)有任何限制.這既給底層變色龍哈希函數(shù)的高效構(gòu)造設(shè)置了更高的技術(shù)難度,也因過(guò)高的修改權(quán)限降低了普通用戶對(duì)可修正區(qū)塊鏈的接受度,而無(wú)限多的修改次數(shù)對(duì)于區(qū)塊鏈的修正者并不必要.為此,本文以區(qū)塊鏈的一次修正機(jī)制為目標(biāo),將上層區(qū)塊鏈修正需求轉(zhuǎn)化為底層的變色龍哈希函數(shù)的安全性質(zhì)需求,繼而抽象出與之契合的一次變色龍哈希函數(shù)的新型密碼學(xué)原語(yǔ),并基于經(jīng)典的RSA問(wèn)題給出了高效的實(shí)現(xiàn)方案,借此進(jìn)一步實(shí)現(xiàn)了高效的可修正區(qū)塊鏈方案.