跳转至

核心概念

本节介绍 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 — 区块链原生密钥兼容

签名密钥用于:

  1. 验证授权令签名
  2. 验证证明签名
  3. 将授权令绑定到特定代理

支付主体(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_delegatefalse,授权令是终端的——不能进一步委托。

受众范围(Audience Scope)

受众范围限制哪些商户可以接受授权令。

pub enum AudienceScope {
    MerchantIds(Vec<String>),   // 按稳定商户标识符
    MerchantHosts(Vec<String>), // 按主机名后缀
    Any,                         // 无限制(罕见)
}

当有稳定标识符时,使用商户 ID。基于主机的范围是为没有持久 ID 的商户提供的回退方案。

授权证明(Proof-of-Authorization)

证明表明代理持有授权令,并将其用于特定交易。

证明绑定到

  1. 挑战 — 来自商户的 LedgerFlow 挑战 ID
  2. 授权令 — 授权令摘要
  3. 报价 — 精确的 x402 accepted 对象(SHA-256 哈希)
  4. 请求 — HTTP 请求(方法、权威、路径、主体哈希)
  5. 签名者 — 代理的签名密钥
  6. 新鲜性 — 时间戳 + nonce

这种多重绑定确保证明不能脱离原始上下文被重复使用。

授权令摘要(Warrant Digest)

授权令摘要是指令的规范标识符:

warrant_digest = "sha256:" + hex(SHA256(canonical_signed_warrant_bytes))

摘要用作:

  • 授权令存储的缓存键
  • 证明负载中的引用
  • 审计日志中的标识符

参见

  • 协议 — 线路格式和序列化细节
  • 约束模型 — 完整的约束类型参考
  • 安全 — 重放保护和威胁模型