原文標題:《使用以太坊登入 —— 提議工作流程》
撰文:Spruce
編譯:ETH 中文站
譯者按:Spruce 是一家開源軟體公司,專注于去中心化身份和數據,從 「不是你的密鑰,不是你的幣」進化到 「不是你的密鑰,不是你的身份」,此前,ENS 和 Spruce 宣布合作關系,Spruce 發文表示 Sign-in with Ethrereum 將使用戶能夠使用他們的以太坊賬戶而不是由大企業所有的賬戶訪問 Web2 網路服務,
關于推動使用以太坊登入的工作,我們最初的目標是創建一個規范和參考實現,旨在為用戶使用以太坊賬戶登入到傳統 Web2 服務時提供一個端對端的身份認證流程,并使用 ENS 作為主要的用戶控制數據聚合器,
這將允許以太坊用戶基于密鑰提供自己的數字身份,而不是依賴于諸如谷歌、Facebook 或亞馬遜等此類中心化身份提供商。我們將進一步描述依賴方如何在保護用戶隱私的同時實現檢索和驗證有關用戶身份的資訊,例如電子郵件賬戶、電話號碼以及社交媒體賬戶。
目前,如果用戶想要登入網站,他們需要從幾家大型互聯網公司中選擇一家,以作為其數字身份的身份提供商 (identity providers, IdPs)。OAuth 2.0 和 OpenID Connect 的設計者最初打算產生一個完整的身份提供商生態系統供用戶選擇,而不僅僅是幾個統一的實體,這些大型身份提供商通過簡化終端用戶和開發者的身份驗證來控制用戶的身份標識,這意味著它們還控制對關鍵服務 (包括銀行、支付和社交網路) 的訪問 (它們甚至還擁有可見特權)。這種中介結構限制人們直接訪問線上服務大體上類似于中心化銀行限制用戶直接訪問金融市場,
兼容以太坊的錢包越來越普及,如 MetaMask 每月活躍用戶超過 500 萬,現在有一個新的方式來為登入 Web2 服務提供直接的身份驗證:即使用直接來自用戶的 Web3 錢包和 ENS 的消息前面和聲明聚合,而不是借助傳統的中介。
這些聲明不僅可以用于登入過程,還可以將現有的 Web2 賬戶更廣泛地轉變為加密貨幣的應用,
使用以太坊登入,用戶將能夠:
- 使用支持 WalletConnect 的以太坊錢包登入到已安裝 「Sign-in With Ethereum Server SDK」(使用以太坊登入的服務器 SDK) 的 Web2 服務中。
- 了解 Web2 服務需要驗證哪些資訊以及完成登入過程的來源有哪些,
- 從 「Sign-in with Ethereum Client SDK」(使用以太坊登入的客戶端 SDK) 中選擇要呈現給服務器的聲明,以便服務器可以從各種來源檢索和驗證資訊,包括以太坊名稱服務 (ENS)、星際文件系統 (IPFS)、HTTPS 等。
- 使用加密且需要授權的聲明 (注意:這可能會從擴展規范中的核心庫和規范中分離出來)。
而 Web2 服務托管將能夠:
- 將 Sign-in with Ethereum Server SDK 或規范集成到普及的 Web 框架和授權庫中,以直接或通過身份驗證方法聚合器 (例如 Auth0 或 Passport.js) 支持 Sign-in with Ethereum,
- 明確 Sign-in with Ethereum 的要求,作為登入過程的一部分,服務可以檢索和驗證由用戶提交和 / 或由 ENS 聚合的聲明,例如 Web3 帳戶余額、NFT 所有權、W3C 可驗證憑據等。
- 將 Web2 帳戶鏈接到以太坊地址,服務可以檢索和驗證由用戶和 / 或 ENS 提交的聲明,以使用新功能來擴充他們的 Web2 帳戶,例如僅供 NFT 所有者使用的特殊門戶或下載、DAO 成員的私有鏈下管理面板,或從鏈上數據或鏈下簽名憑證做出的其他決定,
- 僅使用配置將 Sign-in with Ethereum 工作流集成到現有的 OAuth 2.0/OpenID Connect 依賴方,此工作流依賴于受信任的身份提供商,該身份提供商支持 Sign-in With Ethereum 的身份認證方法,并且能夠建立 OAuth 2.0/OpenID Connect 會話,
就工作流如何運作而言,依賴方將首先向用戶呈現登入要求,包括不同身份驗證類型需要來自 ENS 的哪些聲明、防止重播的隨機數以及唯一的站點身份標識。在這種情況下,ENS 域所有權可以作為基本的反女巫機制。
然后,用戶通過 WalletConnect 簽名執行基于以太坊的身份驗證,該簽名被發送到依賴方。此步驟將使用支持用戶選擇相關聲明的數據模式,允許用戶規定依賴方應查詢哪些聲明 (即應該用于建立會話的有關其帳戶的選定事實)。這些事實通過 ENS 作為 TXT 記錄按值或按引用 (即 URL) 檢索,
接著,依賴方使用聲明查詢方法檢索和驗證以太坊賬戶的相關聲明,如 ENS 地址、電子郵件驗證、社交媒體賬戶鏈接或驗證 (例如,通過 Uniswap Sybil),以及用戶和服務器都支持的任何其他聲明,
那么用戶就可以像平常一樣訪問該服務并與之交互,并能夠提供自己的數字身份,而不是受中心化身份提供商的支配。我們相信這將是用戶控制和管理網路交互的偉大進步,
關于隱私的說明,我們將首先關注那些已經習慣于將他們的以太坊地址與他們的公共形象關聯并理解其含義的 Web3 用戶,例如許多在 Twitter 上自豪地將他們的 NFTs 作為他們的個人資料圖片 (pfp) 展示的人,我們認為,隱私應當是實現適當的資訊流動,而不是絕對保密,隨著不同用戶群體 (如主流網路用戶) 對隱私的要求發生變化,我們使用隱私工具的方法也必須改變,例如在每次交互的基礎上使用新衍生的以太坊地址,或結合零知識的隱私技術來減少關聯性,