概述
Block-Sena 是一种 on-chain 彩票,包括购票、一轮锁定、抽奖额和奖金 该协议使用两相流: blockSenaPauseDraw (锁定循环并记录承诺)和 blockSenaDrawPay (揭晓、抽奖和支付)。
目标
确保可审核、可重复的流程以及每轮透明的支付规则。
可审计性
任何人都可以验证输入(提交、盐、目标块)、种子计算、抽奖号码和结算事件。
提交-揭示(2个阶段)
功能 blockSenaPauseDraw(usdValuePoolSnapshot, commitHash) 锁定轮圈 对于新购买,设定未来目标块,并仅存储秘密盐 散列.
功能 blockSenaDrawPay(盐) 验证了 keccak256(盐) == commitHash,使用目标块 区块链, 生成6个唯一号码并执行支付。
这 区块链 只能读取约256个块。如果过渡,则该轮需要 此重置是一种罕见的故障保护,具有 on-chain 超时,并且每次使用都保持公共 on-chain。
盐承诺
目标块
相似流程(21:00 UTC -> +5 个区块 -> DrawPay)
Block-Sena 操作流程明确区分 票务关闭 从 6个数字的生成。 风险这种去除消除了买票的 了解结果后或尝试调整彩票以匹配中奖号码。
功能 blockSenaPauseDraw(usdValuePoolSnapshot, commitHash) 锁定轮圈, 阻止新的购买,记录 提交哈希值,定义 目标块 = 块.数量 + 5,并以美元存储池快照。
后 PauseDraw,没有新票可以进入该轮。 那一刻, blockhash(targetBlock) 仍然不存在, 所以最后的6个数字还无法预测或计算。
功能 blockSenaDrawPay(盐) 根据提交的验证盐, 读取目标块 区块链,生成6个唯一的数字,并执行 每代币的支出。如果在目标块调用之前,事务将恢复 on-chain。
任何人都可以在资源管理器中验证: blockSenaPauseDraw 德克萨斯州, 目标块,这个 blockSenaDrawPay TX,显着使用盐, 抽奖号码和结算/支付事件。
这是不可能的 看到该轮的6个数字后购买彩票, 因为回合已经锁定 blockSenaPauseDraw 在抽签执行之前。
这是不可能的 知道锁定时的6个数字,因为公式取决于 在未来的区块上(目标块)此时还不存在。
这是不可能的 在技术时间之前执行抽签,因为 blockSenaDrawPay 要求 on-chain 当前块已经超过 目标块.
blockSenaResetDraw 存在只是为了阻止募集卡住址 如果发生长期基础设施故障(例如:RPC中断、服务维护、 网络/基础设施中断或长期运营问题)以及 DrawPay 无法执行 之前 blockhash(targetBlock) 过渡期。
在正常流程中,预期的行为是执行 DrawPay 几个街区之后 PauseDraw (目标为 +5 重置是一种活性, 不是正常流程的一部分。
数学绘图公式(6个不同的数字)
抽取种子源自未来区块、承诺盐和一轮数据的组合。 合约消耗生成 1 到 30 个之间的数字,并丢弃重复的数字,直到 6 个唯一的数字。
在操作安全方面:因为门票已经被冻结了 PauseDraw 在未来区块存在之前的阶段,抽签无法“提出设计” 接下来插入的彩票,之后任何参与者都不能在同一轮中下注 知道结果。
获取种子
每个数字的生成
此程序可防止最终结果出现重复数字,清晰抽签保持在有效范围内 1..30.
多选门票(6至10个号码)和组合损耗
在 Block-Sena 中,票证可以包含 6 至 10 个数字。这张票代表多名 6个数字的等价组合。奖金计算依据 恐惧 (组合),而不仅仅是“人”。
具有 k 个数字的拟意的总组合
更多增益增益 (4/5/6)
考虑购买门票 k 数字和 x 6 个抽奖号码内的匹配。
示例(10号彩票,其中6个中奖号码在10内)
q6 = 1, q5 = 24, q4 = 90。 同一张彩票可以同时赢得全部 3 个等级。
多币种支付(按币种结算)
每个池代币(例如,本机、USDC、USDT)都是独立结算的。契约按轮次计算恐怖者和奖金 并象征性地维护准确的历史记录 RoundTokenStats.
等级划分
每个人都获得了名额奖金
如果没有赢家
该层金额不会损失:在下一轮中该代币将变为 carry-over。
如果获奖者有多名
奖金按获奖者每名额分配。同一钱包可能会收到多个损失,这些损失汇总为代币的单次付款。
如何评估脚步(步骤)
- 找到 blockSenaPauseDraw tx 并记下 提交哈希值 和 目标块.
- 在目标块之后,找到 blockSenaDrawPay tx 并阅读提交的内容 盐.
- 重新计算 keccak256(盐) 并确认其匹配 提交哈希值.
- 读 blockhash(targetBlock) 在探索者和 prevrandao 来自相似的 tx 块。
- 重置种子和 6 数生成例程(丢弃重复项)并与 现有已执行.
- 如果发生罕见的操作故障,请检查 DrawReset (roundId、targetBlock、reset block)以验证超时并重置可调整性。
- 查看 RoundTokenSettled 矿池、每层支付和每代币 carry-over 的事件。
- 确认本机/ERC20转账以验证对获奖者的付款。
保证、失误和运营限制
Block-Sena 的设计使问卷结果为 可审核、可重复且透明。 提交-显示与未来块相结合显着降低了手动结果推测的可能性。
用技术术语来说,该模型得出的结果 锁定时间不可预测, 因为循环在 blockhash(targetBlock) 使用于种子中存在。 这使得公式保持公开和可审计,允许以后根据结果进行投注。
保证什么on-chain
抽奖规则、损耗计算、等级支付(80/15/5)、分配每个币种的历史记录、事件和每个步骤的可追溯性。
紧急操作
对于罕见的技术场景(例如,由于以下原因导致区块暂停过渡)有抽签重置功能 长时间的基础设施/网络故障)。它只能在固定且 on-chain 超时后执行。 危险使用都是公开的,记录在 on-chain 中,并且可以在资源管理器中进行审核。
重置不会移动资金、删除项目或更改池。它只解锁循环以允许 一次新的抽奖尝试 轮同 在极少数的故障情况下。
奖金保留在合同中,草案抽奖并自动支付给获奖者。如果没有获胜家 在某一层中,该值在下一个激动中仍记作 carry-over 。楼主没有这个功能 已提取计入奖励池的资金。
这 rescueAll 功能的存在只是为了拯救 未入盈账余 (例如,错误的直接路线),计算 实际余额 - 入账池。它达到了没有 奖金已计入总池。
其中:Block-Sena 不要求盲目信任。它提供了可以观察到的流动性, 任何人都可以随时以数学方式复制并验证on-chain。