核心概念¶
本节介绍 LedgerFlow 授权协议的基本概念。
授权令(Warrant)¶
授权令是 LedgerFlow 的核心原语。它是一个紧凑、自包含、密码学签名的令牌,将支付权限绑定到特定条件。
关键属性¶
- 自包含 — 验证所需的一切都在授权令字节中
- 短期有效 — 授权令快速过期,默认以分钟计
- 密码学绑定 — 由发行者签名,可离线验证
- 单调递减 — 委托只能缩小,不能扩大权限
- 哈希寻址 — 授权令由其内容摘要标识
授权令类型¶
| 类型 | 用途 |
|---|---|
| 执行授权令 | 授权代理进行支付 |
| 发行者授权令 | 授权服务签发执行授权令 |
签名身份(Signer Identity)¶
签名身份提供密码学验证层。
pub struct SignerRef {
pub alg: SigningAlgorithm, // Ed25519 或 Secp256k1
pub public_key: Vec<u8>,
pub key_id: Option<String>,
}
支持的算法:
- Ed25519 — 速度和紧凑性的首选
- Secp256k1 — 区块链原生密钥兼容
签名密钥用于:
- 验证授权令签名
- 验证证明签名
- 将授权令绑定到特定代理
支付主体(Payment Subject)¶
支付主体代表结算身份——实际付款的账户或钱包。
pub struct PaymentSubjectRef {
pub kind: PaymentSubjectKind,
pub value: String,
}
pub enum PaymentSubjectKind {
Caip10,
FacilitatorAccount,
ExchangeAccount,
Opaque,
}
示例¶
| 格式 | 示例 | 轨道 |
|---|---|---|
| CAIP-10 | caip10:eip155:8453:0xabc... |
链上(Base) |
| CAIP-10 | caip10:solana:mainnet:7xKX... |
链上(Solana) |
| Facilitator 账户 | binance:uid:12345678 |
交易所 |
| Facilitator 账户 | okx:subacct:agent-alpha |
交易所 |
| 不透明 | facilitator:user:internal-ledger-42 |
托管 |
商户永远看不到也无需理解支付主体。它对 x402 接面不透明,只对 Facilitator 有意义。
约束(Constraints)¶
约束是类型化的规则,限制授权令授权的内容。LedgerFlow 使用封闭的约束类型集合,而非通用表达式语言。
约束类型¶
| 类型 | 控制内容 |
|---|---|
| 商户约束 | 哪些商户可以接受此授权令 |
| 资源约束 | 代理可以访问哪些 HTTP 资源 |
| 工具约束 | 代理可以使用哪些 AI 工具/模型 |
| 支付约束 | 金额限制、允许的资产、允许的轨道 |
| 赞助约束 | 是否允许赞助执行 |
约束组合¶
约束是 AND 组合。所有约束必须通过,授权令才能授权支付。
委托(Delegation)¶
委托允许授权令持有者向另一个代理签发子授权令,权限更窄。
单调递减¶
委托只能缩小权限,不能扩大:
- 子授权令的 TTL 不能超过父授权令
- 子授权令不能包含父授权令范围之外的商户
- 子授权令不能超出父授权令的支出限制
- 子授权令的委托深度不能超过
max_depth
委托策略¶
pub struct DelegationPolicy {
pub can_delegate: bool, // 持有者是否可以子委托
pub max_depth: u8, // 最大剩余委托深度
}
如果 can_delegate 为 false,授权令是终端的——不能进一步委托。
受众范围(Audience Scope)¶
受众范围限制哪些商户可以接受授权令。
pub enum AudienceScope {
MerchantIds(Vec<String>), // 按稳定商户标识符
MerchantHosts(Vec<String>), // 按主机名后缀
Any, // 无限制(罕见)
}
当有稳定标识符时,使用商户 ID。基于主机的范围是为没有持久 ID 的商户提供的回退方案。
授权证明(Proof-of-Authorization)¶
证明表明代理持有授权令,并将其用于特定交易。
证明绑定到¶
- 挑战 — 来自商户的 LedgerFlow 挑战 ID
- 授权令 — 授权令摘要
- 报价 — 精确的 x402
accepted对象(SHA-256 哈希) - 请求 — HTTP 请求(方法、权威、路径、主体哈希)
- 签名者 — 代理的签名密钥
- 新鲜性 — 时间戳 + nonce
这种多重绑定确保证明不能脱离原始上下文被重复使用。
授权令摘要(Warrant Digest)¶
授权令摘要是指令的规范标识符:
摘要用作:
- 授权令存储的缓存键
- 证明负载中的引用
- 审计日志中的标识符