賬戶和權限
帳戶是存儲在區塊鍊中的人類可讀辨別符。 每個交易都根據配置的帳戶權限對其權限進行評估。
每個已命名的權限都有一個門檻值,必須滿足該權限下簽署的交易才能被視為有效的門檻值。 交易
通過使用已經安裝和解鎖錢包的用戶端來簽署。 錢包是保護和利用你的密鑰的軟體。 這些密
鑰可能授權也可能不授權區塊鍊上的賬戶權限。
錢包是一個存儲可能與賬戶有關的密匙的用戶端。通常情況下,錢包有鎖定和解鎖兩種狀态并通過
一個高熵密碼保護。
EOSIO/eos
庫有一個名為
cleos
的指令行界面用戶端,它與一個名為
keosd
的
lite用戶端進行互動,并且共同展示了錢包的這種模式。
帳戶是存儲在區塊鍊中的人類可讀辨別符。它可能屬于一個個人或者組織,這取決于賬戶的權限配置,
需要賬戶才能将交易或将交易以其他方式推送到區塊鍊。
權限确定是否授予任何給定的行為。
每個賬戶有兩個預設的權限名稱:
-
象征着一個賬戶的所有權。 隻有少數交易需要這種權力,但最值得注意的是對owner
owner
權力作
出任何改變的行為。 一般而言,建議所有者保持冷藏并且不與任何人共享。
可用于恢複可能已被owner
洩露的另一個權限。
-
用于轉移資金,為生産者投票并進行其他進階賬戶更改。active
除了預設權限之外,帳戶還可擁有可用于進一步擴充帳戶管理的自定義命名權限。 自定義權限非常靈活,并且
在實際應用中可以解決許多可能的用例。 這很大程度上取決于開發人員如何使用它們,以及采用什麼約定(如果有的話)。
任何給定權限的權限可以配置設定給一個或多個
public key
或有效的
account_name
。
以下是所有上述概念的組合以及它們如何實際應用的一些例子。
這是帳戶在建立後的配置,它的
owner
和
active
權限隻有一個key,兩個key的權重都是1并且兩個權限的閥值
都是1。對于賬戶的預設權限配置隻需要單個簽名來授權操作。
@bob
賬戶權限
@bob
權限 | 賬戶/key | 權重 | 閥值 |
---|---|---|---|
owner | 1 | ||
EOS5EzTZZQQxdrDaJAPD9pDzGJZ5bj34HaAb8yuvjFHGWzqV25Dch | |||
active | |||
EOSh61chK8GbH4ukWcbom8HgK95AeUfP8MBPn7XRq8FeMBYYTgwmcX |
在
@bob
賬戶例子中, 這個表格展示了
@bob's
owner key
有一個權重為1的權限,并且
進行操作需要的權限閥值為1.
要在所有者權限下推送交易,隻有
@bob
需要使用其所有者密鑰對交易進行簽名,以使交易符合驗證條件。
将此密鑰存儲在錢包中,然後使用
cleos
進行處理
以下示例是名為
@multisig
的虛構帳戶的權限。 在這種情況下,兩個使用者被授權為虛構的
@multisig
帳戶的
owner
active
,三個使用者被授予權重不同的自定義
publish
權限。
@multisig
賬戶權限
@multisig
2 | |||
| |||
| |||
| |||
| |||
publish | |||
| |||
| |||
EOS7Hnv4iBWo1pcEpP8JyFYCJLRUzYcXSqt..... |
在這種情況下,需要權重門檻值2來更改所有者權限級别,這意味着由于所有方都具有權重1,
是以所有使用者都必須簽署交易才能獲得完全授權。
要發送交易需要
active
權限,門檻值設定為1.這意味着隻需要1個簽名即可授權來自帳戶
active
權限的操作。
還有一個名為
publish
的自定義命名權限。 為了這個示例,釋出權限用于使用理論部落格dApp将文章釋出到
@multisig
的部落格。
釋出權限的門檻值為2,
@bob
@stacy
的權重均為2,公鑰的權重為1.這意味着
@bob
@stacy
可以在沒有額外簽名的情況
下釋出,而公鑰需要額外簽名才能在公共許可下進行授權操作。
是以,上述權限表意味着作為帳戶所有者的
@bob
@stacy
提升了與主持人或編輯者類似的權限。 盡管這個原始示例在可擴充性方面
有特别的限制,并不一定是一個好的設計,但它充分證明了
EOS權限系統的靈活性。
此外,請注意上表中的權限是使用帳戶名稱和密鑰設定的。乍一看這可能看起來微不足道,但它确實提出了一些額外的靈活性。
意見
-
@bob
可以明确辨別為此帳戶的所有者.@stacy
- 沒有來自
或@bob
的額外簽名,公鑰無法在釋出權限下推送操作@stacy
-
@bob
@stacy
可以在釋出權限下推送一個操作,而不需要任何額外的簽名。
原文連結:
https://eosfans.io/wiki/account-permission