返回博客
架构支付加密货币web3http-402
API 货币化的未来:为多链微支付实现 HTTP 402
探索 ZelfProof 如何利用 HTTP 402 标准在 Solana、Avalanche 和 Base 上实现无缝的改进微支付。
Miguel Treviño•

几十年来,HTTP 状态码
402 Payment Required 一直被保留供未来使用。虽然 404 Not Found 和 500 Internal Server Error 已成为我们日常开发词汇的一部分,但 402 一直处于休眠状态,等待一个原生的数字价值转移层。随着 Solana、Avalanche 和 Base 等高速区块链的兴起,那个未来终于到来了。
在 ZelfProof,我们实现了一个生产级的 HTTP 402 架构,允许用户使用我们的 ZNS 代币按请求付费使用 API。这个系统消除了偶尔用户的月度订阅摩擦,展示了"可编程货币"的真正力量。
要点速览:
- **创新:**ZelfProof 实现了
HTTP 402 Payment Required,实现无缝的按请求付费 API 访问。 - **多链:**用户可以在 Solana、Avalanche 和 Base 上使用 ZNS 代币支付。
- **流程:**标准挑战-响应:服务器发送402附带费用 -> 客户端链上支付 -> 客户端用交易哈希重试。
- **影响:**实现真正的微支付,用公平的按使用量计费模式替代昂贵的月度订阅。
架构概述
我们的系统设计为链无关的,允许用户在其首选网络上支付,同时访问相同的统一 API 服务。
核心组件
- 支付中间件:在允许访问受保护端点之前验证支付头和证明。
- 链特定验证模块:专门用于 Solana、Avalanche 和 Base 的模块,在各自的账本上验证交易。
- ZNS 代币:用于所有支付的实用代币。
流程如何运作
这种架构的美妙之处在于其简洁性。它遵循标准的挑战-响应模式:
- 挑战:用户尝试访问受保护的端点(如
/api/zelf-proof/encrypt)。 - 402 响应:服务器检查支付头。如果缺失,返回
402 Payment Required状态。此响应包含精确指示的 JSON 负载:- 请求费用(如 0.1 ZNS)
- 接受的链
- 服务钱包地址
- 支付:用户(或其客户端应用)在所选链上发送所需的 ZNS 代币。
- 重试:客户端重试原始请求,这次在
x-payment-tx头中附加交易哈希。 - 访问:中间件在链上验证交易。如果有效,API 请求被处理。
sequenceDiagram
participant User
participant API
participant Blockchain
User->>API: POST /encrypt (No Payment)
API-->>User: 402 Payment Required (Cost: 0.1 ZNS)
User->>Blockchain: Send 0.1 ZNS
Blockchain-->>User: Transaction Hash
User->>API: POST /encrypt (x-payment-tx: Hash)
API->>Blockchain: Verify Transaction
Blockchain-->>API: Valid
API-->>User: 200 OK (Encrypted Data)
为什么选择多链?
我们选择支持 Solana、Avalanche 和 Base 以最大化可访问性和最小化成本。
- Solana:亚秒级最终确认(约400毫秒)和可忽略的费用。
- Avalanche:强大的 EVM 兼容体验,快速确认时间。
- Base:利用 Ethereum 的安全性和 L2 的速度。
每条链都有自己的验证逻辑来处理区块时间和确认要求的差异,确保我们不会让用户等待超过必要的时间。
开发者体验
从前端集成这一点非常简单。以下是典型客户端处理402挑战的方式:
async function callPaidEndpoint(endpoint, data, chain, wallet) {
try {
// Attempt request
return await axios.post(endpoint, data);
} catch (error) {
if (error.response?.status === 402) {
// 1. Get payment details
const { cost, serviceWallet } = error.response.data.paymentDetails;
// 2. Perform crypto transaction
const txHash = await wallet.sendTokens(cost, serviceWallet);
// 3. Retry with proof
return await axios.post(endpoint, data, {
headers: {
"x-payment-chain": chain,
"x-payment-tx": txHash,
},
});
}
throw error;
}
}
安全与重放保护
通过交易哈希允许支付引入了一个风险:重放攻击。恶意用户可能试图使用同一个交易哈希进行多次 API 调用。
为防止这种情况,我们的中间件实现了:
- 交易跟踪:每个使用过的交易哈希都存储在数据库中。
- Redis 缓存:最近的支付被缓存以进行即时查找。
- 原子验证:检查并标记已使用的操作是原子的,以防止竞态条件。
微支付的未来
这种架构为新的互联网经济铺平了道路。服务可以按文章收取几分之一美分,按视频秒数计费,或按 API 调用收费,而不是将内容隐藏在每月20美元的订阅墙后面。
通过利用 HTTP 402 和高性能区块链,ZelfProof 不仅在构建一个产品;我们在构建网络货币化未来的蓝图。
与 Zelf 一起构建未来
准备好在你自己的应用中实现这个了吗?或者正在寻找一个安全的、支持生物识别的钱包来无缝处理这些微交易?
- 集成 ZelfProof:只需几行代码即可为你的应用添加隐私保护身份验证。
- 探索我们的技术栈:查看我们的开源文档,了解我们如何构建安全、可扩展的加密基础设施。
- 加入网络:使用 Zelf Wallet 干净安全地与 ZelfProof 服务交互。