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