mcpField
I
idios

idios

本地服务
github.com/honeytones金融数据07 周前更新

关于 idios

Idios 是 Beam 上面向 AI 和计算任务的隐私托管与结算协议。需求方和工作方可选择哈希验证或审核交付,并通过工作方抵押及 M-of-N 仲裁处理争议。

主要功能

  1. 01链上隐私托管与结算
  2. 02哈希验证和审核两种结算模式
  3. 03工作方抵押及可罚没的信誉保证金
  4. 04通过 M-of-N 投票解决争议
  5. 05超时申领与两阶段付款

适用场景

  1. 01按已知结果哈希支付确定性计算任务
  2. 02为需要需求方审核的工作托管款项
  3. 03通过仲裁人投票解决交付争议

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"honeytones-idios": {
"command": "uvx",
"args": [
"idios-mcp-server"
],
"env": {
"IDIOS_WALLET_PASS": "<IDIOS_WALLET_PASS>"
}
}
}
}
启动命令uvx idios-mcp-server
需要配置的环境变量
IDIOS_WALLET_PASS密钥Beam wallet password. If unset the server prompts on stdin at startup, which fails in containers.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiidios-mcp-server2.3.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Idios

在 Beam 上为 AI 和其他计算任务提供私密托管与结算。

私密支付 AI 和计算任务。交付可验证,款项托管,链上解决争议。金额和参与方在底层隐藏。

网站 · AI 和计算用例 · 最新版本 · 实时浏览器

idios MCP 服务

“私密支付。链上验证。必要时解决争议。”


演示

一个 AI Agent 接下任务,将其中两部分私密地分包给其他 Agent,审核并支付每个 Agent,然后与客户端结算。整个过程都在 Beam 主网上完成,金额和参与方始终在底层隐藏。

asciicast


为什么

公开支付通道会泄露信息。每份合约、每笔支付、每个交易对手都会成为永久可搜索记录的一部分。对于 AI 推理、模型训练、科学计算,以及涉及专有输入、私密数据或竞争性操作的工作,这种可见性会让合作无法进行。

Idios 解决支付与结算的隐私问题。款项在 Beam 上以私密托管方式锁定。工作者锁定抵押品。结算在链上进行,金额和参与方均被隐藏。Beam 的 MimbleWimble 协议在底层隐藏金额和身份。Idios 正是在此基础上构建托管机制。

ERC-8183 在 Ethereum 上标准化了相同的起始原语:为 AI Agent 工作托管款项的 Job。Idios 是 Beam 上独立且更完整的协议,并非 ERC-8183 的移植版本。它加入了工作者抵押品和可用的争议解决机制,而 ERC-8183 目前两者都不具备;同时,它能私密结算,隐藏金额和参与方。Idios 使用自己的角色:Requester、Worker 和 Arbitrator。


工作原理

有两种结算模式,可在创建合约时逐个选择。

哈希验证结算(模式 A)

适用于确定性工作,正确输出是一个提前已知的特定哈希。

  1. Requester 锁定款项,并声明预期结果哈希。
  2. Worker 锁定抵押品。
  3. Worker 交付工作,并在链上提交结果哈希。
  4. 如果哈希匹配,合约会自动将款项和抵押品释放给 Worker。完成。

无需 Arbitrator 参与。哈希匹配后,结算会自动完成。

审核结算(模式 B)

适用于非确定性或开放式工作,需要 Requester 审核输出。

  1. Requester 锁定款项,设置审核期限和争议费。
  2. Worker 锁定抵押品。
  3. Worker 交付工作(在线下上传或通过 IPFS 上传,并将哈希记录在链上)。
  4. Requester 审核工作,然后选择:
    • 批准,允许 Worker 领取款项和抵押品。
    • 提出争议,锁定争议费并将案件提交仲裁。
    • 在审核期限内不采取行动,审核期限过后,Worker 可通过超时机制领取款项和抵押品。
  5. 如果发生争议,M-of-N Arbitrator 注册表通过投票裁定支持其中一方。胜方领取款项和抵押品。争议费支付给达成共识、参与投票的 Arbitrator,而非胜方。

款项始终流向正确的一方。Arbitrator 决定争议胜方,并因裁决工作获得争议费,但绝不会接触款项或抵押品。

两阶段领取

Idios 使用两阶段领取模式。授权步骤(approve、claim_after_timeout,以及通过 M 取 N 投票解决争议)会设置合约状态,但不会转移资金。随后,受益人调用 claim,并使用自己的密钥签名,实际领取款项。这样可以绕过 Beam BVM 的一项限制:单个内核无法在为一方签名的同时,将资金路由给另一方。


状态

已在 Beam 主网上线 ✅

  • v2 合约(Upgradable3,支持原地升级),cid 为 41ef8be5。最初于区块 3905992(2026 年 6 月 15 日)以 v6 版本部署,于区块 3914637(2026 年 6 月 21 日)原地升级至 M 取 N v1,并于区块 3938963(2026 年 7 月 8 日)再次原地升级至 v2
  • M 取 N 仲裁已上线:全局仲裁员注册表,基于投票的争议解决机制(目前 N 为 1)。v2 加强了注册要求:仅限 BEAM,最低质押 10 BEAM,且需管理员共同签名
  • 工作人员信誉保证金已上线(v2):工作人员可以锁定长期有效、可罚没的保证金;在仲裁争议中败诉时,保证金会被罚没并划入国库
  • Mode A 端到端流程以及 Mode B 的全部四种解决路径均已使用真实资金完成端到端验证;v2 完整的罚没生命周期(保证金、占用、罚没、国库划转)也已在主网验证,之后才进行生产环境升级
  • 已发布 Dapp 3.3.0,通过 UI 支持两种模式

已验证的解决路径(开发期间在主网上使用真实资金验证;下方的任务 ID 来自原地升级至 M 取 N 之前部署的 v5 和 v6 版本):

路径状态流转任务
Mode A 哈希匹配Open → Active → Closed(单笔交易)22224
Mode B 批准Open → Active → AwaitingApproval → Settled → Closed11112, 33335
Mode B 争议,裁决给工作人员Open → Active → AwaitingApproval → Disputed → ResolvedToBob11113
Mode B 争议,裁决给请求方Open → Active → AwaitingApproval → Disputed → ResolvedToAlice11114
Mode B 超时Open → Active → AwaitingApproval → Settled → Closed11115
Mode B 仲裁员超时作废Open → Active → AwaitingApproval → Disputed → Voided20002

合约

CID: 41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f
Current version: v2 (SID a61f3a93), upgraded in place from M of N v1 on 8 July 2026 at block 3938963
Version history: v6 (deploy) -> M of N v1 (21 June 2026, block 3914637) -> v2 (8 July 2026, block 3938963); cid unchanged throughout
Deployed at block: 3905992 (original v6 deploy; cid unchanged across all Upgradable3 upgrades)
Constructor params: default_review_window=10080, arbitrator_timeout_blocks=20160, upgrade_delay=1440, min_approvers=1
Explorer: https://explorer.0xmx.net/?network=mainnet&type=contract&id=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f
角色
角色描述
user与合约生命周期交互的请求方(Alice)或工作人员(Bob)。工作人员也可以持有信誉保证金(v2)。
arbitratorM 取 N 仲裁员注册表的成员。注册时需质押(仅限 BEAM,最低 10 BEAM;v2 中需管理员共同签名),对有争议的合约进行投票,并领取奖励份额
manager部署合约并查看合约参数(一次性操作,在合约设置期间使用)
treasury协议国库,在部署时由部署钱包设置。通过 sweep 和 slash_sweep 收取被没收的工作人员抵押金(Active 状态退款)、作废争议的争议费用以及被罚没的工作人员保证金(v2)。
按角色划分的操作

用户操作

操作描述
create_a创建 Mode A 合约(哈希验证结算)。锁定付款。
create_b创建 Mode B 合约(审核后结算)。锁定付款,并设置审核期限和争议费用。
commit工作者锁定抵押金,状态变为 Active。
submit_delivery工作者提交结果哈希。在 Mode A 中,如果哈希匹配,则原子性地付款,合约状态直接变为 Closed。在 Mode B 中,状态变为 AwaitingApproval。
approve请求方批准 Mode B 交付,状态变为 Settled(尚未转移资金)。
dispute请求方对 Mode B 交付提出争议,锁定争议费用,状态变为 Disputed。
claim_after_timeout审核期限到期后,工作者(在 Mode B 中)发起申领,状态变为 Settled。
claim受益人从状态为 Settled、ResolvedToBob 或 ResolvedToAlice 的合约中领取资金(付款 + 抵押金)。申领 Settled 合约会使状态变为 Closed。Resolved 合约的状态会永久保持为 6/7;view_dispute 中的 winner_paid 标志记录了付款情况。Mode A 合约会自动付款,无法申领。
refund请求方从已过期的合约(Open 或 Active)中收回付款。若合约处于 Active 状态,工作者的抵押金将被罚没并转入金库。状态变为 Refunded。
void_dispute无需许可。自争议提交后经过 arbitrator_timeout_blocks 个区块,如果仲裁员仍未裁决,任何人都可以使该争议失效。状态变为 Voided。
void_claim_requester请求方从状态为 Voided 的合约中收回付款。
void_claim_node工作者从状态为 Voided 的合约中收回抵押金。
view_job读取当前任务状态。
view_dispute读取任务的 M of N 争议记录:冻结的 N 和阈值、计票结果、裁决结果,以及工作者的保证金是否因此被占用(v2)。
worker_register锁定一笔持续有效的信誉保证金(v2)。仅限 BEAM,金额不限,并与工作者的合约公钥关联。可被罚没:在仲裁争议中败诉会导致全部保证金被罚没并转入金库。
worker_deregister开始提取信誉保证金。启动赎回冷却期。
worker_reclaim冷却期(= arbitrator_timeout_blocks)结束后全额取回保证金。只要有任何未决争议占用该保证金,就会暂停取回;如果保证金已被罚没,则永久无法取回。
view_worker_bond读取工作者保证金:质押额、状态、占用数量。默认读取你自己的密钥;传入 worker_pk 可查看其他工作者的保证金。
get_key返回用户在此合约中的公钥。(工作者会在创建合约前将此密钥分享给请求方。)

仲裁员操作(M of N,v2 加固注册表)

操作描述
register加入全局仲裁员注册表,并提交 stake。v2 限制:仅限 BEAM,最低 10 BEAM,且内核需携带协议管理员的协同签名(仲裁员罚没功能上线前,注册将经过审核)。已完全退出的身份可以再次注册。可选的 arb_index(默认为 0)用于为每个名额派生不同的密钥。
vote对状态为 Disputed 的合约投票。side 为 0 时判给请求方(Alice),为 1 时判给工作者(Bob)。当收到 M 张相同的票时完成裁决。
claim_reward争议裁决后,达成共识的投票者可领取其争议费用份额(dispute_fee / M,余款转入金库)。
deregister退出注册表。启动质押赎回冷却期。
reclaim冷却期结束后取回质押(冷却期等于 arbitrator_timeout_blocks)。
view_arb读取注册表:当前仲裁员数量和分配给你的索引。
get_mofn_key返回指定 arb_index 对应的仲裁员公钥。
get_key返回仲裁员在此合约中的基础公钥。

金库操作

操作描述
sweep收回没收资金:经过 Active 路径的 Refunded 合约中的工作者抵押金,或 Voided 合约中的争议费用。
slash_sweep收回被罚没的工作者信誉保证金(v2)。等待所有占用该保证金的未决争议终止。
get_key返回此合约的资金库公钥。
状态代码
0 = Open               (just created, awaiting worker commit)
1 = Active             (worker has committed collateral)
2 = AwaitingApproval   (Mode B, worker has delivered, in review window)
3 = Disputed           (Mode B, requester has disputed, awaiting arbitrator)
4 = Settled            (beneficiary can claim, payment + collateral)
5 = Refunded           (terminal, requester reclaimed funds after expiry)
6 = ResolvedToAlice    (arbitrators sided with requester, requester can claim; stays 6 after the claim, winner_paid in view_dispute records it)
7 = ResolvedToBob      (arbitrators sided with worker, worker can claim; stays 7 after the claim, winner_paid in view_dispute records it)
8 = Closed             (terminal, claim has been collected)
9 = Voided             (terminal, arbitrators never resolved a dispute in time, parties reclaim)
10 = Cancelled         (terminal, both parties agreed to cancel, everyone made whole in the cancel tx)

快速入门(dapp 界面)

使用 Idios 最简单的方式是通过 Beam 钱包的 DApp Store。目前有两款钱包提供 Idios:

  • 桌面端(Windows、Mac、Linux):来自 beam.mw 的官方 Beam Desktop 钱包。这是参考路径,重要资金也应存放在这里。
  • Android:PriviMW,一款社区打造的 Beam 钱包,内置自己的 DApp Store 和加密消息功能。安装最新 APK。该钱包为开源项目,但尚未经过外部审计,因此应像对待任何新钱包一样谨慎:适合运行 Idios 和存放日常金额。

然后,在任一钱包中:

  1. 创建钱包,同步到主网,并存入少量 BEAM。

    两种互不相关的币种使用了相同的名称和代号。Idios 运行于 Beam Mimblewimble(隐私链,beam.mw,自 2019 年起运行主网),而非 Beam Network(一个无关的 Avalanche 游戏子网)。请务必购买 Mimblewimble 版本。

    Beam Mimblewimble 可在 MEXC、Gate 和 CoinEx 交易,但不在 Binance、Coinbase 或 Kraken 上。如果不想注册交易所账户,也可以通过 buybeam.my 将 ETH 快速兑换为 BEAM。这项服务有两个限制:兑换的 BEAM 至少价值 $1,否则不会向你的钱包发送任何金额;每笔兑换最多 $100(其流动性池较小;如需购买更多,请使用交易所)。

  2. 从钱包的 DApp Store 安装 Idios dapp。桌面端也可以从发布页面旁加载最新的 .dapp 文件。

  3. 从已安装的应用中打开 Idios。

dapp 会打开一个着陆页,提供三个入口:

  • 创建合约:作为需求方,填写交易条款(合约 ID、付款金额、到期时间、工作者公钥)。选择哈希验证结算(上传交付文件,dapp 在本地计算 SHA-256 哈希)或审核结算(设置审核期限和争议费用)。创建合约。如果你通过工作者提供的报价链接进入,表单会自动填充。
  • 生成合约报价:作为工作者,填写商定的交易条款,上传已完成的交付物(模式 A),或设置审核选项(模式 B),然后点击 Generate Offer。系统会生成可分享的文本块和链接,供你发送给需求方。
  • 我的合约:查看本地跟踪的所有合约的实时状态。操作按钮会按需显示:为过期合约退款;批准或对模式 B 的交付提出争议;在合约已结算或已裁定对你有利时领取资金。

关于到期区块的说明:Beam 主网大约每 60 秒产生一个区块。请将 expiry_block 设置为至少 current_block + 200,为创建交易留出确认时间,避免在到期后才确认。对于实际合约,通常设置为 current_block + 1440(约 24 小时)。


CLI 用法

Beam CLI 钱包可直接驱动合约,适用于编写脚本、构建集成,或执行 dapp 未提供的其他角色操作。

前置条件
  • Beam CLI 钱包二进制文件,可从 Beam releases 页面 获取
  • 一份 idios_app.wasm 文件(可从此仓库下载,或从源代码构建,参见构建)
  • 一个可连接的 Beam 主网节点。运行自己的节点,或使用公共节点,例如 eu-node01.mainnet.beam.mw:8100。

所有示例都使用 Beam Mimblewimble 主网上运行的 Idios 合约(cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f)和公共节点。该合约为 v2,通过 Upgradable3 原位升级(2026 年 6 月 21 日从 v6 升级到 M of N v1,然后于 2026 年 7 月 8 日升级到 v2),因此 cid 保持不变,且每个用户侧调用(create、commit、submit_delivery、approve、dispute、claim、refund)都与之前逐字节相同。请按需替换为自己的节点或 cid。

获取此合约的工作者公钥

工作者的公钥因合约而异(因为 CID 是密钥派生的一部分)。在任何 create 操作之前,工作者需要运行:

./beam-wallet shader \
  --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=get_key,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

输出即为该合约对应的工作者 node_pk。请将其发送给请求方。

查看合约
./beam-wallet shader \
  --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=view_job,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100
创建 Mode A 合约(哈希验证结算)
./beam-wallet shader \
  --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=create_a,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>,subnet_id=1,epoch=1,expiry_block=<FUTURE>,payment=<GROTH>,asset_id=0,node_pk=<WORKER_PUBKEY>,result_hash=<HASH>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

付款金额以 groth 为单位(1 BEAM = 100,000,000 groth)。例如,payment=5000000 即为 0.05 BEAM。

创建 Mode B 合约(审核结算)
./beam-wallet shader \
  --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=create_b,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>,subnet_id=1,epoch=1,expiry_block=<FUTURE>,review_window_blocks=<N>,payment=<GROTH>,dispute_fee=<GROTH>,asset_id=0,node_pk=<WORKER_PUBKEY>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100
提交抵押金(工作者)
./beam-wallet shader \
  --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=commit,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>,collateral=<GROTH>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100
提交交付内容(工作者)
./beam-wallet shader \
  --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=submit_delivery,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>,delivery_hash=<HASH>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

合约会根据自身状态了解任务的模式;view_job 会将 Mode A 报告为 65(ASCII 'A'),将 Mode B 报告为 66(ASCII 'B')。

Mode B:approve、dispute、claim_after_timeout
# Requester approves
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=approve,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

# Requester disputes
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=dispute,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

# Worker claims after review window expires
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=claim_after_timeout,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100
仲裁员:注册、投票并领取奖励(M of N)

争议通过 M of N 投票解决。仲裁员加入全局注册表并缴纳持续有效的质押金,对有争议的合约投票,并在达成共识后领取奖励份额。质押金永不罚没;它用于防范女巫攻击,并确保仲裁员有切身利益。在 v2 中,注册受到限制:保证金必须为 BEAM,至少为 10 BEAM(stake=1000000000),且注册内核还必须附带协议管理员的签名。因此,在仲裁员罚没机制推出之前,注册表成员由专人审核(请联系下方人员进行注册)。生产环境中唯一一笔 v2 之前的注册予以保留。所有仲裁员调用中的 arb_index 均为可选参数,默认为 0;每个索引都会派生出不同的密钥,因此一个钱包可以使用多个索引。质押金额以 groth 为单位(1 BEAM = 100,000,000 groth)。

# Register as an arbitrator (one time, posts the stake; v2 requires 10 BEAM minimum
# and the admin co signature in the same kernel)
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=arbitrator,action=register,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,stake=1000000000" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

# View the registry (current arbitrator count and your index)
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=arbitrator,action=view_arb,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

# Vote on a dispute. side=0 awards the requester (Alice), side=1 awards the worker (Bob).
# The contract freezes N (registry size at filing) and M (= N/2 + 1); only arbitrators
# registered at or before the filing block may vote. Resolves when M matching votes land.
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=arbitrator,action=vote,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>,side=<0|1>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

# Claim your reward share after the dispute resolves (consensus voters only; dispute_fee / M each)
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=arbitrator,action=claim_reward,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

# Deregister, then reclaim the stake after the cooldown (= arbitrator_timeout_blocks)
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=arbitrator,action=deregister,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=arbitrator,action=reclaim,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

每个仲裁员槽位都有一个独立公钥,通过 MofnArbKeyID { tag 'N', ctx 1, m_Idx } 派生。运行 action=get_mofn_key,并指定相关的 arb_index,即可查看自己的公钥。

Worker 声誉保证金(v2)

Worker 可以针对其合约公钥锁定一笔持续有效、可罚没的保证金。该公钥也是 Worker 接单时使用的密钥。这笔保证金是 Idios 声誉的链上部分:诚实工作无需付出任何成本(退出时全额收回),而在仲裁争议中败诉则会导致整笔保证金被罚没并转入国库。金额不限,仅限 BEAM;链下评分读取器会显示保证金金额,因此微量保证金也会公之于众。任何 Requester 都可以直接在链上验证已列出的保证金,无需资金:请参阅 docs/verify_worker_bond.md。

运作机制:如果 Worker 持有有效保证金时,某项工作的争议被提交,该保证金就会受到限制,无法收回,直到争议终结。因此,Worker 无法在争议期间注销以逃避尚未作出的裁决。若法定人数裁定 Requester 胜诉,则会罚没整笔保证金(最多一次);若裁定 Worker 胜诉,或争议因仲裁员超时而作废,则会解除限制,保证金不受影响。争议提交后登记的保证金不会受到该争议影响。完整生命周期,包括保证金、限制、罚没、阻止收回和国库划转,均已在主网上使用真实资金验证。

# Lock a reputation bond (any amount in groth, BEAM only)
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=worker_register,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,stake=<GROTH>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

# Read a bond (defaults to your own key; add worker_pk=<PUBKEY> to inspect another worker)
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=view_worker_bond,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

# Exit: deregister, wait out the cooldown (= arbitrator_timeout_blocks), reclaim in full
./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=worker_deregister,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=worker_reclaim,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

Worker 保证金状态:0 已登记,1 注销中,2 已移除,3 已罚没。已罚没的保证金永远无法收回;所有施加限制的争议终结后,国库会通过 role=treasury,action=slash_sweep,worker_pk=<PUBKEY> 收取该保证金,之后该身份可以从头开始重新缴纳保证金(罚没记录会继续显示在工作历史中)。

领取资金(受益人)

合约达到 Settled、ResolvedToAlice 或 ResolvedToBob 状态后,受益人调用 claim。合约会从工作状态中读取付款和抵押金,因此无需传入支付金额。

./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=claim,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

在这三种情况下,受益人都会收到 payment + collateral。在 M of N 仲裁中,争议费用不会支付给争议胜方,而是通过 claim_reward 分配给达成共识的投票者(请参阅仲裁员部分),剩余金额则转入国库。

退款(Requester,过期后)

对于已过期的合约,无论处于 Open 还是 Active 状态,只要 expiry_block 已过即可退款。在 Active 路径中,Worker 的抵押金会被罚没并转入国库。

./beam-wallet shader --shader_app_file=idios_app.wasm \
  --shader_args="role=user,action=refund,cid=41ef8be50f0d727a919b5f5e64f7e66d5ec04442bb4f536f664e38b765e4921f,job_id=<N>" \
  --node_addr=eu-node01.mainnet.beam.mw:8100

仓库结构

idios_contract.h       Contract Shader header (job struct, status enum, method IDs)
idios_contract.cpp     Contract Shader (on chain logic, escrow, claim, dispute resolution)
idios_app.cpp          App Shader (wallet side transaction builder)
idios_contract.wasm    Compiled contract (build product, not committed; loaded on chain at deploy)
idios_app.wasm         Compiled app shader (used by wallet to construct kernels)
build_v2.sh            Build script
idios-dapp-src/        Mirror of the dapp source (BeamMW template fork)
idios-mcp-server/      MCP server exposing contract actions as agent tools
idios-agent-daemon/    Daemon automating the worker and client roles

构建

合约和应用 Shader 使用 C++ 编写,并通过 Beam Shader SDK 构建。

bash build_v2.sh

生成 idios_contract.wasm(约 11 KB)和 idios_app.wasm(约 28 KB)。


架构说明

两阶段领取。 授权步骤(approve、claim_after_timeout,以及通过 M of N 投票解决争议)会设置合约状态。随后,受益人使用自己的密钥签署 Method_15 Claim 调用,实际领取资金。这样可以绕开 Beam BVM 的一项限制:单个 kernel 无法在为一方签名的同时,将资金转给另一方。

联系仲裁员。 如需联系仲裁员解决争议,请在 Telegram 上向 @tappyoak 发送消息。请附上合约 ID、你的角色以及对争议的简要说明。

与另一方沟通。 合约中的每一方都已经在运行 Beam 钱包,而钱包内置了私密消息功能,因此 Requester、Worker 和仲裁员可以直接协调,无需使用外部应用。点击右上角的账户菜单,然后选择 Beam Messenger 打开该功能。要开始聊天,请点击 New chat,将对方的 Beam 消息地址粘贴到 Address 字段,为对方填写名称,然后将其添加。输入消息后,按 ctrl+enter;如果使用 Mac,则按 command+enter;也可以点击右侧的 Send 发送。你自己的消息地址(也就是提供给他人以便联系你的地址)显示在同一 New chat 对话框的 My address 中。消息通过 Beam 的 SBBS 层在钱包之间传递,不会发布到链上。争议仍由上文提到的仲裁员处理,此功能用于与交易对手协调沟通。 **M of N 仲裁(已上线)。**合约持有一个全局仲裁员注册表,每个席位都由一笔长期质押支持。提交争议时,会将 N(提交时的注册表规模)和 M(= N/2 + 1)固定到该争议中,且只有在提交区块或之前注册的仲裁员才能投票。收到 M 票一致的投票后,合约即会作出裁决。达成共识的投票者平分争议费(每人获得 dispute_fee / M,余数归国库);仲裁员不会获得胜方的资金。仲裁员质押永不罚没;从 v2 开始,注册受到限制(仅限 BEAM、最低 10 BEAM,且需管理员共同签署),因此注册表不会被小额质押所操控。

目前 N 为 1,只有一名已注册仲裁员(联系方式见下文)。下一步要务是注册更多独立仲裁员;注册需质押 10 BEAM,在仲裁员罚没机制上线之前,由管理员共同签署(经审核),因此如需加入,请通过上方联系方式联系。MCP 服务和 Agent 守护进程已支持 v2 功能(M of N 付款金额、工作者质押工具、争议查看);投票则刻意设为只能由人工通过 CLI 操作,绝不会作为 Agent 工具,因此 Agent 永远不能对争议作出裁决。dapp 仍保留旧版的单仲裁员控制台;由于升级前后的托管流程字节完全一致,因此不会影响现有功能。dapp 仲裁员功能的重做(通过 UI 注册、投票、领取奖励)将推迟到需要外部仲裁员时再进行。上方的 CLI 流程目前即可使用。

**工作者信誉质押(v2)。**工作者可以锁定一笔与其合约公钥关联的长期可罚没质押。提交争议会占用一笔有效质押(在争议终止前禁止赎回);若仲裁裁决对工作者不利,则整笔质押将罚没至国库;若裁决有利于工作者或争议作废,则质押原封不动地解除锁定。只有所有占用该质押的争议都终止后,国库才能收缴罚没的质押,因此旧争议绝不会影响刚重新注册的质押。这是 Idios 声誉机制的链上部分;链下评分读取器是下一步工作。

**合约专属密钥。**每一方都使用 Env::DerivePk 派生其公钥,并将合约 ID 作为输入的一部分。同一工作者在合约 A 上的公钥与在合约 B 上的公钥不同。将 node_pk 传入 create 之前,务必先对目标合约运行 get_key。

**退款规则。**合约过期且超过 expiry_block 后,refund 会退还请求者的付款,适用于两种情况。如果从未有工作者提交承诺(状态为 Open),则直接退还付款。如果工作者已提交承诺但从未交付(状态为 Active),请求者仍只能取回付款,而工作者的抵押金将罚没至国库,不会退还给任何一方。这会惩罚锁定资金后便不再回应的工作者,并避免请求者通过设置过短的到期时间来侵占工作者的质押,因为质押始终归国库所有,绝不会退给请求者。已交付的工作不能退款,必须通过裁决流程解决。

**争议作废规则。**如果已提交争议,但仲裁员未在 arbitrator_timeout_blocks 内作出裁决,则任何人都可以在该时间窗口过后调用 void_dispute,将合约转为 Voided。随后,请求者通过 void_claim_requester 取回付款,工作者通过 void_claim_node 取回抵押金,国库则收缴争议费。这样可以确保仲裁员缺席时,资金也永远不会被锁住。

**无桥接,无跨链。**Idios 完全运行在 Beam 主网上。没有包装资产,也没有第二条链。


在 Idios 上运行 AI Agent

idios-mcp-server/ 会将每项合约操作公开为 MCP 工具,因此任何支持 MCP 的 Agent 框架(Claude Code、LangGraph、CrewAI、AutoGen)都可以通过自然语言创建、履行、结算和争议处理私密托管合约。二十六个工具覆盖完整生命周期:两种模式下的创建、抵押品、交付、审批、带实时投票视图的争议处理、带双重申领防护的申领、恢复路径,以及 v2 工作方信誉保证金。争议投票刻意不设为 Agent 工具,因此 Agent 绝不会为自己裁决。

使用 pip install idios-mcp-server 安装,或从此仓库运行。请从 idios-mcp-server/QUICKSTART.md 开始:了解如何从零开始,在主网上完成 Agent 合约结算。


Agent 运行时守护进程

此仓库中的 idios-agent-daemon/ 是一个小型 Python 守护进程,可自动处理你在 Idios 合约中的角色。它会轮询链、监控你跟踪的合约,并在状态机推进时调用相应的合约方法。在自己的计算机上与 Beam CLI 钱包一同运行,启动时输入一次密码,然后即可离开。

支持双方角色:

  • Worker 提交承诺、提交交付、申领(包括赢得争议后的申领;链上 winner_paid 标志会进行防护,确保已付款的申领不会重试)。
  • Client 自动校验哈希并批准,可选择在到期后自动退款,并可在赢得争议后申领。

双方角色还会在仲裁方超时后撤销过期争议,并从已撤销的合约中取回各自的一方资金。没有仲裁方角色:争议通过 CLI 由人类进行 M-of-N 投票解决,绝不自动化。

dapp 的“我的合约”页面中,每张已跟踪合约卡片上都有一个自动处理此合约按钮,可生成守护进程配置片段,直接粘贴到守护进程配置中。有关设置和配置,请参阅 idios-agent-daemon/README.md。


路线图

此路线图由合作伙伴需求驱动。阶段 0 已在主网上线。阶段 1 是计划中的下一次发布。之后的所有规划都取决于现实世界的需求。

阶段 0(已发布):已在主网上线

  • Beam 主网上的 M of N v1 合约(cid 41ef8be5...),于 2026 年 6 月 21 日通过 Upgradable3 从 v6 原位升级:全局仲裁者注册表、基于投票的争议解决、基于质押的 Sybil 抵抗机制
  • v2 升级,于 2026 年 7 月 8 日通过 Upgradable3 原位升级(区块 3938963):强化仲裁者注册(仅限 BEAM、最低 10 BEAM、管理员共同签署)和可罚没的工作者声誉保证金,完整罚没流程已在主网上验证
  • 已验证基于哈希(模式 A)和经审核(模式 B)的两种结算方式
  • 已在主网上端到端验证四种模式 B 解决路径:批准、争议裁决为任一方胜出、审核超时、仲裁者超时作废
  • 工作者抵押金下限、双方同意取消和审核窗口回退机制(v5 的最小修补集)
  • Dapp 3.3.0(仍使用 v6 托管界面,因此字节级完全相同,不受影响;仲裁者界面改造已延期)
  • BEAM 和 Nephrite(NPH)结算均已在主网上测试,此外也支持任何其他 Beam 机密资产,方法是使用 asset_id
  • 浏览器解析器、Agent 运行时守护进程(工作者和请求者角色)、提供完整 v2 工具集的 MCP 服务,以及 dapp 中的守护进程配置导出

阶段 1(下一步):真正的去中心化和声誉

  • 注册更多仲裁者。目前 N 为 1;再增加两个由不同运营者独立持有和运行的密钥,即可形成真正的 2-of-3 法定人数。需要质押 10 BEAM 并由管理员共同签署(在罚没功能上线前采用精选制),欢迎联系加入。CLI 目前可用,界面改造稍后进行
  • 改造 dapp 仲裁者控制台:通过 UI 注册、投票和领取奖励,取代已停用的单一仲裁者裁决视图。MCP 服务和 Agent 守护进程已于 2026 年 7 月迁移至 v2 界面(M of N 支付金额、工作者保证金工具、争议视图;已移除停用的裁决流程)。此项延期至外部仲裁者需要 UI 时再进行;目前可使用 CLI
  • 仲裁者罚没。v1 中的质押仅用于 Sybil 抵抗。下一次合约升级将罚没投票结果与共识相悖的仲裁者,并通过 Upgradable3 原位升级
  • 保护隐私的声誉机制。工作者保证金和罚没功能已在 v2 中上线;剩余工作是链下评分读取器,以及通过 Beam NameService 使用付费标识符,让声誉关联到公开标识符,同时不泄露交易历史

阶段 2:交付载荷和更大型的交付物

  • 更大型的工作成果文件。目前,交付物由 32 字节哈希标识,内容在线下交换。下一步将使用 Beam Desktop 集成的 IPFS 层,让工作者发布加密交付物、请求者获取这些交付物,同时合约仍只提交哈希
  • 加密载荷,密钥在线下交换。链上哈希仍是绑定承诺;变化在于载荷将有一个规范的存放位置
  • 支持超出单次交接容量的大型工作文件

阶段 3+:未来研究(由合作伙伴需求驱动)

  • 针对特定狭窄任务类别的程序化验证器(例如 JSON Schema 匹配、确定性输出等价性),适用于有具体需求的合作伙伴
  • 由合作伙伴需求驱动的去中心化仲裁者网络,配备排放奖励和罚没机制。Idios 将继续作为 Beam 合约;外部激励层将负责运营者的质押和罚没
  • 仅在真实合作伙伴提出要求时才进行跨链结算。默认立场:留在 Beam 主网,不进行跨链桥接

贡献

Idios 仍处于早期阶段,发展迅速。如果你正在基于 Beam 构建项目并希望集成,请提交 issue 或直接联系我们。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。