文| 沈藝琳
比特幣被發明于2008年,作為數字貨幣的佼佼者,屬于分布式加密貨幣,因此在世界范圍內得到了廣泛認可。比特幣能夠根據密碼學對自身進行驗證,比特幣使用者公鑰表示不同用戶地址,如果用戶公鑰被其他人知曉,就相當于擁有了比特幣使用權,而且如果A用戶將自己的比特幣轉移給B用戶,就會出現附有簽名的交易記錄,這條信息就表示A用戶(A的公鑰表示)將比特幣轉移給B用戶(A的公鑰表示)。混幣服務能夠讓用戶對交易記錄進行混淆,避免受到攻擊與跟蹤,防止交易記錄被盜取。通過混幣服務,惡意實體就不能關聯用戶真實地址與混淆地址。但是混幣服務器會將交易信息進行收集混淆。若混幣服務器需要將交易軌跡進行恢復,就可以通過隨意跟蹤交易記錄來實現這一目標。
Rivest在2001年提出了通過匿名的方法透露秘密的算法,也就是我們熟知的環簽名算法。環簽名為特殊群簽名,無需群建立以及可信中心節點過程,而站在驗證者的立場來看,簽名者屬于匿名者。環簽名能夠提供十分巧妙、便捷的透露秘密方式,而且無條件匿名屬性能夠在一些特殊環境中發揮重要作用,例如在一些特定環境中簽名信息無法將簽名者身份泄露。
環簽名方案過程:(1)生成密鑰:能夠同時輸入不同參數的時間算法,其中兩個輸出為sk私鑰和pk公鑰。如果它能夠為使用者生成sk與pk當作密鑰對,由于用戶不同sk和pk會來自于不同公鑰算法,像是ECSDA、DLP以及RSA。(2)環簽名:為多項式時間算法,消息上的簽名是由消息、環成員公鑰pk1至pkn,消息發出者sk輸入而生成的。在簽名中有的參數會根據某種特殊規則而形成環。(3)簽名驗證:屬于確定性算法,在對方案進行驗證時消息、簽名和環成員公鑰pk1至pkn當作輸出,若環簽名合法,那么輸出則為真,若環簽名不合法,那么輸出則為假。
環簽名方案最重要一點就是要確保安全,而且環簽名具有多項特色。第一,正確性。若完全根據簽名算法形成簽名,在對其進行傳播時如果簽名正常且沒被篡改,那么環簽名就能夠通過驗算;第二,無條件匿名性。如果攻擊者將全部簽名者私鑰獲取,那么從全部成員中選擇出簽名者概率也小之又小;第三,不可偽造性。如果攻擊者并沒有事先了解環成員私鑰,即便可以在生產簽名語言中得到消息全部簽名,那么偽造有效簽名的幾率可以不用考慮。除此之外,環簽名還有其他特點,例如簽名者能夠隨便指定匿名范圍,還可以在沒有群管理員以及第三方的情況下形成群簽名一般功能。
混幣服務能夠讓用戶對交易記錄進行混淆,避免受到攻擊與跟蹤,防止交易記錄被盜取。通過混幣服務,惡意實體就不能關聯用戶真實地址與混淆地址。這些都是基于混淆協議來實現,在請求過程中用戶可以發送消息給混幣服務器,信息內容包括客戶公鑰以及希望混淆的信息。在接收到信息后,混淆服務器會從客戶收集到公鑰,并根據性能對公鑰數量進行調整;在確認過程中,需要用戶對混淆交易中的地址進行檢測,若信息已被驗證,那么客戶就能進行授權簽名。

環簽名示意圖
1.匿名性。如果混幣服務器遭受攻擊,那么就需要混淆方案能夠確保用戶匿名性,根據環簽名算法屬性,混幣服務器不能從比特幣地址中有效識別特定用戶地址。而且地址一般是通過有效環簽名向各個混幣服務器進行逐個發送,但是混幣服務器僅僅能夠對其中某個地址的一個合法成員進行驗證,卻不能將該成員的具體地址進行有效識別。外部攻擊者僅僅能夠阻攔某一個比特幣地址,但卻不能將交易與地址相關聯。
2.DoS抵抗性。惡意用戶能夠利用初始化混淆服務而不響應請求地址,在不同的分布式混淆協議中,通過DoS進行惡意攻擊,讓全部協議處于癱瘓。但是在本文所研究的混淆方案中,不同用戶能夠與混淆服務器進行單獨溝通,任何與協議規定行為不符的用戶都會被系統自動加入到黑戶行列中。除此之外,攻擊者能夠利用嘗試阻斷混淆交易記入區塊鏈進而出現DoS攻擊的情況。但是攻擊者難以真正做到這一點,這是由于攻擊者需要掌握至少51%以上比特幣網絡中的計算資源才有可能實現。
3.擴展性。對于混淆交易來說,增加用戶是一件簡單的事,因為不會對比特幣輸入、輸出交易地址進行限制。混幣服務器能夠對不同用戶分配到混淆交易中,進而適應增加用戶數量的需求,通過完善服務器配置,包括對寬帶等進行有效處理,能夠有效解決混幣服務器存在的一些不足。
在此次文章中,提出的加密基于環簽名以Boneth和Paterson線性加密方式為模塊,p為公共參數,sk為秘密簽名密匙,pk為公共加密密匙,EIBS功能由下列兩個函數構成:
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的對應公鑰。EIBS的具體功能為簽名者A能夠通過簽名密匙(sk)對消息進行簽名,之后在接收B的公共加密密鑰,在pkc基礎下進行加密與簽名,最后將結果送至B。實現EIBS功能包括sk與pkc,A的簽名密鑰能夠生成PKG主密鑰,在安全性上可能存在隱患,因此要對EIBS進行混淆,確保簽名密鑰的安全。為了讓EIBS功能具有一定概率,需要進行隨機處理,并且給定公共加密密鑰和密文,隨機算法表示式為ReRand(p,pk,(C1,C2,C3))=C1(ga)r’,C2(gb)r’,C3(gc)r’。
若惡意用戶拒絕簽名交易時,就會立即執行恢復機制,全部用戶協商統一鎖定時間段,若存在惡意用戶拒絕簽名交易,在超出鎖定時間段后,在比特幣網絡中就不會出現交易,而在這時也會暫時停止混幣交易,強制執行鎖定交易。如果在網絡后出現交易,在群里的用戶就會組建交易,若惡意用戶依然選擇拒絕簽名交易,那么在托管地址中的罰金就會出現損失,全部用戶的比特幣交易額則不會受到侵害。

模型系統
數字貨幣能夠實現網上支付,受到越來越多人的認可,但是在匿名性上還存在一些不足。一些學者已經對怎樣通過區塊鏈數據破壞匿名性進行了深入研究,為了使比特幣更具匿名性,現如今提出了很多混幣服務方法,卻無法滿足安全屬性。本文提出的混淆方案能夠與比特幣協議實現兼容,并為客戶提供更多拓展服務。此方案能夠避免比特幣被混幣服務器盜取,還能避免混幣服務器對輸入、輸出相關聯。而且在部署上更加便利,能夠有效降低開銷成本。