oAuth and Account Abstraction
POC 通常代表 "Proof of Concept"(概念验证),而 Demo 则代表 "Demonstration"(演示)。虽然两者在某些情况下可能有相似之处,但它们的目的和使用场景有所不同:
-
Proof of Concept (POC): 这是一个初步的展示,旨在验证一个想法、概念或技术是否可行。POC 通常是为了证明某个技术或方法在特定条件下可以工作,但它可能不具备完整的功能或不是最终产品。它主要用于评估可行性和潜在的技术风险。
-
Demonstration (Demo): 这是一个更成熟的展示,通常是为了向潜在客户、投资者或其他利益相关者展示产品或解决方案的功能和价值。Demo 通常是更接近最终产品的版本,目的是展示其实际应用和用户体验。
简单来说,POC 更关注于验证可行性,而 Demo 更关注于展示功能和价值。
- https://www.stackup.sh/blog/the-future-of-ethereum-access-oauth-and-account-abstraction
- https://forum.openzeppelin.com/t/sign-in-with-google-to-your-identity-contract-for-fun-and-profit/1631
- https://cloud.google.com/identity-platform/docs/web/oidc?hl=zh-cn#signing_in_users_directly
- https://identity-recovery-demo.openzeppelin.com/ demo 是在 Rinkeby network 上的,运行不了
- https://github.com/OpenZeppelin/solidity-jwt 源码
- https://cloud.google.com/identity-platform/docs/web/oidc?hl=zh-cn
- https://portal.thirdweb.com/connect/in-app-wallet/custom-auth/custom-jwt-auth-server
Verify directly with an identity service provider using JWT ID Tokens
你描述的方案涉及将用户身份验证的责任部分转移到区块链上,通过验证 JSON Web 令牌 (JWT) 签名来确保用户身份。这种方法结合了区块链技术和 OAuth 身份验证机制,确保用户身份的安全性和可信度。以下是该方法的详细步骤:
-
用户身份验证:
- 用户通过 OAuth 流程在身份提供者 (IdP) 处进行身份验证。
- IdP 验证用户身份后,返回一个包含用户身份信息的 ID 令牌(JWT)。
-
ID 令牌传递:
- 用户将从 IdP 获取的 ID 令牌(JWT)传递给合约账户。
-
合约账户验证:
- 合约账户接收到 ID 令牌(JWT)后,需要验证其签名以确保其真实性和完整性。
- 合约账户调用一个独立的单例 JWT 签名合约,该合约包含主要 OAuth 提供商的公钥。
-
JWT 签名验证:
- 单例 JWT 签名合约使用存储的公钥来验证 JWT 的签名。
- 如果签名验证成功,表明该 JWT 是由可信的 IdP 生成的,并且未被篡改。
-
身份确认:
- 一旦 JWT 签名验证通过,合约账户可以信任该 JWT 中的用户身份信息。
- 合约账户根据 JWT 中的用户身份信息进行相应的操作,如授权访问某些资源或执行特定的合约功能。