發表文章

目前顯示的是 10月, 2018的文章

Ethereum Plasma Debit and More Viable Plasma

圖片
看完上篇 Plasma MVP跟Plasma Cash的介紹 ,感覺Plasma MVP目前還處於是概念上的階段,正式上線好像還有段距離。Plasma Cash每個coin都是不可分割的,在實際上的使用上有點困難。而本篇是要接續介紹Ethereum researcher 們更新的提案- Plasma Debit 跟 More Viable Plasma 。 Plasma Debit Plasma Debit要解決的就是Plasma Cash 每筆進帳不可分割的問題。Plasma Cash的帳戶裡只有一個值(而且值等於1),在Plasma Debit改成兩個值a跟v,    v  代表這個帳戶最多可以擁有多少錢(也就是存了多少ETH進Plasma chain)    a  是目前帳戶裡的錢 舉例來說, 1. 甲存了5 ETH進入Plasma chain後,v=5, a=5 2. 甲轉2 Plasma token給乙,v=5, a= 3 可以想作是信用卡的 最高額度(v) 跟還 可以使用的額度(a) 。 但是,這裡有個問題,在最一開始大家的a跟v的值都一樣,代表著大家不能相互轉帳。什麼意思呢? 舉例來解釋一下   1. 甲,乙各存了5ETH, 7ETH進Plasma chain,此時甲:(v=5, a=5), 乙:(v=7, a=7)   2. 甲想轉帳給乙,但因為乙的v=a,若甲轉給乙則會造成乙的 a>v 的狀況,這在設計上是不允許的(信用卡公司給你5萬的額度,總不能刷超過5萬吧) 為了要有流動性,operator可以透過不同的function存錢進你的帳戶(也就是某個coin),也就意味著你的v值會變被增加(當然會需要付一些手續費給operator),以上例來說   3. operator提供2ETH的額度給乙(v=9, a=7)   4. 甲就可以轉2ETH給乙(甲:(v=5, a=3), 乙:(v=9, a=9)) 目前Plasma Debit的設計類似payment channel,每個 coin的擁有者 跟 operator 建立一個雙向的payment channel(提案中多處都在類比Lightning Net...

Ethereum Identity - ERC725/735

前幾天,因緣際會地得知ERC725,是一個跟identity有關的EIP,提案人是Fabian Vogelsteller,ERC20跟web3js的創始人(大神等級  XD),這篇就來介紹一下ERC725還有附屬的ERC735!(本篇主要是介紹ERC725,讓在做identity相關的開發者可以有多一點的資訊,所以不會提到太多介面或實作上的細節) ERC725 於2017年10月提出,目的是為了要建立區塊鏈上的數位身份。簡單來說,有兩個主要功能 Key Management 跟 Identity Usage ( Identity 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的欄位,可以讓認證方去指定這個認證是屬於哪個類別的,可以讓認證的內容更加彈性,例如是生物辨識的資料,或是住家地址,不...