由 Consensys 打造的領先自託管加密貨幣錢包與 Web3 入口。
閱讀所有文章ETHBogota 黑客松 Snap

MetaMask Snaps 是讓 MetaMask 成為全球最具擴展性錢包的發展藍圖。身為開發者,您可以透過全新的方式將您的功能與 API 帶入 MetaMask。Web3 開發者是這股成長動能的核心,本系列旨在展示當今正在打造的創新 MetaMask Snaps。
Snap 程式庫: https://github.com/s-a-malik/blackbelt
為什麼要打造它?
我們希望讓終端使用者在區塊鏈上的互動更加安全,尤其是那些擔心成為詐騙與漏洞攻擊受害者的新手或非技術背景使用者。因此,我們構思了一種能為智能合約互動提供即時風險評估的方式。
能帶我們了解技術實作細節嗎?
技術架構
Blackbelt 由三個元素組成:我們的伺服器、MetaMask snap,以及我們的網站前端。伺服器負責擷取資料並計算智能合約的風險分數。MetaMask snap 與我們的網站都會呼叫伺服器,並在 https 請求中提供特定的合約地址。完整的專案實作可在此處找到。
伺服器
我們的伺服器採用 Flask 後端,以 json 格式回傳安全分數與元資料。當 GET 請求發送至路由 /security_score 時,函式 security_score() 便會被呼叫。首先,所有提供的參數(如合約地址、使用者地址、鏈 ID 及呼叫來源)將被解包,並部分解析至函式 compute_security_score(contract_address, chain) 中,該函式會擷取鏈上資料並針對多個變數(例如合約年齡)計算安全分數。為加快 MetaMask Snaps 內的資料擷取速度,當透過 MetaMask Snaps 呼叫伺服器時(參見變數 is_snaps),我們會在有快取結果的情況下優先提供快取資料。
compute_security_score 函式(位於 logic.py 檔案中)根據來自 Coinbase Cloud API、etherscan API,以及我們自建的社群維護惡意地址回報資料庫的鏈上資料,計算啟發式風險分數。以下程式碼片段展示了用於計算分數的幾種因素類型。例如,我們會檢查合約是否在 etherscan 上被標記為已驗證且經過審計,以及合約的建立時間。
未來,我們計劃整合更多有助於識別惡意合約的資訊來源(例如自動化驗證工具與現有黑名單資料庫),並採用更精細的風險分數計算方式,例如運用機器學習方法。
Snap
在 snap 方面,我們使用交易洞察 API,每當有交易發生時便會觸發。Snap 共分四個步驟:第一,從交易結構中擷取交易關鍵細節;第二,將交易細節傳送至我們的伺服器並取得安全分數與元資料;第三,檢查請求狀態並處理任何錯誤;第四,在 MetaMask Snaps 中以 json 物件形式回傳安全分數與元資料。
網站
網站以 React 撰寫,用於在將功能加入 MetaMask 之前快速測試。使用者可以輸入合約地址並按下「立即評分」來試用我們的功能。如果使用者喜歡我們的應用程式,可以點擊右上角的「新增 MetaMask Snap」將其加入 MetaMask。
如果要繼續實作,下一步是什麼?
下一步將是改善我們的後端與分析能力,以更可靠地偵測高風險合約。目前,我們的評估基於啟發式方法,例如每日活躍使用者數或交易數量(越高越好),但我們希望引入更進階的技術,如機器學習,以更精確地計算風險分數。在改善分析能力之後,我們將專注於加速整個風險評估流程,讓使用者體驗盡可能流暢——這可以透過快取或更快速的資料擷取程序來實現。
能介紹一下您自己和您的團隊嗎?
我們是一個由三位牛津大學博士生和一位牛津大學畢業生組成的團隊。我們隸屬於牛津區塊鏈學會,並在 ETHBogota 黑客松期間相識並組成團隊。
Lucas Schneider: Lucas 是牛津大學計算機科學系的 DPhil 候選人,專注於利用計算與機器學習模型預測 CRISPR 系統中的基因編輯結果。在開始 DPhil 之前,Lucas 曾在倫敦巴克萊投資銀行的證券化產品結構化部門擔任分析師,參與多項特殊結構化信貸交易,以及不良貸款與商業房地產投資組合的融資業務。他擁有倫敦政治經濟學院的金融碩士學位,以及弗里德里希-亞歷山大大學埃爾朗根-紐倫堡分校專注於量化方法的經濟學學士學位。
Shreshth Malik: Shreshth 是牛津大學機器學習系的 DPhil 候選人,專注於提升深度學習方法的穩健性與可靠性,以實現更值得信賴的真實世界應用。他也曾在多家 AI 新創公司及一家位於倫敦的種子期創投基金任職。他擁有機器學習(倫敦大學學院)與物理自然科學(劍橋大學)的碩士學位。
Paweł Narkiewicz: Paweł 是一位連續創業家、科學家與科技狂熱者。18 歲時,他與來自史丹佛大學和哈佛大學的頂尖數學家共同發表了他的第一篇數論研究論文。一年後,他創辦了一家成功的教育科技新創公司,致力於加速波蘭的技術技能發展,該公司在三個月內便實現自負盈虧。與此同時,Paweł 以營運股東兼機器學習工程師的身份加入一家醫療科技新創公司,主導開發該公司核心技術功能之一,並與牛津、史丹佛及哈佛的頂尖研究人員直接合作。該新創公司在種子前輪獲得 77 萬美元融資,種子輪獲得 320 萬英鎊融資。他擁有牛津大學數學與計算機科學學士學位。
Jessica Pointing: Jessica 正在牛津大學攻讀物理學博士,專攻量子計算,此前曾以 Knight-Hennessy 學者身份在史丹佛大學攻讀計算機科學博士。她以 John Harvard 學者身份以優異成績取得哈佛大學物理學與計算機科學學士學位,此前曾就讀於麻省理工學院。Jessica 入選《富比士》30 Under 30 科學類榜單,並獲選為世界經濟論壇量子應用全球未來委員會的委員研究員。她曾受邀擔任 TEDx 演講者,並在國際科技會議上發表主題演講,包括 IBM Think 大會與 Oracle Code One 大會。她曾在 NASA 艾姆斯研究中心的 KBR 擔任量子研究實習生、在 Google 擔任軟體工程師實習生、在麥肯錫擔任管理顧問實習生、在高盛擔任投資銀行實習生,以及在摩根士丹利擔任策略師實習生。Jessica 創辦了史丹佛量子計算協會與哈佛大學量子計算協會。她帶領團隊贏得 IBM Q 量子計算獎,該獎項頒發給 IBM 首屆量子計算黑客松的冠軍隊伍。她也是 Creative Destruction Lab 量子計算黑客松的得獎者。Jessica 參加了以太坊黑客松 ETHAmsterdam,其團隊榮獲大獎決賽入圍獎及多項贊助商獎項。她曾獲得麥肯錫女性影響力獎,並被評選為 Google Anita Borg 學者。她也獲得了來自微軟、Palantir、Adobe Research、摩根士丹利、高盛、Neo、女性工程師學會及地球物理學家學會的獎學金。
您是什麼時候第一次接觸到 MetaMask Snaps 的?體驗如何?
我們在 ETHBogota 首次接觸到 MetaMask Snaps。它是以最友善使用者的方式將 Blackbelt 實現的完美功能。整體而言,使用 MetaMask Snaps 的體驗相當愉快,因為 MetaMask Snaps 相當易於上手。由於 MetaMask Snaps 仍屬新功能,偶爾還是有一些小問題在黑客松期間讓我們頭疼,但都不是什麼大問題。
MetaMask Snaps 與其他錢包有何不同?
MetaMask Snaps 是一種將錢包擴充功能開發開源化的絕佳方式,能為有不同需求的終端使用者提供多元且個人化的解決方案。據我們所知,MetaMask 是目前唯一支援自訂插件的錢包提供商。
請告訴我們您和您的團隊使用 MetaMask 建構 Snaps 的體驗?
使用 MetaMask Snaps 進行開發相當容易。我們從其中一個範例專案開始,幫助我們更好地理解 MetaMask Snaps 的運作機制,然後在範例程式碼的基礎上繼續開發。在 MetaMask Snaps 中開發很有趣,但偶爾遇到的一些錯誤確實讓我們頗費心思,尤其是在黑客松緊迫的截止期限下。
MetaMask Snaps 對您來說意味著什麼?
MetaMask Snaps 是我們一直希望錢包能擁有的功能。對開發者而言,它開啟了各式各樣的創新機會。
您認為 MetaMask Snaps 為 Web3 領域帶來了哪些機遇與可能性?
MetaMask Snaps 將為整個 Web3 生態系統帶來更高的客製化程度,從而提升整體使用者體驗,因為使用者可以自行決定想要哪些功能。
對於有意嘗試 MetaMask Snaps 的開發者,您有什麼建議?
盡情探索 MetaMask Snaps 吧。最簡單的入門方式是從其中一個範例專案開始,了解 MetaMask Snaps 的運作方式,然後在此基礎上繼續開發。如果遇到未知問題,您隨時可以在 MetaMask Snaps 的 git 上發布問題,向 MetaMask Snaps 開發者尋求協助。
開始使用 MetaMask Snaps:
查閱開發者文件
透過 Twitter、GitHub 討論區及 Discord 與我們保持聯繫
請留意我們的團隊將出現在您附近的下一場黑客松!祝 BUIDL 愉快 ⚒️
免責聲明:MetaMask Snaps 通常由 Consensys Software 以外的第三方開發。使用第三方開發的 MetaMask Snaps 須由您自行斟酌與承擔風險,並同意您將對因此類活動所造成的任何損失或損害負全部責任。Consensys 對第三方開發的 MetaMask Snaps 不提供任何明示或暗示的保證,並對第三方開發的 MetaMask Snaps 免除一切責任。使用區塊鏈相關軟體存在風險,使用 MetaMask Snaps 即表示您完全承擔相關風險。
AI 翻譯。可能包含錯誤。請務必核實資訊。