本文由幣乎社區(qū)(bihu.com)內(nèi)容支持計劃贊助
在看本文前制跟,最好先了解區(qū)塊鏈相關概念:比特幣。以太坊酱虎,錢包雨膨,智能合約,秘鑰等
為了更好的理解读串,先看看一個普通賬戶系統(tǒng)需要哪些功能
假設我剛進入一個網(wǎng)站聊记,我首先要能注冊一個帳號,然后能用帳號登錄恢暖,登錄成功后能夠在一定時間內(nèi)保持已登錄狀態(tài)甥雕,同時我還有可能要對帳號的一些基本信息進行修改。另外出于之前密碼泄露事件的影響胀茵,我不希望我的密碼是被明文保存社露,希望我的帳號是安全的。
基于以上一個用戶使用的流程來說琼娘,一個帳號系統(tǒng)功能可以進行如下劃分:
用戶注冊
用戶登錄
用戶登錄后身份校驗
用戶基本信息修改
用戶基本信息獲取
用戶安全中心
從上述功能上考慮峭弟,可以進行如下劃分:
用戶基本信息服務,提供用戶的基本信息的獲取和修改脱拼,
用戶的注冊和登錄服務瞒瘸,提供用戶的注冊、登錄授權頒發(fā)用戶的登錄標識
用戶身份校驗服務熄浓,對用戶的登錄標識進行校驗
用戶安全中心服務情臭,提供用戶的重要信息的修改如登錄的郵箱手機號,密碼等赌蔑。用戶在進行這些敏感信息的修改是需要進行身份認證俯在,來保證用戶的安全性。
簡單來說一個賬戶系統(tǒng)就是為用戶設計的娃惯,需要考慮用戶在應用上的各方面的需求跷乐。
下面我們來看看EOS.IO為用戶設計了怎樣的賬戶系統(tǒng)。
技術白皮書上關于賬戶系統(tǒng)趾浅,列舉了以下幾點
4.帳戶
消息和消息處理程序
基于角色的權限管理
命名權限級別
命名消息處理程序組
權限映射
權限評估
默認權限組
權限的并行評估
有強制延遲的消息
密鑰被盜后的恢復
雖然還不知道以上列出的概念具體講的是什么愕提,但單從字面上就可以看出,它有消息皿哨、權限浅侨、安全等功能。相比于比特幣证膨,以太坊的只有私鑰和地址概念的賬戶系統(tǒng)如输,可以說是非常先進了。他們的區(qū)別有點像沒有裝圖形界面系統(tǒng)的電腦和裝了圖形界面系統(tǒng)(例如:Windows,macos)的電腦的區(qū)別挨决。
另外请祖,EOS可以使用一個人類可以閱讀的2-32個字符來創(chuàng)建賬戶,而比特幣和以太坊的賬戶地址是一串看不懂意思的字符串脖祈。
以及肆捕,EOS的賬戶支持域的概念,你可以創(chuàng)建一個叫jack的賬號盖高,表示為@Jack慎陵,接著你可以再創(chuàng)建一個叫做@shuai.jack的賬戶,并且這個賬戶只能由你創(chuàng)建喻奥。
從以上幾點可以看出席纽,EOS在可用性上比比特幣、以太坊好太多撞蚕。
在現(xiàn)實生活中润梯,每個人都不是獨立的個體,人與人的溝通是生活中不可或缺的部分甥厦。在EOS系統(tǒng)中也是一樣纺铭,賬戶與賬戶之間需要通信,而"消息"就是他們之間通信用的語言刀疙。
EOS的消息處理機制
每個賬戶都可以發(fā)送結(jié)構(gòu)化消息到其他賬戶
賬戶可以定義消息被接收后的處理腳本(程序)
每個賬戶有自己獨有的數(shù)據(jù)庫舶赔,只能自己的消息處理程序訪問
賬戶的消息處理程序可以想其他賬戶發(fā)送消息
消息和自動的消息處理程序的組合是EOS定義智能合約的方式
當用戶使用一個應用(基于EOS)的時候,會有各種各樣的操作谦秧,而有些操作比較私密竟纳,不能隨便操作,需要密碼等權限疚鲤。就好比你用“登錄密碼”可以登錄支付寶锥累,但是需要“支付密碼”才能支付。所以對賬戶進行權限管理是很有必要的石咬,EOS的權限管理是基于角色的揩悄。
基于角色的權限管理
1)判斷一條消息或消息程序或事務是否被授權,最簡單的形式是這條消息是否包含一個簽名鬼悠,并且知道這個消息是誰的
2)為了更細和更高級的控制權限,EOS提供了一個聲明式權限管理系統(tǒng)亏娜,把個人和群組綁定在一起焕窝。這怎么理解呢?一般來說维贺,大范圍的權限可以控制群組(角色)它掂,細的權限可以控制個人,而個人又可以在群組(角色)里,還可以是多個群組虐秋,這樣就可以做到權限的隨意控制榕茧。
3)認證和權限管理必須標準化,并與應用程序的業(yè)務邏輯分開客给。這使得開發(fā)工具能夠以通用的方式管理權限用押,并為性能優(yōu)化提供重要的機會。
4)EOS還提供多賬戶的控制靶剑,多用戶控制是提升安全性的最重要因素蜻拨,如果能正確使用,可以極大地消除黑客盜竊的風險(把錢放到多個錢包比放在一個錢包安全吧)桩引。
5)EOS還允許當前賬戶和其他賬戶的各個權限進行組合缎讼,并發(fā)送到另外的賬戶。這就類似支付寶的“登錄密碼”和“支付密碼“坑匠。
想要做到以上幾條血崭,EOS是怎么做的,以下是它的權限管理方案:
1)命名的權限級別
EOS允許不同的權限設定不同的名字厘灼,當然它提供了兩個默認的級別功氨,它們分別是最高級的Owner,其次是Active手幢。其他的權限級別的名字可以自己定義了捷凄,例如,你需要定義兩個權限級別围来,一個給你老婆用班缰,一個給你孩子用,你就可以分別取名為老婆大人吸祟、小可愛属拾。
2)命名消息處理程序組
這個是干嘛用的呢?每個賬戶將自己處理消息的程序按照@accountname.groupa.subgroupb.MessageType這樣的格式命名后胀蛮,可以給其他賬戶使用院刁。在這樣的模式下,可以將創(chuàng)建和取消訂單的交易合約與存取款的交易合約分離粪狼。這種交易合約的分組對用戶使用交易合約提供了較大便利退腥。
# 權限映射:命名權限級別和命名的消息處理群組之間是可以做映射(關聯(lián))的。
# 權限評估:怎么判斷權限的大性匍狡刘?EOS是按照從小到大的權限順序進行判斷的。例如:當 @alice 以 "Action" 類型發(fā)送一條消息給 @bob 時困鸥,首先會檢查 @alice 是否為 @bob.groupa.subgroup.Action 定義過權限映射嗅蔬。 如果什么都沒有找到,緊接著檢查 @bob.groupa.subgroup 映射,然后是 @bob.groupa澜术,最后 @bob 將被檢查艺蝴。 如果都沒有找到,那么假定映射為命名的權限群組 @alice.active鸟废。
# 默認權限組:最高級的權限是“owner”猜敢,這個權限可以做任何事情,但是一般不用做具體工作侮攀,一般用來做冷備份锣枝,比如說Active權限丟了,可以用“owner"權限來恢復兰英。在”owner“之下就是”active"了撇叁,它是可以做除了修改“owner”以外的所有事情,一般業(yè)務都是由active權限來完成畦贸。其他的所有權限組也都是從“active"權限派生出來的陨闹。
# 權限的并行評估:權限評估是個”只讀“的過程。所有事物的所有秘鑰和權限評估可以并行執(zhí)行薄坏。
強制延遲的消息
時間是安全的關鍵組成部分趋厉。怎么理解呢?
一條消息發(fā)出去胶坠,可能會受到很多因素的干擾而不能被及時接收確認君账,這時的你可能想取消發(fā)送消息。EOS允許發(fā)送有時間延時的消息沈善,在特定時間范圍內(nèi)可以取消消息乡数。這種延遲消息具體能延時多長時間,還得看具體的應用場景闻牡。比如說净赴,我們買一杯咖啡可以在幾秒鐘之內(nèi)付完錢,而買房子可能需要72小時清算周期罩润。具體取決于應用場景以及應用開發(fā)者怎么設定玖翅,用戶怎么操作的。
恢復被盜竊的秘鑰
在幣圈我們常掣钜裕看到新聞里有報道某某某秘鑰被盜金度,損失多少多少這樣的事件。EOS為用戶提供了一種在秘鑰被盜時恢復其賬戶控制的方法拳球。包括以下4點:
1审姓、賬戶所有者可以使用30天內(nèi)的任意Owner權限的密鑰,注意這個密鑰可能已經(jīng)被黑客換過了祝峻,但是在這個場景下這個密鑰還是可以使用的;
2、使用任意30天內(nèi)的Owner密鑰和指定的合作伙伴才能恢復密鑰莱找。
3酬姆、這里面合作伙伴不能在沒有Owner協(xié)助的基礎上恢復密鑰。
4奥溺、合作伙伴也不會參與任何日常交易辞色,這樣可以大大降低法律上的風險。
配合學習筆記系列文章一起讀會更好理解哦
EOS技術白皮書學習筆記(一)- 摘要浮定,背景相满,共識算法
EOS技術白皮書學習筆記(三) - 應用程序的確定性并執(zhí)行
本文首發(fā)于微信公眾號:lin-mingtan 歡迎關注交流 ^.^