1. 程式人生 > >3.7 錢包、帳戶、token、智能合約、action、權限、權重和閥值之間關系

3.7 錢包、帳戶、token、智能合約、action、權限、權重和閥值之間關系

tps http 如果 作用 proc 主體 art ref 區塊鏈

3.7.1 賬戶、錢包和密鑰的關系

技術分享圖片
如圖所示,右邊是EOS Wallet錢包,裏面只存放私鑰及由該私鑰產生的公鑰(公私鑰對),而且錢包有一個密碼,需要輸入密碼才能解鎖錢包,讀取私鑰。錢包和賬戶沒有直接的關系
左邊是EOS Account賬戶,可以把它看成是一個保險箱,裏面有EOS Token以及智能合約,而需要轉移裏面的EOS Token(或者執行智能合約),你需要錢包中對應的私鑰來解鎖這個保險箱。

創建一個賬戶的命令是:cleos create account {創建者賬戶名} {新的賬戶名} 公鑰1 公鑰2

其中{創建者賬戶名}是為這個創建動作支付EOS的賬戶,公鑰1和公鑰2分別是兩個不同權限的密鑰對的公鑰。

技術分享圖片
所以把權限系統加上,圖就變成上面這個樣子,一個保險櫃有兩個開關,不過打開後可以進行操作的權限是不同的。2個私鑰可以存在一個錢包裏,也可以如上圖所示存在不同的錢包裏(由不同的人控制)。
owner權限是賬戶的最高權限,可以修改其它權限。
active權限默認可以進行轉賬等操作,但不能修改權限。
每個保險箱有一個名字,就是EOS賬戶名。
轉賬和智能合約等操作的執行都是在Account這個保險箱進行,所以賬戶名在EOS世界其實是以太坊的地址。
與以太坊不同,EOS的賬戶名不再是一串很長很長的地址,而是一個你可以自定義的英文字母+數字(12345)+符號(.),最長12位,最短1位,全局唯一,先到先得,註冊費用還沒公布,但據最新的消息,長度不同註冊需要的EOS也不一樣。

3.7.2 賬戶、錢包、token、合約、活動、權限、權重、閥值的關系

技術分享圖片
1、創建帳戶,首先要創建帳戶的公私鑰對,公私鑰對可以代表對應該賬號下的某個權限的權重。帳戶使用公私鑰對事物進行簽名操作,讓區塊鏈節點確定事物中的活動是由某帳戶的哪個權限授權的。
2、帳戶可以部署、加載合約,所以合約是屬於某個帳戶的,在EOS系統中1個帳戶只能有一個合約。
3、Token是由帳戶創建和發行的,發行的Token屬於帳戶。帳戶擁有Token,並且可以通過eosio.token合約中定義的活動轉賬給其他賬戶。
4、帳戶的公私鑰對是存放在錢包中,錢包僅僅是一個有名字有密碼的公私鑰對的容器。
5、一個實際用戶可以創建多個帳戶,用戶通過錢包中的公私鑰對管理對哪個賬戶的哪個權限授權用於執行某個合約中的動作。

6、一個用戶可以擁有多個錢包,賬戶和錢包沒有直接的所屬關系只有使用關系即某個賬戶使用了某個錢包存放了自己的公私鑰對。
7、一個keosd錢包服務可以管理多個命名錢包,用戶可以通過錢包服務提取錢包中的公私鑰對其發起的事務進行簽名。
8、一個用戶可以開啟一個或者多個keosd錢包服務。
9、一個錢包中可以存放零個或者多個密鑰對。
10、一個帳戶可以擁有多種權限。
11、每一個權限都有一個使用該權限的閥值。
12、每一個權限都可以由一對或者多對密鑰及對應的權重來控制權限的使用。
13、每一個密鑰都會有使用某權限的權重,當擁有的密鑰對應的權重累計大於等於閥值即可使用該權限。
14、每個對某個賬戶的某個活動都會需要對應的賬戶的權限使用授權。
15、一個合約中可以定義多種不同的活動,賬戶調用對應的合約來執行不同活動。

3.7.3 總結

綜上,我們通過一些列問題的問答來理解賬戶、錢包、token、合約、活動、權限在EOS中的作用。

問答如下:

  1. EOS系統中的主體是什麽?答:賬戶
  2. 有了賬戶能做什麽?答:做事務
  3. 怎麽做事務?答:通過合約
  4. 合約包含哪些依賴元素?答:(1)賬戶 (2)權限 (3)token
  5. 權限是什麽?怎麽管理?答:公私鑰對,通過錢包管理
  6. 什麽是token,怎麽使用? 答:做事物占用了系統資源,需要花費gas(token)。

為了更好理解上述概念,我們不妨舉個生活中的例子:

生活中有這樣的三口之家,爸爸、媽媽、小孩

  • 他們所居住的房間我們看作一個賬戶,房間都有一個唯一的且可被人為識別的地址(賬戶名稱),例如:某某小區12#1201
  • 房間裏有很多設施設備(電視、電腦、空調.......),我們把不同設備具有的功能看作智能合約裏定義的活動功能
  • 如果小孩想看電視(執行合約的動作),需要進入房間的授權(賬號權限),能不能進入房間由是否持有爸爸或者媽媽的鑰匙(公私密鑰)決定。
  • 爸爸、媽媽的鑰匙存放在各自的有密碼的鑰匙包(錢包)裏。
  • 小孩在得到爸爸或者媽媽的要鑰匙後(授權),就可以打開電視並收看(執行合約)。
  • 看電視需要繳納電費(token),電費是按照房間地址(賬號名稱)收取的。

鏈接

http://www.3heu.com/
https://www.jianshu.com/p/ebdc83590f2d
https://blog.csdn.net/arm_snow/article/details/89708300

3.7 錢包、帳戶、token、智能合約、action、權限、權重和閥值之間關系