初識Clef

來源:互聯網
上載者:User

初識Clef

以太坊版本1.8.4開始,增加了獨立簽名人Clef功能,該功能目前尚處在alpha階段。它主要實現了簽署交易、簽署資料和管理賬戶。它的README中是這樣描述的:

Clef可以用來簽署交易和資料,並且可以代替geth的賬戶管理。

這使DApps不依賴於geth的賬戶管理。 當DApp想要簽署資料時,它可以將資料發送給簽名者,然後簽名者將向使用者提供上下文並要求使用者簽署資料。 如果使用者授予簽章要求,簽名者將簽名發送回DApp。

此設定允許DApp串連到遠程以太坊節點並發送本地簽名的事務。 這可以在DApp串連到遠程節點的情況下提供協助,因為本地以太坊節點不可用,不與同步鏈或沒有內建(或有限)帳戶管理的特定以太坊節點同步。

Clef可以在同一台機器上作為守護進程運行,也可以在usb-stick(如usb armory)中運行,或者在QubesOS類型的os設定中運行單獨的虛擬機器。

乍聽起來好像沒什麼新鮮的,目前以太坊DApp通過web3介面就可以完成的功能。通過通讀代碼和文檔說明後發現,其實它最大的亮點有兩個:

  1. 人機互動,實現對一筆發起的交易進行另一方批準確認;
  2. 規則引擎,實現自動化交易確認。

Clef內建了一個JS解譯器引擎,使用JS編寫自動化批准規則,來達到自動化交易確認的目的。以下是我對Clef服務的理解:

Clef命令列做三件事:

  1. 初始化一個密碼,用以後續加密以太坊賬戶密碼、加密規則集檔案資訊摘要值,以及其他需要加密的資訊;
  2. 添加一個規則集檔案摘要資訊,並儲存規則集檔案;
  3. 添加一個以太坊賬戶和密碼,資訊會以加密方式儲存;

之後啟動Clef,它會提供HTTP RPC服務,調用它的介面,發起交易;經過規則引擎確認,使用以上第三步儲存的以太坊賬戶,從keystore中用密碼解開賬戶私密金鑰,對交易進行離線打包,並返回打包後的結果。這裡的初始化密碼很重要,它是一切加密儲存的源頭,Clef文檔中提到該密碼需要由使用者自行保管,就像是使用者保管ssh key一樣。

每一個Clef RPC請求都會用單獨的JS解譯器引擎處理,因此全域變數在規則集檔案中是沒有作用的。可以通過磁碟隱藏檔的方式共用變數。

規則引擎很強大,可以做一些智能合約做不到的事情,比如定時轉賬、24小時內轉賬限額等等。可以說彌補了智能合約的不足,並且可想象的空間有很多。目前Clef和以太坊並未完全打通,Clef傳回值只會吐出離線簽名後的未經處理資料,還需要用戶端自行將未經處理資料發送給以太坊節點;並且Clef安全性也有待考證,一旦初始化密碼被竊取,使用者的以太坊賬戶就有被盜走的風險。

BOX (A business wallet solution)在保護企業私密金鑰方面考慮得比較多,企業的私密金鑰由多人共管,缺少任何一個人的口令都無法還原私密金鑰。並且BOX的私密金鑰儲存在簽名機記憶體中,受到精靈的保護,一旦檢測到異常情況,精靈會將簽名機殺死,簽名機在停機前會清零私密金鑰所在記憶體資料。

BOX對簽名機私密金鑰所在記憶體也做了防護,在私密金鑰所在記憶體段前後設定記憶體守護頁,所以如果任何操作嘗試讀寫這些頁的話,SIGSEGV就會拋出一個存取違規,進而保護私密金鑰不被竊取。

Clef的規則引擎很好,BOX將借鑒Clef的優秀思想,擴充基礎功能。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.