49个工具。从区块分析到内存池检查,再到直接广播签名交易——比特币网络对AI彻底敞开了大门。开发者只需要一个MCP(模型上下文协议)服务器,就能让大模型像查天气一样查询链上数据。
但这里有个问题:如果AI搞错了呢?
想象一下测试场景。你想让AI解码一笔交易看看结构,结果它调成了send_raw_transaction。一字之差,交易不可逆地广播到了全网。这不是科幻。bitcoin-mcp的文档里白纸黑字写着这个工具的存在,和其他48个工具并排躺着。
AI代理不是用户。它们没有判断力,只会执行提示词。而提示词可以被注入、被操纵、或者被写错。
Coinbase的工程团队最近开源了一套叫Bitcoin Gateway Guard的方案。他们在AI和这49个工具之间插了一道闸机——agentgateway,用Rust写的MCP安全网关。每个请求得过四道安检,少一道都进不去。
第一道闸:没有匿名这回事
JWT令牌,RS256签名,缺一不可。网关要验签名、验签发方(bitcoin-gateway-guard)、验受众(bitcoin-mcp)、验过期时间。没令牌?401。过期了?401。签发方不对?还是401。
这套逻辑听起来像企业SSO(单点登录)的标准流程,但放到MCP生态里却罕见。大多数MCP服务器至今还在裸奔,靠"谁连上谁用"的朴素信任模型运行。
Coinbase的人用CEL(通用表达式语言)定义了两个角色。管理员拿到全部49个工具。只读用户拿到47个——所有查询类工具归你,但send_raw_transaction和generate_keypair被显式排除。
生成私钥这个操作被单独拎出来,是因为提示注入攻击的噩梦场景:恶意输入诱导AI调用generate_keypair,私钥出现在响应里,然后被日志系统吞下、被缓存层记住、或者被UI直接展示。一条策略表达式,把攻击面封死。
第二道闸:代码里的if-else是债务
Coinbase的选择很克制。权限策略不写进业务代码,而是丢进YAML配置文件,版本可控,审计友好。一条CEL表达式替代了传统架构里层层嵌套的权限中间件。
这背后是他们对"策略即代码"的执念。代码会腐烂,注释会撒谎,但声明式配置至少诚实——你能在PR里看到谁改了什么,为什么改。
令牌桶算法跟在后面,每个消费者每分钟请求数被硬封顶。防止什么?防止AI陷入推理循环,把比特币节点锤到宕机。这种事故在LLM应用里不算新鲜,只是没人想过它会发生在金融基础设施上。
第三道闸:影子访问是合规噩梦
六个月后,你能回答这些问题吗:哪个AI代理访问了什么数据?什么时候?为什么?
大多数MCP部署给不出答案。请求来了,工具跑了,响应走了,痕迹归零。Coinbase的方案里,每道请求都带审计日志,角色、工具、时间戳、结果状态,全量留存。
这对合规团队是救命稻草。金融数据的访问轨迹不能是黑箱,尤其是当操作方不是人、不会写情况说明、也不能被约谈的时候。
agentgateway本身也是开源的。Coinbase没有把它锁在内部,而是扔到了GitHub上,Rust实现,依赖极简。这意味着其他搞MCP的金融机构可以照搬,或者至少参考这个四层的架构思路。
比特币网关守卫的命名有点直白,但设计思路值得细品:它把AI代理当成不可信组件处理,而非特权用户。
这和行业主流叙事形成微妙反差。过去半年,MCP被包装成"AI的USB-C接口",强调即插即用的便利。Coinbase的方案提醒了一句:USB-C也能传恶意代码,接口标准化不等于安全标准化。
他们的时间线也踩得准。bitcoin-mcp在开发者社区流传数月,生产环境事故尚未大规模曝光,但风险场景已经被反复讨论。Coinbase选择在这个窗口期推安全方案,既有先发优势,也避开了"事后救火"的被动。
一个细节:只读角色被设计成47个工具,而非"除了两个危险工具之外的全部"。这种枚举式的白名单思维,和默认开放的黑名单思维,是安全架构的经典分野。Coinbase选了前者。
另一个细节:私钥生成被和交易广播并列视为高危操作。这反映了他们对"数据泄露"的广义理解——不是只有转走币才算损失,私钥材料的外泄本身就是事故。
这套方案能挡住所有攻击吗?当然不能。提示注入的变体永远在进化,JWT令牌也可能被窃取。但四层防御的意义在于,攻击者需要连破多关,而非单点突破。安全工程的本质是买时间、提成本、降概率。
Coinbase的工程博客没有提具体部署规模,但agentgateway的代码库显示它已经在内部跑了一段时间。开源决策本身也是一种信号:我们对这个架构有信心,敢让人看实现细节。
MCP生态正在快速膨胀。除了比特币,以太坊、Solana、传统金融API的MCP服务器都在涌现。Coinbase的四层模型——身份认证、角色授权、速率限制、审计日志——很可能成为事实上的参考架构。
毕竟,当AI代理开始管理真金白银时,"信任但验证"的老话得改成"验证,再验证,然后记日志"。
现在的问题是:你的MCP服务器,还在裸奔吗?
热门跟贴