Neo Finalizes NEP-20: Wallet-Based Authentication Replaces Passwords

Neo Finalizes NEP-20: Wallet-Based Authentication Replaces Passwords

N
News Editor 01
2026-07-05 18:01:11
Neo co-founder Erik Zhang has finalized NEP-20, an authentication standard that lets users log into websites, games, and apps using their Neo wallet. The challenge-response protocol eliminates usernames, passwords, and accounts, supporting QR, plugin, and connection modes for secure, off-chain verification.

2026年7月5日,Neo联合创始人Erik Zhang正式宣布完成并最终确定NEP-20——一种基于钱包的认证标准。该标准允许用户使用自己的Neo钱包直接登录网站、游戏和各种应用程序,彻底告别传统用户名、密码和单独账户注册的繁琐流程。经过数年的讨论与修订,NEP-20已在Neo改进提案(NEP)库中达到“Accepted”状态,标志着Neo生态在去中心化身份认证领域迈出了关键一步。

平台控制身份的安全隐患

在当前的互联网应用中,用户身份高度依赖平台。每个服务商都要求用户创建账户,并将凭证存储在自有的服务器上。这种模式带来了两个核心问题:一是中心化安全风险——单次数据泄露即可导致整个用户群体暴露;二是对第三方登录提供商的脆弱依赖——其API、策略和可用性可能随时变更,给应用开发者带来不确定性。即便是“使用Google登录”这样的便捷功能,应用也常常要求用户额外绑定手机号或邮箱,因为没有任何产品能完全信任不受自己控制的外部身份解决方案。

NEP-20的工作原理

NEP-20将认证逻辑从“平台验证”转变为“用户自证”。用户无需依赖中心化服务确认身份,而是直接通过加密签名证明其对Neo地址的所有权。整个流程基于挑战/响应(Challenge/Response)协议:

1. 应用服务器生成一个Challenge负载,这是一个结构化的JSON请求,包含服务器域名、一次性随机数(nonce,建议有效期5分钟)、时间戳、支持的签名算法以及适用的Neo网络标识符。

2. 用户的钱包向用户展示关键信息,包括请求域和操作内容。用户确认后,钱包对Challenge数据进行签名,并返回一个Response负载,其中包含用户的公钥、地址、nonce、时间戳和签名。

3. 应用根据返回的公钥和地址验证签名,检查域名、nonce和时间戳的有效性。若全部匹配,则认证完成。

在此过程中,无需传输密码,服务器无需存储任何凭证,也无需任何链上交易。身份的证明仅靠一个有效的签名即可完成。

多层安全防护机制

NEP-20设计了多项约束来抵御常见攻击:

域名绑定:Challenge必须包含服务器域名,钱包在签名前需向用户展示并验证该域名,有效防止钓鱼和跨站滥用。

随机数过期:每次认证请求使用唯一且有时效的随机数,服务器禁止重复使用,阻止重放攻击。

时间戳验证:Challenge和Response中的时间戳使双方可校验时间同步,检测过期或重放请求。

签名验证:应用必须确认签名与返回的公钥匹配。

用户明确授权:钱包需显示关键信息并获得用户确认后才生成签名。

当前支持的签名算法为ECDSA-P256,但标准中的allowed_algorithms字段被设计为数组,以兼容未来新增算法。

三种交互模式

NEP-20定义了三种应用场景:

二维码模式(QR Code Mode):网站显示包含Challenge的二维码,用户使用手机钱包扫描并确认登录,钱包将签名后的Response发送至Challenge中的回调URL,实现跨设备认证。

插件模式(Plugin Mode):浏览器扩展钱包检测网站是否支持NEP-20,网站前端从服务器请求Challenge并传给钱包的authenticate方法,钱包验证域名、提示用户并返回签名Response,实现近乎自动的无缝登录。

连接模式(Connection Mode):用于游戏客户端或命令行工具等持久连接场景,客户端连接服务器后接收Challenge,签名并返回Response,认证通过后建立会话。

设计理念:完全链下运行

NEP-20的一项核心设计是完全链下运行。标准仅支持Neo的标准单密钥账户(System.Crypto.CheckSig),这涵盖了绝大多数Neo地址。在审查过程中,Neo SPCC曾提议扩展支持多签和脚本账户,但Erik Zhang回应道:“我不计划在此支持System.Crypto.CheckSig以外的地址。这样做将迫使启用NEP-20的应用必须运行Neo节点或至少一个可信的RPC服务器,这对于传统应用或游戏平台目前是不可接受的。我们需要一个完全链下的认证方案。” 标准中的grant_type字段当前设为“Signature”,未来可扩展支持其他认证方法,为脚本验证留下了空间。

潜在应用场景与市场影响

NEP-20作为通用认证层,可应用于Web应用、游戏、后端服务和CLI工具。Web应用可将钱包登录作为传统密码登录的替代或补充;游戏可以无需自建账户系统直接认证玩家;后端服务也可集成钱包签名。标准中的网络字段使用Neo的ProtocolSettings中的Magic Number,使单一实现即可支持多个Neo网络之间的认证。

这一标准的落地将极大降低去中心化身份的门槛。对于Neo生态而言,NEP-20有望吸引更多传统互联网应用尝试区块链钱包登录,推动Neo地址作为通用身份标识;对于整个加密货币行业,它提供了一种轻量、安全的钱包认证范式,可能成为未来Web3应用的标配登录方式。随着无密码化趋势的加速,NEP-20或将打破中心化平台对用户身份的控制,让用户真正掌握自己的数字身份主权。

This article was originally published by Bit.Fan. For more cryptocurrency news and market insights, visit www.bit.fan.
300

Disclaimer:

The market information, project data, and third-party content displayed on this platform are for industry information sharing only and do not constitute any form of investment advice or return commitment.

Cryptocurrency trading carries high risks. Users should fully assess their risk tolerance and make independent decisions. All profits, losses, and legal responsibilities are borne by the users themselves.