ZooBC 维基
应用与在 ZooBC 上开发

应用池

ZooBC 上的单人游戏是与庄家对赌的,而庄家就是应用池:一个内置于协议、没有任何人持有其密钥的账户。它收下每一笔单人赌注,支付每一笔单人奖金,并收取多人游戏的抽成。只有应用规则才能转移它的资金。

无密钥账户

该池的地址是一个固定名称,而不是公钥:00000000 ‖ "ZBCAPPS" ‖ 25 zero bytes。由于没有密钥,任何签名都永远无法从中支出,ZooBC Foundation 的签名也不例外。每个节点对每局游戏都算出相同的结果并执行相同的付款,因此没有人手动审批赔付。长效池和存储池是同一类协议账户(资金池)。

该池在创世区块中注资;它持有多少 ZBC 和创世币,由每条链的创世配置设定。任何人都可以随时用 GET /api/v1/apps/pool 查看它的余额,该路由返回 zbc、tokens[] 和 channels。

资金的流入与流出

  • 流入: 每一笔单人赌注(在投注执行的那一刻),以及每一局未以平局结束的多人游戏或通道游戏 1% 的抽成。
  • 流出: 每一笔单人奖金。
  • 输了则什么都不转移: 赌注已经在池中。

每种资产分开计算。以某种代币下注的投注从该池中这种代币的余额支付,该池的各项限制也按资产分别计算。

每一张单人赔付表平均返还的都略少于赌注:抛硬币约有 1% 留在池中,老虎机约为 10.7%(单人投注)。这一差额与抽成一起,使该池能够长期支付赢家。

应用池:赌注流入,奖金流出,只有应用规则能转移它的资金。
应用池:赌注流入,奖金流出,只有应用规则能转移它的资金。

保护它的两项限制

一个支付每一笔奖金的池子,不能被一次幸运的结果掏空,也不能被某个能够影响区块种子的人掏空。有两条规则守护着它。

投注上限。 在接受一笔单人投注之前,节点会计算该投注可能产生的最大赔付,并与该池中赌注所用资产余额的 5% 相比较。超过上限的投注会被拒绝。池中有 100,000 ZBC 时,任何一笔投注的奖金都不得超过 5,000 ZBC;单人投注 给出了每种游戏的最大赌注。

每区块额度。 从 0.5.8 版本起,一个区块支付的单人奖金不得超过该池的近期流入:即最近 5,760 个区块(一天)内以该资产下注的单人赌注总额。超出部分作为应付赔付记录在已结束的应用上。在之后的每个区块中,应付赔付都按应用 id 的顺序,从该区块的额度中优先支付,直到欠款付清。

一笔投注只结算一次。不会重新抽取,不会被没收归池,赌注也绝不退还:额度只会推迟一笔大额奖金,不会缩减它。把每个区块的支付与玩家近期的下注挂钩,就限制了任何单个区块能从创世资金中发出多少。

一笔 40,000 ZBC 的奖金遇上 10,000 ZBC 的额度:立即支付 10,000,30,000 记为应付,由之后的区块优先支付。
一笔 40,000 ZBC 的奖金遇上 10,000 ZBC 的额度:立即支付 10,000,30,000 记为应付,由之后的区块优先支付。

另见