Ethereum Identity - ERC725/735



前幾天,因緣際會地得知ERC725,是一個跟identity有關的EIP,提案人是Fabian Vogelsteller,ERC20跟web3js的創始人(大神等級  XD),這篇就來介紹一下ERC725還有附屬的ERC735!(本篇主要是介紹ERC725,讓在做identity相關的開發者可以有多一點的資訊,所以不會提到太多介面或實作上的細節)


ERC725於2017年10月提出,目的是為了要建立區塊鏈上的數位身份。簡單來說,有兩個主要功能Key ManagementIdentity UsageIdentity Verification稍後再提)。

Key Management

目前的定義有:MANAGEMENT, ACTION, CLAIM, ENCRYPTION
可以想作是每個身份的權限管理,不同的key能做不同的事。例如擁有MANAGEMENT就代表你可以管理這個身份,是這個身份的擁有者,你要加key或是移除key也都需要這個權限。ACTION的key代表能夠執行某些動作。ERC725-Key-Management有每個key的介紹。


Identity Usage

ERC725在設計上是proxy contract,也就是可以經由這個identity contract去執行其他contract的function,透過execute這個function去執行。例如transfer ether。
除了執行的部分,Identity Usage還有approve的功能,簡單來說,就是支援multisig的功能,需要多人簽章,要執行的function才會執行。


ERC735 / Identity Verification

Identity在實際場景中會有一個問題,就是身份怎麼「認證」,而作者把認證這塊獨立提了另一個EIP,也就是ERC735
ERC735的內容也相當簡單,就是增加跟移除認證(Claim)而已。在提案中沒有限制Claim issuer(也就是發認證者)的身份,可以是smart contract或是外部的帳號都可以。
特別提一下,設計中有個topic的欄位,可以讓認證方去指定這個認證是屬於哪個類別的,可以讓認證的內容更加彈性,例如是生物辨識的資料,或是住家地址,不過這部分的細節尚未決定。
ERC725 DEMO有web UI可以讓大家更瞭解ERC725實際運作的樣子。


再回過頭來看Key Management在權責劃分的部分,Identity Usage中的執行,會需要ACTION權限的key,而Identity Verification則需要CLAIM的權限。也就是這個identity contract是可以由多人共管,有權責劃分,所以這不只是個人的identity是可以延展團體或是組織的identity contract。

概念上ERC725/735還滿簡潔的,聽完我的介紹應該像是跟沒聽一樣 XD,有在做相關主題的,大概都想得到這些內容,identity做得可大可小,我覺得厲害的是,作者可以把所有的需求最小化,卻又符合大部分的需求,然後提出一個這麼精簡的EIP,跟ERC20一樣(對!我就是有大神崇拜症 XDD)。
ERC725 有成立一個ERC725 Alliance,有興趣的可以上去看看跟瞭解。




留言

這個網誌中的熱門文章

What's New in Ethereum Serenity (2.0)

瑞士滑雪分享2 - 策馬特

動手實做零知識 - circom