Policy-based Chameleon Hash for Blockchain Rewriting with Black-box Accountability:基于策略的Chameleon Hash對于具有黑盒問責的可編輯區塊鏈
- 前述
- 關于paper
- 1.可編輯區塊鏈
- 2.Chameleon Hash
- 3.黑盒問責
- 正文
- 框架概述
- 演算法步驟
- 系統模型
- 實作與評估
- 心得
Rewriting with Black-box Accountability:基于策略的Chameleon Hash對于具有黑盒問責的可編輯區塊鏈)
前述
看了一個IT從業人員的日記,感覺時光走得太快,記憶留的太淺,如果不把一些東西記錄下來,等到回憶往昔時會發現自己竟乏善可陳,于是決定把研究生看的有意義的論文記錄一下,至少留作努力過的證明吧,,,如果能有一些csdn積分就更好了,沒有也行
坐標 研一上的寒假,2021.1.13
導師讓閱讀ACSAC的論文,我選擇的是 Applied Cryptography 專題,
關于paper
該論文是關于 可編輯區塊鏈,采用Chameleon哈希演算法和黑盒問責機制,
Keyword:Chameleon Hash、Blockchain Rewriting、Black-box Accountability
1.可編輯區塊鏈
這篇很清晰:可編輯區塊鏈:打破你對“不可篡改”的認知,但這樣的區塊鏈還安全嗎.
眾所周知,區塊鏈的一個特性是不可篡改性,一方面在于交易內容全部映射到Merkle根,如果在本地篡改交易,則其他節點不會予以認可;另一方面在于區塊鏈是有序的,已上鏈的區塊不能更改否則會影響順序,
但是對于這種存盤資訊的功能,修改的場景是不可避免的,如交易內容或金額的修改、區塊里包含違法資訊、上鏈后遇到意外需要撤銷等,,,針對這種需求,有學者提出了可編輯區塊鏈的概念,對于現有的Hash結構進行改造,留出修改后門,一種變色龍哈希Chamelelon Hash剛好滿足該需求,
可編輯區塊鏈在業界的爭議還比較大,因為區塊鏈的初衷就是去中心化,所有節點平等,公平公開,而一旦留出后門,顯然誰掌握了后門,誰就成為區塊鏈的中心化大boss,因此這一變動在迎合市場需要的同時背離了區塊鏈的初衷,
另一方面,政府是希望看到區塊鏈被監管的,區塊鏈也不應該成為一些非法交易的庇護所,因此可以預想這種可編輯特性會不會在一定程度上推動區塊鏈被承認和合法化的行程,
anyway,技術無罪,回歸論文本身,
2.Chameleon Hash
這篇很好理解:變色龍哈希函式 Chameleon Hash 可變型區塊鏈.
Hash:對于任意訊息m,可將其映射為一個固定長度的串H(m).
區塊鏈中,各個區塊以Hash指標連接,主要依賴于Hash的三個特性:
(1)抗碰撞性:對于訊息m,難以找到另一個訊息m’,使H(m)=H(m’);
(2)不可逆:已知一個訊息的H(m),難以倒過來推出m;
(3)不可預測:映射出的H(m),是無法提前得知會映射出該結果的,
考慮到,如果對區塊鏈修改,必然改變其Hash結果,無法獲得其他節點認可,從而無法達到共識,因此,需要在不改變Hash的前提下修改,
這顯然推翻了抗碰撞的特性,即 使新訊息m’,哈希結果與原訊息一致,滿足這種特點的哈希就是Chameleon Hash(區塊鏈中實際采用的是SHA256哈希),翻譯過來是變色龍哈希,其原理如下:
類似于公鑰加密,任何人都有做Chameleon Hash的公鑰pk(public key),只有私鑰sk(private key)擁有者可以獲得m’的后門,變色龍哈希的三個階段:
Step1:(sk, pk) = KeyGen(
λ
\lambda
λ),首先構造滿足安全常數
λ
\lambda
λ的回圈群G(生成元g),隨機指數sk為私鑰,公鑰pk=gsk;
Step2:H(m) = Hash(pk, m, r),生成變色龍哈希的亂數為r,區塊哈希值為H(m)=gm*pkr;
Step3:r’ = UForge(sk, m, r, m’),將m篡改為m’后,希望找到一個亂數r’,使得H(m’)=H(m),又H(m)=gm·pkr=gm·(gsk)r=gm+sk·r,H(m’)=gm’·pkr’=gm’·(gsk)r’=gm’+sk·r’,二者相等,因此已知m,m’,私鑰sk,r,可得r’=(m+sk·r-m’)/sk.
變色龍哈希有基于因式分解的、基于格的和基于離散對數的,
這就是一種基于求解離散對數難題的舉例,Cryptography - Chameleon Hash
大佬對它進行了Java實作,
3.黑盒問責
但是修改者也需要受到監管,防止有后門私鑰的人對訊息進行惡意修改,因此出現需求:如果對修改后的交易沒有爭議,那么交易修改者仍然是匿名的;如果出現爭議,黑盒問責保證了任何用戶都可以識別這個可疑的修改者,并且修改后的交易版本可以一一映射到對應的修改者,
該論文是在以上思想的基礎上提出框架PCHBA,該框架的一個獨特特性是,它不允許交易修改者否認對任何已修改的交易進行的惡意修改,并給出了PCHBA的一個實體,驗證了其實用性,
正文
框架概述

(導師箴言:打這么多字,能不能畫張圖啊~)
Owner:交易所有者,它將交易發布到區塊鏈上時,對Chameleon Hash的臨時后門進行加密,并使用它的簽名密鑰keyO在臨時后門的隨機版本上簽名,
Attribute Authority:屬性授權者,記為AA,給出Chameleon Hash的臨時后門的密鑰,
Modifier:訊息修改者:擁有Chameleon Hash的修改權即私鑰,以及AA授予的用于解密臨時后門的密鑰,當完成修改后,修改者還使用他的簽名密鑰keyM對同一個臨時的后門進行隨機化并在其上簽名,
使用相同的臨時后門來鏈接訊息簽名對:所有者-(keyO,m),修改者-(keyM,m’),以便實作問責,
演算法步驟
交易所有者將Hash結果發送到區塊鏈,之后,需要一個交易修改者(其修改權限由AA授予)來修改Hash物件,而Hash鏈的鏈接保持不變,如果修改后的交易發生爭議,屬性授權者AA可以決定修改后的交易是否確實被該交易修改者修改,
在去中心化設定方面,每個用戶都可以扮演一個AA的角色,并用屬性標記其他用戶,我們在呈現PCHBA時使用交易“owner”和“modifier”,讓一組交易修改者結合它們的修改權限來生成一個訪問設備/黑盒O,
演算法步驟:
- Step1:Setup(1λ):AA以安全引數λ為輸入,輸出Chameleon Hash密鑰對(sk,pk),
- Step2:KeyGen(sk,δ):AA以Chameleon Hash的私鑰sk和用戶屬性集δ∈U為輸入,輸出一個密鑰skδ,該密鑰與修改者身份ID′ 關聯,U:屬性宇宙
- Step3:Hash(pk,m,?,ID):交易所有者執行,他以Chameleon Hash的公鑰pk、訊息m∈M、策略?和所有者身份ID作為輸入,輸出哈希結果h、亂數r 和簽名σ,在這個程序之后,該哈希值h發布到區塊鏈中,注意,M={0,1}*表示一般訊息空間,?:訪問結構,是U的非空子集的集合
- Step4:Verify(pk,m,h,r,σ):以Chameleon Hash的公鑰pk、訊息m、哈希值h、亂數r 和簽名σ作為輸入,輸出一個位b(0/1),-區塊鏈節點驗證Hash的程序(“共識”)
- Step5:Adapt(skδ,m,m′,h,r,σ,ID′):交易修改者執行,以密鑰skδ,訊息m和m′,哈希值h,亂數r,簽名σ,修改者身份ID′ 作為輸入,首先用上一步的Verify驗證Hash,然后用私鑰得到后門,計算可產生碰撞的r’,r’生成修改后的訊息m’,生成新的公私密鑰對和簽名,最后發布新的Hash結果,
- Step6:Judge(sk,T,O):給定一組交易{T′ }∈T和一組可疑交易修改者{ID′ }∈O,O:訪問黑盒,如果交易T′ 鏈接到可疑修改者ID′,則AA輸出一個交易身份對(T′,ID′),意味著交易T′ 確實被交易修改者ID′修改,其中T′=(m′,h,r′,C′,vk′,c′,σ′),
論文認為訊息擁有者和屬性授權者AA是誠實可信的,對三個安全性保障:不可區分性、抗碰撞性和問責性,進行了說明,
系統模型

如圖,區塊B(i)包含四個交易T(i,1),T(i,2),T(i,3),T(i,4),其中T(i,1)和T(i,3)是基于本文提出的交易,T(i,2)和T(i,4)使用傳統的抗碰撞Hash函式H(即SHA256)進行哈希,
如果交易所有者ID希望將某些基于策略的交易發送到區塊鏈中,則必須使用Hash(pk,m,?,ID)對這些交易進行哈希處理,T(i,1)和T(i,3)具有不同的訪問策略(由交易所有者ID選擇的,可執行修改的訪問結構)和相同的身份(?(i,1),ID),(?(i,3),ID),
當需要修改基于策略的交易時,具有密鑰的交易修改者ID′ 可以計算Hash值A和C的有效碰撞,并提供新的亂數r’,然后,修改者向區塊鏈網路廣播新的亂數,區塊鏈節點驗證新亂數(即Verify演算法)的正確性,并通過用新隨機性替換舊亂數來更新區塊鏈的本地副本,由于交易中的亂數、簽名和密文 作為交易/塊的非Hash部分提供,因此值PREV_H從不被修改,
如果使用PCHBA創建某些交易,我們可以確保:
- 1)不可區分性,這意味著給定一個隨機性,任何公共用戶都無法確定與交易T(i,1)(或T(i,3))相關的亂數是使用傳統哈希還是Adapt演算法創建的;
- 2)抗碰撞性,這樣只有具有修改權限的交易修改者ID′ 才可以修改區塊鏈;
- 3)問責制,即如果修改后的交易存在爭議,屬性授權者AA可以將每個修改后的交易鏈接到負責的交易修改者,
三點在原文都有證明,
實作與評估
給出了一些參考演算法的調整應用,以及提出的演算法的具體引數設定和步驟,代碼在下面的github上,在運行時間、性能、乘法和乘方的數目三方面進行了評估,這里還是看原文吧
給出的一些開源地址:
- Accenture. https://www.accenture.com/sg-en.
- Accountable Blockchain Rewriting. https://github.com/SMC-SMU/Accountable-Blockchain-Rewriting.
- BLS12-381. https://tools.ietf.org/html/draft-yonezawa-pairing-friendlycurves-02.
- General Data Protection Regulation. https://eugdpr.org.
- Hyperledger. https://www.hyperledger.org.
- Pairing-Friendly Curves. https://tools.ietf.org/id/draft-yonezawa-pairing-friendly-curves-01.html.
- Ripple. https://ripple.com.
心得
原文提出了一些定理,對它們以及演算法的安全性都進行了數學上的證明,感覺自己甚至沒有敲出原文精髓的百分之一,汗-_-||
第一次寫csdn,寫的時候關注到了一些看論文時混亂的地方,寫完又加深了一遍對論文的理解,感覺尚可(公式部分就略過了等熟練了編輯器再來補,,,也可能會了也不補)
寒假實在是太混了,進度慢吞吞,本還打算下載原始碼研究研究,無奈剛得知周五就要匯報而我竟然只看了一篇,囧囧囧囧囧,馬不停蹄奔向下一篇
特此宣告,該博文所寫均為本人自己理解,如有爭議以論文原作者為準,(鞠躬
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/249115.html
標籤:區塊鏈
上一篇:位元幣地址生成方法
下一篇:04:命令列引數
