专栏名称: SmartMeshFoundation
SmartMesh基金会
目录
相关文章推荐
哈尔滨日报  ·  财政部:适当提高退休人员基本养老金! ·  17 小时前  
哈尔滨日报  ·  为什么一只活鸭上百元,一只烤鸭只要25元? ·  昨天  
哈尔滨日报  ·  上海通报3起形式主义典型问题 ·  2 天前  
哈尔滨日报  ·  热搜第一:“浪姐”成团夜直播假唱? ... ·  3 天前  
51好读  ›  专栏  ›  SmartMeshFoundation

SMARTMESH生态通用通道(WORMHOLE)设计方案

SmartMeshFoundation  · 公众号  ·  · 2018-10-30 16:42

正文

请到「今天看啥」查看全文



(5)多token通道关闭与结算


多token通道关闭和通道结算,保证账户节点可以最终拿回自己应得的token。通道一方可以只关闭某种token slot,提交该token slot中交易的余额证明进行结算;结算后,该token slot将不能继续使用,通道中未关闭的token slot中的token仍然可以继续交易。如果不再使用这条通用通道,需要将通道中所有的token slot均关闭。多token slot依次结算后,通用通道结算完成,结算后在链上从合约中获得应得的所有类型的token,该通用通道被销毁。


3.1.3适配性设计

当前以太坊和Spectrum均支持ERC20token,多token意味着该区块链上发行的多种token可以被链上的智能合约同时容纳。当某种token的条件触发时,根据合约中预设的操作进行处理,相对单一的token类型,通用通道的兼容性更强,但设计模式仍然基于以太坊和Spectrum的共识机制,因此,在开发和使用上与现有的智能合约保持一致。


通用通道的链下处理流程中,对事件的解析方式将保持不变,但对原有功能的数据模型需要进行重新构建,新数据模型将支持多种token的业务逻辑需求;在收发消息的处理流程上需要更加细化,区别不同slot token请求、事件及状态改变产生的本地行为处理;通信机制上,继续采用Matrix集群管理方案以支持多token并发状态下的通信需求;路由设计上将构建多token通道拓朴和单token slot拓朴延展模型,对整体token事件和不同slot token事件产生的拓扑变化进行关联处理;在安全防护设计上,为保证交易节点状态数据的同步,要求保证节点意外掉线或退出情况下,节点重新启动后,节点不会丢钱,通道slot可以继续使用; 无网和移动适配方面,相应增加多token功能接口支持,并对移动设备的性能和体验需求提供特殊处理机制;第三方服务对相应接口进行更新,以支持多token提交证明及收费的扩展。


3.2通道内token互换的支持设计

通用通道内可以同时容纳多种token,因此,除了正常的通道打开、存款、取款、转账、关闭和结算功能之外,在同一个通道内的按照原子性的设计,可以实现token互换功能。


3.2.1直接通道token互换

通用通道是建立在两个账户之间的通道,通道的双方各自存有多种token类型。如果进行token互换的账户节点之间有直接通道,各自都有对方需要的token类型及token数量,并且双方在链下达到了交换的比例与意见,则可以使用通用通道,实现两种或多种token互换。为保证交易的原子性,通道双方的互换交易需要进行HTLC设定,Bob给Alice发tokenB,Alice给Bob发tokenA,需要保证Alice收到tokenB后一定会给Bob发tokenA,并且互换的两笔转账要么都成功,要么都失败。


举例如下:


设通用通道智能合约ContractU,默认支持tokenA 和tokenB。则Alice和Bob使用ContractU,构建了通用通道ChannelU。以下为交易过程(图中MTR为带secret和时间的转账交易):


以Photon为例:

Bob生成X的哈希值R(X)

Bob用R(x) 48小时内发送MTR2给Alice

Alice用R(x) 24小时内发送MTR1给Bob

Bob给Alice X,Alice 48小时内拿到tokenB.

Alice给 Bob X, Bob 24小时拿到token A.


通过HTLC原子交换,可以在同一个通用通道内实现两种token的交易。当然,如果Alice和Bob在其他token slot余额充足的情况下,Alice仍然可以使用TokenA换取Bob的TokenC、TokenD等,反之,Bob也可以进行同样的互换处理。


3.2.2间接通道token互换




Alice和Bob之间如果没有直接通用通道,需要通过中间节点才能建立链下支付时,只要双方通过的中间节点能够在通道网络中将这两种token的中转转账形成环路,并且中转节点拥有足够数量的两种token,也能实现token的原子互换。如上图,Bob将tokenB的中转转账发送给Charlie,通过Charlie将这个token的互换交易发给Alice,而后,Alice再通过Charlie再TokenA的互换交易发送给Bob。这个过程中,因为Charie拥有tokenA和tokenB两种token,并且余额充足,Charlie将两种token环接了起来,保证了HTLC的正常实施。实施流程如下:

以Photon为例:

Bob生成X的哈希值R(X)

Bob用R(x) 48小时内发送MTR2给Charlie

Charlie用R(x) 48小时内发送MTR2给Alice

Alice用R(x) 24小时内发送MTR1给Charlie

Charlie用R(x) 24小时内发送MTR1给Bob

Bob给Alice X,Alice 48小时内拿到tokenB.

Alice给 Bob X, Bob 24小时拿到token A.







请到「今天看啥」查看全文