多链管理该怎样去实现
扫描二维码
随时随地手机看文章
区块链作为一种分布式账本技术,可以被应用在金融、健康医疗、供应链、资产管理等诸多领域,但是受吞吐量、网络孤立性、伸缩性等因素的制约,目前的区块链项目并不能很好地服务于商业应用。在区块链所面临的诸多问题中,网络孤立性阻碍了不同区块链之间的协同操作,极大程度的限制了区块链的发挥空间。
一、引言上次我们讲到了实现本体跨链的六个主要模块,分别为:多链管理合约、区块头同步合约、跨链管理合约、ONG(x) 合约、dApp 合约和信息状态同步者 Relayer。
今天为大家详细分析多链管理合约的主要功能和具体实现。
二、多链管理合约多链管理合约负责管理所有侧链,包括侧链索引、资金状态和验证人质押状态等信息。主要实现以下功能:
2.1 侧链注册
侧链注册到主链需要使用 ONT ID 完成 KYC 认证,并提交创世块信息等基本信息到主链。同时,侧链需要在主链上抵押一定的 ONG 作为保证金。该保证金由侧链初始验证人共同抵押,侧链验证人各自抵押的 ONG 量由侧链验证人协商确定。在提交注册信息前,若抵押量不足,则会导致注册失败。若侧链存在恶意行为(例如,侧链验证人恶意增发侧链上的 ONGx 资产),则会扣除保证金作为惩罚。
主链治理委员会审核侧链提交的基本信息,并在审核通过后根据保证金数量为侧链分配一个资金池,用于管理该链与其它链交互所用的资产。
可以看到,侧链的 ONGx 资产总量取决于其在主链中资金池的大小。某个侧链一旦作恶,那么该链在主链上质押的保证金可以用来偿付用户。因此,通常情况下,为了保证足够的安全性,侧链资金池的容量应该小于等于其抵押的保证金。
2.2 验证人信息变更
若某条侧链的验证人信息发生变更,那么需要新的验证人在变更前先去主链先抵押足够的 ONG,并要求其抵押量不能低于旧的验证人。当信息状态同步程序 Relayer 将包含新的共识周期验证人区块头提交到主链时,主链会验证新验证人总抵押是否足够。若不足,则该区块头同步将会被拒绝。
旧的侧链验证人抵押的 ONG 将会在接下来两次验证人信息变更后被解锁。
2.3 跨链资产兑换
侧链注册完成后,用户可以将其在主链上的 ONG 锁定在某条侧链注册在主链的资金池中,换取该侧链上相应的资产。
用户在某条侧链注册在主链上的资金池中锁定ONG 后,主链会生成相应 IOU 信息,若主链资金池被充满则锁定失败。若主链锁定成功,Relayer 或用户可基于主链生成的 IOU 信息在侧链释放对应比例的ONGx。反之,用户在侧链中销毁 ONGx,可根据侧链生成的 IOU 信息在主链资金池中释放对应的 ONG。
2.4 侧链资产动态管理
若侧链想扩大在主链中的资金池容量,则侧链可增加自己在主链中的保证金,并向主链提交申请。若审核通过,侧链在主链上的资金池容量会被扩大,侧链的资产供应量后续也会相应的增加。
类似的情况是,侧链想减小在主链中的资金池容量,则侧链需要先向子链提交申请。若审核通过,侧链在主链上的资金池容量会减少,侧链的资产容量也会相应减少。值得注意的是,侧链的资金池容量不得大于侧链验证人的保证金总量,并且不允许小于当前所有用户锁定的 ONG 总量。
2.5 侧链注销
若侧链需要注销退出,则需要向主链提交注销申请,并等待一段时间的挑战期。在挑战期内,用户可自主地将侧链资产兑回主链。挑战期结束后,若该侧链上还有没被兑回的 ONGx,则这部分的 ONGx 后续不能再被转回主链。