作者:txohyeah
審閱:outprog
來源:內容公會- 新聞
什麼是女巫攻擊?
女巫攻擊(Sybil Attack)是一種網路攻擊方式,指攻擊者透過控制多個虛假身分(或稱為「女巫身分」)來影響或控制網路系統。這種攻擊方式的名字來自一個名為Sybil Dorsett的真實案例,她被診斷出患有分離性身分認同障礙(即多重人格障礙)。這個術語被借用到網路安全領域,用來描述攻擊者透過創建多個虛假身分來進行攻擊的行為。
在Web3 的世界裡面,防女巫攻擊一直是繞不開的話題。為了防範女巫攻擊,網路系統通常會採取一系列措施,例如使用工作量證明(Proof of Work, PoW)、權益證明(Proof of Stake, PoS)等機制來提高攻擊成本,或透過訊息圖譜分析、中心化身份驗證等手段來識別和隔離虛假身份。 今天介紹的Vouch 系統結合了多種方式,建構了一個防女巫攻擊的體系。
什麼是Vouch 系統?
Vouch 系統是一個建構在AO 之上的信譽評估系統,它透過綜合分析使用者的各方面的資料為每個使用者計算出一個獨特的vouch 分數。這個分數不僅反映了使用者在AO 生態中的活躍度和可信度,也能夠作為衡量使用者真實性的關鍵指標。 AO 上的各大應用程式可利用此分數來有效地區分真實用戶,從而優化用戶體驗並增強平台的安全性。此外,vouch 分數還能在授權重要操作時發揮作用,例如,在進行使用者獎勵時,擁有較高vouch 分數的使用者可能會被賦予優先權或額外的獎勵。這種方式不僅激勵了使用者積極正面的行為,同時也促進了健康和諧的網路環境建構。
目前Vouch 系統的入口為: https://vouch-portal.arweave.net/
為Llama Land 和Permaverse 兩大平台提供了快速運算的方式。即計算出你的帳號現在有多少vouch 分數,每個途徑提供了多少,以及總共需要多少分數才能參與平台的一些活動。其他的應用雖然沒有提供快速的計算方式,但仍然可以使用vouch 分數進行使用者驗證,後面我們會以「羊駝傳媒」為例進行介紹。
四種Vouch 的方式
Vouch X
透過推特來驗證使用者的身份,其中會對推特帳號有一個要求,例如在帳號註冊時間等方面。當然一個推特帳號只能被用來取得一次vouch 分數。
Vouch Gitcoin Passport
Gitcoin Passport 是一個由Gitcoin 開發的數位身分驗證系統,旨在為區塊鏈專案和去中心化應用程式(DApps)提供一種更安全、更透明的方式來驗證用戶的身份,同時保護個人隱私。透過驗證Gitcoin Passport,使用者也可以獲得vouch 分數。同樣的,一個Gitcoin Passport 只能用來取得一次vouch 分數。
Vouch AO Balance
目前AO token 仍然處於不可轉帳狀態,因此用戶可以透過驗證AO 餘額來獲得vouch 分數,並且AO 餘額獲得的vouch 分數非常不錯。
Vouch wAR Stack
最後一種方式是質押wAR。 Vouch 系統會根據質押wAR 的時間、目前AR 的價格,計算出vouch 分數。
系統架構
如下架構圖所示,
- Vouch 系統的核心管理者是一個名為VouchDao 的AO 流程。主要包括快取vouch 記錄以及查詢vouch 記錄的功能。
- 在vouch 記錄中,包含了總的vouch 分數,還有在不同途徑中獲得的vouch 分數。
- Vouch X、Vouch Gitcoin Passport、Vouch AO Balance 三種方式均純前端方式的Permaweb 程序,分別實現了計算分數以及發送記錄給VouchDao 進程的方法。
- Vouch wAR Stake 的方式比較複雜。不僅包含了前端程序,還包含了多個AO 進程。透過Vouch Custody 流程進行vouch 分數計算,以及傳送記錄給VouchDao 流程。另外,每次質押wAR 的時候會由Custody Creator 流程管理,為每個質押的使用者建立一個質押流程。
- Vouch 系統可以在未來根據新的抗女巫攻擊的方法進行擴展。可以說擴展性非常強大。
在羊駝大陸的應用
有人說過,沒有被攻擊過的項目都是經不起風雨的項目。羊駝大陸計畫也在與機器人大軍的鬥爭中鬥智!從一開始的白名單排隊,到後來羊駝大陸的昨天每天手動封號,羊駝大陸的開發者花費了大量的力氣。於是Vouch 系統應運而生。
目前在羊駝大陸中需要首先成為羊駝公民才能領取每日登錄獎勵以及向羊駝國王請願,不過沒有成為羊駝公民的用戶依舊可以在羊駝大陸來往。成為羊駝公民需要在公民管理員那裡完成vouch 分數的驗證,大於5 分才可以成為羊駝公民。第一次成為羊駝公民會給25 羊駝代幣,作為玩家的起始資金。
Vouch 系統應用demo
接下來,筆者透過羊駝傳媒來舉例說明如何在自己的應用中使用Vouch 系統進行驗證。羊駝傳媒是依託於羊駝大陸平台建構的傳媒公司,其中廣告業務可以給到點擊廣告的用戶一部分看廣告的收益。那麼試想下,如果沒有防女巫攻擊的話,這部分收益很快就會被機器人全部領完。這將損害了廣告主的利益,也讓真實的用戶無法獲得廣告收益。因此在羊駝傳媒業務員NPC 的領取功能中加入瞭如下代碼,
那麼主要驗證就是來自GetVouchScoreUsd(msg.From) 函數,該函數獲取了用戶的vouch 分數,並且在後續判斷vouch 分數如果小於2 分,則讓用戶先去完成vouch 驗證。讓我們來具體看看函數裡面的內容,如下程式碼所示,其中id 為ZTTO02BL2P-lseTLUgiIPD9d0CF1sc4LbMA2AQ7e9jo 進程即為上文中提到的VouchDao 進程,函數中發送了一條Action 為Get-Vouches 的消息,就可以獲取對應用戶的vouch 記錄以及其明細了。
那麼VOUCHER_WHITELIST 又是什麼呢?相信大家也都能猜到,四個地址正好對應了四種vouch 方式。對應關係如下,
- Vouch-X - Ax_uXyLQBPZSQ15movzv9-O1mDo30khslqN64qD27Z8
- Vouch-Gitcoin-Passport - k6p1MtqYhQQOuTSfN8gH7sQ78zlHavt8dCDL88btn9s
- Vouch-AO-Balance - QeXDjjxcui7W2xU08zOlnFwBlbiID4sACpi0tSS3VgY
- Vouch-wAR-Stake - 3y0YE11i21hpP8UY0Z1AVhtPoJD4V_AbEBx-g0j9wRc
如果自己的應用中希望有更精細的控制,也完全可以實現對應的驗證函數。
在自己的應用中使用Vouch 系統,是不是很簡單。趕緊在自己的應用程式中建構抗女巫攻擊的保護吧!