关于 idios
Idios 是 Beam 上面向 AI 和计算任务的隐私托管与结算协议。需求方和工作方可选择哈希验证或审核交付,并通过工作方抵押及 M-of-N 仲裁处理争议。
主要功能
- 01链上隐私托管与结算
- 02哈希验证和审核两种结算模式
- 03工作方抵押及可罚没的信誉保证金
- 04通过 M-of-N 投票解决争议
- 05超时申领与两阶段付款
适用场景
- 01按已知结果哈希支付确定性计算任务
- 02为需要需求方审核的工作托管款项
- 03通过仲裁人投票解决交付争议
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Idios
在 Beam 上为 AI 和其他计算任务提供私密托管与结算。
私密支付 AI 和计算任务。交付可验证,款项托管,链上解决争议。金额和参与方在底层隐藏。
“私密支付。链上验证。必要时解决争议。”
演示
一个 AI Agent 接下任务,将其中两部分私密地分包给其他 Agent,审核并支付每个 Agent,然后与客户端结算。整个过程都在 Beam 主网上完成,金额和参与方始终在底层隐藏。
为什么
公开支付通道会泄露信息。每份合约、每笔支付、每个交易对手都会成为永久可搜索记录的一部分。对于 AI 推理、模型训练、科学计算,以及涉及专有输入、私密数据或竞争性操作的工作,这种可见性会让合作无法进行。
Idios 解决支付与结算的隐私问题。款项在 Beam 上以私密托管方式锁定。工作者锁定抵押品。结算在链上进行,金额和参与方均被隐藏。Beam 的 MimbleWimble 协议在底层隐藏金额和身份。Idios 正是在此基础上构建托管机制。
ERC-8183 在 Ethereum 上标准化了相同的起始原语:为 AI Agent 工作托管款项的 Job。Idios 是 Beam 上独立且更完整的协议,并非 ERC-8183 的移植版本。它加入了工作者抵押品和可用的争议解决机制,而 ERC-8183 目前两者都不具备;同时,它能私密结算,隐藏金额和参与方。Idios 使用自己的角色:Requester、Worker 和 Arbitrator。
工作原理
有两种结算模式,可在创建合约时逐个选择。
哈希验证结算(模式 A)
适用于确定性工作,正确输出是一个提前已知的特定哈希。
- Requester 锁定款项,并声明预期结果哈希。
- Worker 锁定抵押品。
- Worker 交付工作,并在链上提交结果哈希。
- 如果哈希匹配,合约会自动将款项和抵押品释放给 Worker。完成。
无需 Arbitrator 参与。哈希匹配后,结算会自动完成。
审核结算(模式 B)
适用于非确定性或开放式工作,需要 Requester 审核输出。
- Requester 锁定款项,设置审核期限和争议费。
- Worker 锁定抵押品。
- Worker 交付工作(在线下上传或通过 IPFS 上传,并将哈希记录在链上)。
- Requester 审核工作,然后选择:
- 批准,允许 Worker 领取款项和抵押品。
- 提出争议,锁定争议费并将案件提交仲裁。
- 在审核期限内不采取行动,审核期限过后,Worker 可通过超时机制领取款项和抵押品。
- 如果发生争议,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 → Closed | 11112, 33335 |
| Mode B 争议,裁决给工作人员 | Open → Active → AwaitingApproval → Disputed → ResolvedToBob | 11113 |
| Mode B 争议,裁决给请求方 | Open → Active → AwaitingApproval → Disputed → ResolvedToAlice | 11114 |
| Mode B 超时 | Open → Active → AwaitingApproval → Settled → Closed | 11115 |
| Mode B 仲裁员超时作废 | Open → Active → AwaitingApproval → Disputed → Voided | 20002 |
合约
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)。 |
arbitrator | M 取 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 和存放日常金额。
然后,在任一钱包中:
-
创建钱包,同步到主网,并存入少量 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(其流动性池较小;如需购买更多,请使用交易所)。
-
从钱包的 DApp Store 安装 Idios dapp。桌面端也可以从发布页面旁加载最新的
.dapp文件。 -
从已安装的应用中打开 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 或直接联系我们。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。