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