
一、适用范围:平台登录不等于链上身份
本文讨论教育平台引入区块链账户时涉及的通用认证概念,不指向某个具体产品。以太坊账户文档解释链上账户及其控制方式,MDN的Web Authentication API文档解释网站公钥认证;两者分别对应账户层与网站登录层。
理解用户认证,首先要明确验证目标:证明用户能够控制某项凭证,不等于核实其姓名、学籍或学习成果。不能仅凭一次认证,就认定某人完成了课程。

二、账户、地址与钱包
以太坊区分由私钥控制的外部账户和由代码控制的合约账户。地址是账户标识,钱包则是与账户交互的应用或界面,三者不能互相替代。

因此,教育平台展示一个地址,只说明展示了账户标识,并未完成用户认证。合约账户也不能简单套用“每个账户都有一把私钥”的理解。
三、公私钥与数字签名
公钥密码学利用相互关联的密钥完成签名和验证。私钥用于签名,验证方利用相应的公开信息检查签名,而不需要获取私钥。
签名主要回答“这段内容是否得到相应密钥的签署”。其意义取决于签署内容:登录声明和链上交易不是同一种操作,平台不应让用户把登录确认误解为交易授权。
四、挑战响应与重复使用防护
WebAuthn认证中,服务端提供随机挑战,认证器使用已注册凭证生成响应,服务端再进行验证。这使认证围绕当前请求展开,而非反复提交固定证明。
以太坊交易中的nonce是账户计数机制,网站认证挑战则是登录协议中的随机信息。两者都涉及避免旧请求被重复接受,但不能直接互换。
五、WebAuthn与通行密钥
MDN将WebAuthn介绍为基于公钥密码学的强认证接口,可用于无密码登录及多因素认证,网页中的通行密钥通过该接口实现。它要求安全上下文,并通过站点绑定帮助抵御钓鱼。
这类凭证服务于网站认证,并不天然等同于以太坊账户密钥。若平台同时提供通行密钥登录和钱包关联,需要明确两种凭证分别证明什么,而不是将其视为同一身份凭证。
六、常见问题与使用边界
钱包登录是否必须上链?消息签名与发送链上交易应当区分,证明签名有效不必然意味着发生链上状态变更。是否必须同时采用WebAuthn和钱包认证?并非如此,选择取决于平台需要网站登录、链上账户关联,还是两者兼有。
认证成功是否就能访问所有课程?不能这样推断。认证解决凭证归属问题,授权决定可执行的操作;真实身份核验、课程权限和学习记录仍需各自的规则与证据。