在區塊鏈的世界里,安全是我們首要考慮的問題,對于 EOS 公鏈來說,合理的賬號權限管理往往決定了賬號的安全性。
而在 EOS 賬號權限管理中,通過 EOS 賬號的自定義權限功能,可以大大增加 EOS 賬號的安全性。今天我們就來學習如何給EOS賬號設置自定義權限,以及自定義權限有何用?
1. 自定義權限有什么用?
EOS 賬號默認有 owner 和 active 兩個權限,除了默認權限外,我們還可以給EOS賬號設置自定義權限,權限的名稱和功能都可以根據自己的需要進行自定義。
EOS 賬號權限設計非常靈活。例如,可以設置一個自定義權限 Vote,該權限只能用于投票,這樣用 Vote 權限對應的公鑰只能用于投票,不能用于轉賬等其他操作,即使該私鑰被泄漏,也僅僅只能用于投票,不能進行其他操作(例如轉走賬號里邊的 EOS 資產),增加了賬號的安全性。
2. 如何設置EOS賬號的自定義權限呢?
給EOS賬戶設置自定義權限,主要分為兩步,第一步是給賬號添加自定義權限,第二步是為該權限關聯相應的操作功能。
下面以給EOS賬號添加一個僅能用于節點投票的自定義權限 Vote 為例進行詳細的說明。
一、設置自定義權限
1、使用 Scatter 工具連上 https://eostoolkit.io/ 網站;
2、在設置自定義權限前,需要先到 Scatter 里邊設置一下防火墻;
如上圖,在 Settings -》 Firewall -》 Blacklisted Actions 里邊,把 eosio 的 updateauth 權限 remove 掉,即點擊 「remove」 按鈕,這樣我們才能更新EOS賬戶的權限(如添加自定義權限)。
3、點擊左側「Manage Account」,然后點擊左邊菜單中的 「**Advanced Permissions」** 按鈕;
4、在右側的表單中新增一個權限,如下圖(默認)
各個字段的含義如下:
· Account:要添加自定義權限的賬戶,連接了 Scatter 錢包后,這里默認會顯示 Scatter 連接的 EOS 賬戶;
· Parent:要添加自定義權限的父權限,默認為 Owner,一般來說,我們設置為 Active 就可以了;
· Threshold:閾值,在多設置多簽的時候用,使用默認的1即可;
· Weight:賬戶的權重,默認設置為1;
· Permission:權限名稱,例如常見的權限為 Owner 和 Active,這里默認顯示的是 active,這里輸入自定義權限名 Vote;
· Authority:權限對應的公鑰(也可以是賬戶名,這里只介紹設置公鑰),這里輸入公鑰,可以使用 Scatter 的新建密鑰對功能創建密鑰,然后把私鑰保存好,這里填入公鑰。
表單中要求的字段都填寫完畢后,點擊下邊的「UPDATE」按鈕,在彈出的scatter框中,點擊「接受」,授權 Scatter 發送交易后,Vote 權限就新增成功了。
此時,我們在 EOS 區塊瀏覽器查詢賬號權限信息時,就可以看到新添加的 Vote 權限了。
在自定義權限增加好以后,Vote 權限還不能進行任何操作,還要給這個權限關聯一些操作功能(本例為給EOS節點投票的功能)。
二、給自定義權限關聯相應的操作功能
1、點擊左側「Manage Account」下邊的「Link Auth 」按鈕,然后可以看到右側的表單信息。
各個字段的含義如下:
Account Name:默認顯示的是 scatter 連接的eos賬戶;
Account Permission:填入自定義權限的名稱;
Contract Name 和 Contract Action:合約名稱與合約功能。
一些常用功能的 Contract Name 和 Contract Action,都有哪些呢?
可以通過訪問鏈接:https://blog.eospark.com/system_contract_API_introduction_v1.2.1.html 進行查看,比較常用的如下:
例如在上面表格的最后一行,合約賬號 eosio 的 Active(操作)voteproducer,具有投票功能。
2、在上面的表單中,填寫相應的信息:
Account Permission:voteContract
Name:eosioContract
Action:voteproducer
3、填寫完后,點擊「LINK AUTH」 按鈕。在彈出的scatter框中,點擊「接受」。
至此,自定義權限 Vote 就具備了投票的功能。成功后,現在可以測試下 Vote 的權限。
三、測試 EOS 賬號自定義權限
使用 Vote 權限關聯的公鑰導入該 EOS 賬號到 TokenPocket 錢包。
從上圖中可以看到自定義權限 vote 已經顯示出來了,我們試試轉賬功能。
出現了錯誤提醒,說明自定義權限 Vote 并不能進行 transfer 轉賬操作。經測試,使用 Vote 權限確實可以進行投票(如下圖),說明自定義權限 Vote 設置成功。
有了自定義權限功能,我們可以根據需要設置特定的權限,例如可以設置 Vote 權限只能用于投票、RAM 權限只能用于購買 RAM 等,可以靈活的實現 EOS 賬戶權限的分級管理,在一定程度上可以確保 EOS 賬號的安全。
評論
查看更多