古詩詞大全網 - 個性簽名 - 賬戶、密鑰、錢包、權限,它們之間是什麽關系?

賬戶、密鑰、錢包、權限,它們之間是什麽關系?

因為多次用到了賬戶(account)和權限(permission)的概念,

還有錢包(wallet)和密鑰(keys)。

在EOS中,它們之間是什麽關系呢?

什麽是賬戶?

1、賬戶(account)是存儲在區塊鏈上的人類可讀的標識符;

2、賬戶可以被個人或組織擁有,具體取決於權限配置;

3、發送交易或者轉移代幣,都需要有賬戶才能完成;

4、通過導入(import)密鑰,壹個錢包可以和壹個或多個賬戶相關聯。

賬戶、密鑰、錢包的關系

在錢包是open且unlock的狀態下,可以通過如下命令獲取導入到這個錢包中所有密鑰:

cleos wallet keys

在前幾篇文章中,我在測試鏈上創建了“sg”、“currency”兩個賬戶,加上系統默認的“eosio”賬戶,***有3個賬戶。

這3個賬戶***同使用壹個錢包(default),下面這張圖展示了它們之間的關系:

因此,賬戶、密鑰、錢包三者的關系可以總結為 :

密鑰(公鑰)可以創建賬戶;

密鑰(私鑰)可以導入錢包;

賬戶和錢包通過密鑰聯系起來。

賬戶的權限

1、在EOS中,每個賬戶都有兩個本地權限:owner權限?和?active權限;

owner

owner權限代表著對壹個賬戶的所有權,是最高權限,只有少數交易會用到這種權限;

EOS建議賬戶的擁有者把owner權限的密鑰冷存儲,且不要與任何人***享;

owner權限可以用來恢復已經被破壞的另壹個權限。

active

active權限可以用來轉移資金、給生產者投票、賬戶相關信息更改等;

壹般情況下使用active權限就夠用了。

2、賬戶還可擁有自定義權限,用於進壹步擴展賬戶的管理;

3、權限可以分配給壹個或多個公鑰(public keys),也可以分配給有效的賬戶。

單壹簽名(Single-Sig)

EOS的默認賬戶權限配置采用單壹簽名的方式。

這裏有兩個重要的概念:

權重(weight)

權限擁有者在整個權限中的相對重要程度

閾值(threshold)

能夠成功push事務所需要的權重值門檻

下面是壹個例子:

權限

賬戶或公鑰

權重

閾值

owner

1

EOS5EzTZZQQ...

1

active

1

EOS61chK8GbH...

1

某賬戶有兩個公鑰,分別擁有owner權限和active權限,每種權限的權重和閾值都是1。

權重達到閾值才能授權。

對於這個賬戶,因為單壹權限的權重就已經達到閾值,所以如果該賬戶要push交易,只需要使用對應的密鑰對交易進行簽名即可,即單壹簽名就能完成交易。

多重簽名(Multi-sig)和自定義權限

再看下面這個例子

權限

賬戶或公鑰

權重

閾值

owner

2

@alice

1

@bob

1

active

1

@alice

1

@bob

1

publish

2

@alice

2

@bob

2

EOS7VtcvWo1...

1

在這個例子中,

owner權限

owner權限分配給了alice和bob兩個賬戶,owner權限的閾值為2,alice和bob的權重均為1。?因此,alice或bob單個賬戶都不能獲得授權,必須壹起對交易簽名才能獲得完全授權。

active權限

active權限的閾值為1,alice和bob的權重均為1。?因此,alice或bob單個賬戶就可以簽名獲取授權。

publish權限 (自定義權限)

publish是壹個自定義權限,閾值為2,給alice和bob的權重均為2,給壹個公鑰的權重為1。?結果是,alice和bob因為權重達到閾值,可以直接簽名獲得授權;

這個公鑰因為權重不夠,需要和alice或bob壹起,才能獲取授權。

從多重簽名和自定義權限,以及可以使用賬戶名和公鑰兩種方式設置權限,可以看出,EOS的權限系統具有很高的靈活性。