內外兼修——迅雷鏈的密碼學有點厲害

鄭小峰發表於2019-04-12

對於很多想用區塊鏈解決業務發展瓶頸的企業來說,不是具備了All in區塊鏈的態度,就可以萬事俱備,只等品嚐科技創新帶來的美好果實。以電商平臺舉例,區塊鏈可以通過激勵政策打破使用者增量的瓶頸,但是如何在區塊鏈上安全、可信地完成網銀和電子商務等交易,成為一個眼前難題。

當然,對於企業來說,從區塊鏈的底層源頭一步一步解決問題並不現實,不僅需要大量精通區塊鏈底層技術的工程師,也不可能讓每個企業自己搭建一條主鏈,怎樣擁抱區塊鏈技術的科技創新為企業解決業務上的難題,選擇一個實用、高效的開放平臺就變得尤為重要。

迅雷鏈因為百萬級TPS的高效能成為行業中的“明星產品”,近日,在中國國際區塊鏈技術與應用大會上,因為對國密演算法的支援和改進,贏多了更多業內人士的好評,結合對資料隱私保護的探索,合作方可以根據自身業務的需要,選擇合適的密碼學演算法為實際應用提供安全保障,滿足了更多型別企業的上鍊需求。

**內家功:迅雷鏈底層對國密演算法的支援與改進

國密演算法支援**

多年以來,密碼學演算法標準被以歐美國家設計的演算法壟斷。幾年前的“稜鏡門”曝光出一些國際通用的密碼演算法背後潛在後門漏洞,以及隨著我國科學技術的發展,密碼演算法的安全性已經上升到了國家安全戰略地位,國密標準演算法在近年來得到了推廣和普及。

國密是國家密碼局認定的國產密碼演算法,也是商用密碼,它的應用領域十分廣泛。比如企業門禁管理、企業內部各類敏感資訊的傳輸加密、儲存加密,防止非法第三方獲取資訊內容,同樣的,也可以用於各種安全認證、網上銀行、數字簽名等。

所以為了支援更多合作伙伴在業務上的需求,落到區塊鏈這一層級則顯示為密碼學演算法的安全性和可靠性,迅雷鏈對密碼演算法模組進行了升級,畢竟安全是核心,而演算法是安全的基礎。

迅雷鏈除了支援國際通用的密碼學演算法外,還滿足了對於國密演算法的支援,包括非對稱演算法SM2、安全雜湊演算法SM3和對稱演算法SM4。也就是說,這些演算法“全家桶”的支援,意味著迅雷鏈可應用於政府、金融、社會公共服務和大型公共智慧建築等高安全領域。

簽名逆推回公鑰

在國際通用演算法ECDSA的演算法標準中,包含了一項通過簽名逆推簽名對應公鑰的功能。這樣的功能可以幫助使用者可以通過計算推匯出驗證簽名所需的公鑰,從而使簽名資訊不再需要傳遞簽名者的公鑰,以此換取了儲存空間的降低。我們知道在區塊鏈系統中,儲存空間是一項非常緊缺的資源,因此這一個功能對區塊鏈的實際應用有很強的優化意義。

然而目前在國密演算法對應的橢圓曲線簽名演算法標準SM2中,沒有定義類似的功能實現。因此迅雷鏈憑藉在橢圓曲線演算法方面深厚的技術積累,結合SM2的自身設計方面的特性,通過推導數學公式,設計出了適用於國密演算法的通過簽名逆推回公鑰的功能,實現了國密演算法場景下對儲存空間的優化,如下圖所示,優化比例達到了33%,進而提升了區塊鏈整體的執行效率。

這項設計除了區塊鏈系統以外,還可以適用於應用了國密演算法的其他場景中,具有很強的創新性和實際意義。目前,此設計已經提交了國家專利申請。

內外兼修——迅雷鏈的密碼學有點厲害

**外家功:通過迅雷鏈保護資料隱私

從一個理想的“分歧終端機”說起**

在葛優和舒淇主演的電影《非誠勿擾》中有這樣一個經典的片段——葛優飾演的秦奮推銷自己設計的一個產品,名為“分歧終端機”,如下圖所示

內外兼修——迅雷鏈的密碼學有點厲害
這個產品用來解決“剪刀石頭布”遊戲中游戲雙方出手先後所導致的不公平問題。使用時遊戲雙方一隻手握住手柄,另一隻手伸進一方的圓筒內,做出“剪刀石頭布”的決定。雙方約定倒數“321”之後同時開啟圓筒,從筒中的手勢判斷勝負,以此降低先後出手帶來的作弊行為。

內外兼修——迅雷鏈的密碼學有點厲害
上述產品當然只是電影為了喜劇效果設計出來的,但在歡笑之餘,我們也可以思考一下這個產品能夠解決什麼樣的問題。

它存在的前提是由於雙方出手時間不一致遊戲的過程中可能存在一方作弊的機會,迅雷鏈要做的就是消除這個時間的不一致,或者改變時間不一致所造成的後果。從這個角度出發,找一個自動化的第三方,比如微信表情中的“石頭剪刀布”來遊戲。這樣做看似可以解決問題,但仔細思考依然不夠完美。

首先,微信中的決策是隨機產生的,而不是遊戲參與者主動選擇的,這樣也就會一定程度上降低遊戲的參與性;其次,引入第三方依然存在第三方可信性的問題,很難確認第三方選擇的結果是否存在漏洞導致遊戲的不公平。 因此,迅雷鏈考慮採用區塊鏈智慧合約來去掉這個不確定的第三方,同時結合密碼學中的承諾系統(Commitment Scheme),保護參與者出手決策內容的隱私,來實現參與者可以在可自主選擇的前提下保證遊戲的公平性。 具體的方案如下:

內外兼修——迅雷鏈的密碼學有點厲害
傳送承諾:雙方各選取一個隨機數r,結合自己的猜拳選項x,將二者合併後的雜湊值作為承諾傳送給合約。 交換承諾:合約將收集到的雙方承諾互換給對方。 揭露承諾:雙方收到對方的承諾後,將自己在第一步選擇的x和r的原值傳送給合約。 下發結果:合約驗證雙方在第三步揭露的原值與第一步承諾的雜湊是否匹配。若匹配成功,則通過雙方猜拳選項原值x做出勝利結果判斷並下發至雙方。若匹配失敗,則將作惡方判負。

通過這樣的方式,將智慧合約和密碼學承諾系統結合使用,既保護了參與者的決策隱私,又保證了參與雙方的公平性和可參與性,以此實現了一個現實版的“分歧終端機”。

對隱私保護更深入的研究與探索

現階段,資料隱私保護的需求對於眾多區塊鏈業務場景而言起到了決定性的作用,而當前眾多主流區塊鏈平臺對於隱私保護方面支援甚少,因此,隱私保護方面的實際案例對於區塊鏈業務場景的落地顯得尤為重要。

上述的案例看似簡單,但由此可以衍生出更復雜的隱私保護場景的設計與實現。上述的承諾系統(Commitment Scheme)通過互動的形式,在保護資料隱私的同時替代了“公正的”第三方介入。而在一些更復雜的場景下,針對隱私資料的計算需要結合同態加密(Homomorphic Encryption)技術,對資料進行加密,使資料在可被計算的同時保證隱私不被洩露。當相關資料涉及到範圍證明等需求時,結合零知識證明(Zero-Knowledge Proof)技術可以保證在不洩露資料隱私的前提下證明資料的有效性,使資料隱私安全得到更好的保護。

例如,大多數區塊鏈上的交易資料是以明文的形式展示的,雖然區塊鏈本身是匿名的,但隨著交易量的擴大,其關聯性將或多或少的洩露個人隱私。雙方或多方的交易可以通過資料統計構建出一整套交易記錄組成的網路,通過掌握其中的某一個或某一部分資訊即可逐漸推斷出更多的本不希望被洩露的隱私內容。

通過同態加密,可以將原始的交易資料隱私保護起來,使交易以密文的形式上鍊。但是,對於鏈上驗證交易的節點來說,密文的驗證就需要應用到零知識證明來保證交易輸入的賬戶餘額大於等於轉賬的金額,通過一系列步驟驗證合法後,可以保證交易能夠被成功的執行,且交易相關的隱私沒有被洩露。

綜上,迅雷鏈在提供百萬TPS的高效能服務的同時,在密碼學與安全隱私保護方面也進行了不斷的研究與探索。無論是從底層改進密碼學演算法,還是在應用層結合隱私保護技術落地應用,都以提升鏈上資料的安全性,豐富區塊鏈應用場景落地為目的,致力於為開發者和企業提供高效能和高安全性的可靠服務。

相關文章