區塊鏈中的密碼學

【多鏈與非對稱加密】

對稱加密指的就是加密和解密使用同一個秘鑰,所以叫做對稱加密。對稱加密只有一個秘鑰,作為私鑰。 常見的對稱加密算法:DES,AES,3DES等等。

非對稱加密指的是:加密和解密使用不同的秘鑰,一把作為公開的公鑰,另一把作為私鑰。公鑰加密的信息,只有私鑰才能解密。私鑰加密的信息,只有公鑰才能解密。 常見的非對稱加密算法:RSA,ECC。

非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。 非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰並將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密後再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密後的信息進行解密。

另一方面,甲方可以使用乙方的公鑰對機密信息進行簽名後再發送給乙方;乙方再用自己的私匙對數據進行驗籤。

甲方只能用其專用密鑰解密由其公用密鑰加密後的任何信息。 非對稱加密算法的保密性比較好,它消除了最終用戶交換密鑰的需要。

非對稱密碼體制的特點:算法強度複雜、安全性依賴於算法與密鑰但是由於其算法複雜,而使得加密解密速度沒有對稱加密解密的速度快。對稱密碼體制中只有一種密鑰,並且是非公開的,如果要解密就得讓對方知道密鑰。所以保證其安全性就是保證密鑰的安全,而非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了。這樣安全性就大了很多。

在EKT中,我們就使用了公私鑰結合的非對稱加密和路由策略的機制實現拜占庭容錯。我們EKT的多鏈,採用“多鏈分而治之”的新方案重新設計了一個保障每個合約都能正常運行的公鏈,其中就使用到了非對稱加密對用戶的信息進行保存,同時主鏈和子鏈信息共享但是功能隔離。這一創新極大程度上簡化了架構,降低了數據處理壓力,確保一條鏈上流量激增不會影響到另一條鏈的效率,在鏈上進行的任何業務都不會收到其他業務干擾,有效實現了資源隔離。

在EKT中Token鏈是一個並行多鏈的結構,多鏈多共識,共享用戶基礎。EKT的Token是鏈上的一個屬性,就像使用了utxo模型的鏈utxo有其他Token一樣,我們的轉賬事件也是內置的。

其實EKT解決的一個核心問題是,目前Dapp的開發難度的問題如果使用以太坊的Solidity開發,需要學習以太坊的一整套邏輯,在複雜應用開發的時候需要考慮各種優化方案,同一個功能使用傳統C/S結構一天寫完的,用以太坊可能要寫幾周時間,對開發者來說很不友好。

例如針對C/S模型,要寫一個非對稱加密服務需要:

1. 設計一個服務端,可以計算出一對秘鑰pub/pri。將私鑰保密將公鑰公開。

2. 設計一個客戶端請求服務端時,拿到服務端的公鑰pub。

3. 客戶端通過AES計算出對稱加密的秘鑰X。 然後使用pub將X進行加密。

4. 客戶端將加密後的密文發送給服務端。服務端通過pri解密獲得X。

5. 最後還要設計兩邊通訊機制,通過對稱密鑰X以對稱加密算法來加解密。

這一套流程若要Dapp/公鏈開發者寫出來,勢必在真正開發區塊鏈功能之前就已經被這些繁瑣但其實通用的步驟耗費過多精力和資源。

EKT的中心思想就是設計一個社區的機制,讓開發者可以輕易的開發一個可以承載DAPP的主鏈,其他的交給EKT來處理, EKT 的“一鏈一主幣,多鏈多共識”的機制為後來的區塊鏈項目開發提供了很大的便利,可以使用於任何區塊鏈適用的應用場景。 EKT 提供了一套底層的區塊鏈機制,其他的區塊鏈項目可以很容易的基於 EKT 的主鏈代碼部署一套自己的主鏈。在EKT上編寫的區塊鏈項目將無需過於擔心安全性問題,因為每一個接口都是非常簡單並且在許多條並行主鏈上部署和運行的。部署主鏈時可以靈活的發行自己主鏈的代幣以及選擇共識算法。新部署的主鏈也可以加入到 EKT 通用積分的整個生態,共享 EKT 生態的用戶資源,代幣也可以和EKT 主幣以及其他主鏈的代幣進行交換和流通。

EKT主鏈上每個DPoS節點的公鑰都是公開的。這是一種兼顧效率、安全和去中心化的解決方案。Token現在一般被定義成一個智能合約,但如果把它變成一個預先定義好事件的“對象”,這個“對象”可以有自己的參數(比如總量、共識機制等等),則會帶來更好的安全體驗。接受token的地址可以有兩種:普通的用戶地址和合約地址,合約地址收到token之後可以執行非圖靈完備的合約語言,進行簡單的狀態計算和token轉移。

以上就是我對區塊鏈密碼學的一些思考,和一些在設計EKT的多鏈多共識時對建設非對稱加密底層的考慮。歡迎大家提出疑問,共同探討。


分享到:


相關文章: