文| 沈藝琳
比特幣被發(fā)明于2008年,作為數(shù)字貨幣的佼佼者,屬于分布式加密貨幣,因此在世界范圍內(nèi)得到了廣泛認(rèn)可。比特幣能夠根據(jù)密碼學(xué)對自身進(jìn)行驗證,比特幣使用者公鑰表示不同用戶地址,如果用戶公鑰被其他人知曉,就相當(dāng)于擁有了比特幣使用權(quán),而且如果A用戶將自己的比特幣轉(zhuǎn)移給B用戶,就會出現(xiàn)附有簽名的交易記錄,這條信息就表示A用戶(A的公鑰表示)將比特幣轉(zhuǎn)移給B用戶(A的公鑰表示)?;鞄欧?wù)能夠讓用戶對交易記錄進(jìn)行混淆,避免受到攻擊與跟蹤,防止交易記錄被盜取。通過混幣服務(wù),惡意實體就不能關(guān)聯(lián)用戶真實地址與混淆地址。但是混幣服務(wù)器會將交易信息進(jìn)行收集混淆。若混幣服務(wù)器需要將交易軌跡進(jìn)行恢復(fù),就可以通過隨意跟蹤交易記錄來實現(xiàn)這一目標(biāo)。
Rivest在2001年提出了通過匿名的方法透露秘密的算法,也就是我們熟知的環(huán)簽名算法。環(huán)簽名為特殊群簽名,無需群建立以及可信中心節(jié)點過程,而站在驗證者的立場來看,簽名者屬于匿名者。環(huán)簽名能夠提供十分巧妙、便捷的透露秘密方式,而且無條件匿名屬性能夠在一些特殊環(huán)境中發(fā)揮重要作用,例如在一些特定環(huán)境中簽名信息無法將簽名者身份泄露。
環(huán)簽名方案過程:(1)生成密鑰:能夠同時輸入不同參數(shù)的時間算法,其中兩個輸出為sk私鑰和pk公鑰。如果它能夠為使用者生成sk與pk當(dāng)作密鑰對,由于用戶不同sk和pk會來自于不同公鑰算法,像是ECSDA、DLP以及RSA。(2)環(huán)簽名:為多項式時間算法,消息上的簽名是由消息、環(huán)成員公鑰pk1至pkn,消息發(fā)出者sk輸入而生成的。在簽名中有的參數(shù)會根據(jù)某種特殊規(guī)則而形成環(huán)。(3)簽名驗證:屬于確定性算法,在對方案進(jìn)行驗證時消息、簽名和環(huán)成員公鑰pk1至pkn當(dāng)作輸出,若環(huán)簽名合法,那么輸出則為真,若環(huán)簽名不合法,那么輸出則為假。
環(huán)簽名方案最重要一點就是要確保安全,而且環(huán)簽名具有多項特色。第一,正確性。若完全根據(jù)簽名算法形成簽名,在對其進(jìn)行傳播時如果簽名正常且沒被篡改,那么環(huán)簽名就能夠通過驗算;第二,無條件匿名性。如果攻擊者將全部簽名者私鑰獲取,那么從全部成員中選擇出簽名者概率也小之又??;第三,不可偽造性。如果攻擊者并沒有事先了解環(huán)成員私鑰,即便可以在生產(chǎn)簽名語言中得到消息全部簽名,那么偽造有效簽名的幾率可以不用考慮。除此之外,環(huán)簽名還有其他特點,例如簽名者能夠隨便指定匿名范圍,還可以在沒有群管理員以及第三方的情況下形成群簽名一般功能。
混幣服務(wù)能夠讓用戶對交易記錄進(jìn)行混淆,避免受到攻擊與跟蹤,防止交易記錄被盜取。通過混幣服務(wù),惡意實體就不能關(guān)聯(lián)用戶真實地址與混淆地址。這些都是基于混淆協(xié)議來實現(xiàn),在請求過程中用戶可以發(fā)送消息給混幣服務(wù)器,信息內(nèi)容包括客戶公鑰以及希望混淆的信息。在接收到信息后,混淆服務(wù)器會從客戶收集到公鑰,并根據(jù)性能對公鑰數(shù)量進(jìn)行調(diào)整;在確認(rèn)過程中,需要用戶對混淆交易中的地址進(jìn)行檢測,若信息已被驗證,那么客戶就能進(jìn)行授權(quán)簽名。
環(huán)簽名示意圖
1.匿名性。如果混幣服務(wù)器遭受攻擊,那么就需要混淆方案能夠確保用戶匿名性,根據(jù)環(huán)簽名算法屬性,混幣服務(wù)器不能從比特幣地址中有效識別特定用戶地址。而且地址一般是通過有效環(huán)簽名向各個混幣服務(wù)器進(jìn)行逐個發(fā)送,但是混幣服務(wù)器僅僅能夠?qū)ζ渲心硞€地址的一個合法成員進(jìn)行驗證,卻不能將該成員的具體地址進(jìn)行有效識別。外部攻擊者僅僅能夠阻攔某一個比特幣地址,但卻不能將交易與地址相關(guān)聯(lián)。
2.DoS抵抗性。惡意用戶能夠利用初始化混淆服務(wù)而不響應(yīng)請求地址,在不同的分布式混淆協(xié)議中,通過DoS進(jìn)行惡意攻擊,讓全部協(xié)議處于癱瘓。但是在本文所研究的混淆方案中,不同用戶能夠與混淆服務(wù)器進(jìn)行單獨溝通,任何與協(xié)議規(guī)定行為不符的用戶都會被系統(tǒng)自動加入到黑戶行列中。除此之外,攻擊者能夠利用嘗試阻斷混淆交易記入?yún)^(qū)塊鏈進(jìn)而出現(xiàn)DoS攻擊的情況。但是攻擊者難以真正做到這一點,這是由于攻擊者需要掌握至少51%以上比特幣網(wǎng)絡(luò)中的計算資源才有可能實現(xiàn)。
3.擴(kuò)展性。對于混淆交易來說,增加用戶是一件簡單的事,因為不會對比特幣輸入、輸出交易地址進(jìn)行限制。混幣服務(wù)器能夠?qū)Σ煌脩舴峙涞交煜灰字?,進(jìn)而適應(yīng)增加用戶數(shù)量的需求,通過完善服務(wù)器配置,包括對寬帶等進(jìn)行有效處理,能夠有效解決混幣服務(wù)器存在的一些不足。
在此次文章中,提出的加密基于環(huán)簽名以Boneth和Paterson線性加密方式為模塊,p為公共參數(shù),sk為秘密簽名密匙,pk為公共加密密匙,EIBS功能由下列兩個函數(shù)構(gòu)成:
1.運行σ=(V,Rm,Rn)←Sign(p,sk,m)。
2.運行C1←Enc(p,pk,V)。
3.運行C2←Enc(p,pk,Rm)。
4.運行C3←Enc(p,pk,Rn)。
5.輸出(C1,C2,C3)。
輸出(p,pk,pkc),其中pk為私鑰sk的對應(yīng)公鑰。EIBS的具體功能為簽名者A能夠通過簽名密匙(sk)對消息進(jìn)行簽名,之后在接收B的公共加密密鑰,在pkc基礎(chǔ)下進(jìn)行加密與簽名,最后將結(jié)果送至B。實現(xiàn)EIBS功能包括sk與pkc,A的簽名密鑰能夠生成PKG主密鑰,在安全性上可能存在隱患,因此要對EIBS進(jìn)行混淆,確保簽名密鑰的安全。為了讓EIBS功能具有一定概率,需要進(jìn)行隨機處理,并且給定公共加密密鑰和密文,隨機算法表示式為ReRand(p,pk,(C1,C2,C3))=C1(ga)r’,C2(gb)r’,C3(gc)r’。
若惡意用戶拒絕簽名交易時,就會立即執(zhí)行恢復(fù)機制,全部用戶協(xié)商統(tǒng)一鎖定時間段,若存在惡意用戶拒絕簽名交易,在超出鎖定時間段后,在比特幣網(wǎng)絡(luò)中就不會出現(xiàn)交易,而在這時也會暫時停止混幣交易,強制執(zhí)行鎖定交易。如果在網(wǎng)絡(luò)后出現(xiàn)交易,在群里的用戶就會組建交易,若惡意用戶依然選擇拒絕簽名交易,那么在托管地址中的罰金就會出現(xiàn)損失,全部用戶的比特幣交易額則不會受到侵害。
模型系統(tǒng)
數(shù)字貨幣能夠?qū)崿F(xiàn)網(wǎng)上支付,受到越來越多人的認(rèn)可,但是在匿名性上還存在一些不足。一些學(xué)者已經(jīng)對怎樣通過區(qū)塊鏈數(shù)據(jù)破壞匿名性進(jìn)行了深入研究,為了使比特幣更具匿名性,現(xiàn)如今提出了很多混幣服務(wù)方法,卻無法滿足安全屬性。本文提出的混淆方案能夠與比特幣協(xié)議實現(xiàn)兼容,并為客戶提供更多拓展服務(wù)。此方案能夠避免比特幣被混幣服務(wù)器盜取,還能避免混幣服務(wù)器對輸入、輸出相關(guān)聯(lián)。而且在部署上更加便利,能夠有效降低開銷成本。