链上链下协同计算( 五 )


【链上链下协同计算】状态通道
状态通道专注于小额支付,但使用体验和可用性较差
状态通道是交易双方在链上锁定资产创建支付通道,并在链下进行交易,当用户从主链取出资产时,只需把链下多次交易的结果证明提交至主链智能合约验证即可 。
状态通道摊薄了多次交易的手续费用,尤其适合小额多频的交易场景 。这种技术早在比特币时期就被提出,因为链上交易的手续费都与交易金额无关,这导致小额交易的手续费用占很高 。
以状态通道扩容项目雷电网络为例,流程如下:
参与者双方需要将资产锁定在智能合约中,这一步保证了参与者可以相互转账和接收资产,直到参与者关闭了支付通道;参与者维护者自己的账户余额,双方通过发送签名后的交易证明进行交易;交易可以不断地进行,直到其中一方决定取出资产并关闭通道,他可以随时向智能合约展示交易证明来关闭通道,另一方如果与退出方有交易的话也需要在当时展示交易证明;当双方都展示余交易明后,便可以从智能合约中取回存款 。当另一方不能及时展示交易证明时,系统会判定他没有接收到任何转账,并按照单方的证明进行分配,这种机制保证了任何人都一定能取回他的资金,即使对方不配合 。
我们可以看出状态通道的优势在于:采用了双方净结算降低了单次交易费用;双方交易细节不上链保障了交易隐私;同时退出机制最大程度的保障了参与方的资金安全 。
但在使用体验上有着严重不足:第一,只能和开通通道或者在支付网络内的用户进行交易;第二,必须经常性地关注交易对手方是否选择关闭通道,从而展示接收的交易以保障自己的权益;第三,状态网络扩容机制的拓展性较差,难以实现链下交易外其他操作 。
保障资产安全,信息不可用成最大阻碍
要做的是通过多级(分层)子链来减轻区块链主链的压力,从而达到近乎无限的扩容 。
可以看作是一种保障资产安全的侧链技术,它将链下的状态证明上传主链,即使链下出现了安全问题,用户也能够证明并提出资产 。技术架构目前主要有两种主流的机制 MVP、 。
MVP是通过UTXO和 proof来实现用户在不借助第三方的情况下实现资产退出的 。在链下的交易以UTXO的形式记录在 tree上,并把相应哈希值上传至主网的智能合约,这样用户只需要提供 proof便能证明自己所拥有的UTXO,从而提出资金 。
当用户提出资产时需要一段质疑期进行欺诈证明,其他任何人都可以通过举证该用户已被花费的UTXO实现质疑 。因为主链通过智能合约虽然能够验证用户提供的证据,却无从得知的用户隐藏的信息(比如有些UTXO已经花费掉了) 。
对于子链反欺诈,采用了欺诈证明(Fraud Proof)的办法来解决 。
每个子链,需要在主链(以太坊)上创建智能合约,明确子链的游戏规则,诸如子链的块验证,父链跟子链的 token 转换等 。同时,子链出块方需要在父链中锁定资金,用于后续追责 。
业务数据保存在子链,子链的块 hash 同步到父链中作为凭证 。任意第三方可以负责监督子链的运行,如果发现欺诈行为,可以把问题区块提交父链验证,便于追责和问题区块回滚 。
不难看出,欺诈证明跟基本思路有相似之处:智能合约换成了区块链,图灵状态换成了区块哈希 。
MVP的“群体离开问题”:当大部分用户都想离开,则所有的状态证明全部都要被提交到以太坊上,并在挑战期内接受“挑战” 。由于是不限用户数量的,但以太坊区块的处理能力却很有限,因此如果整个的有效状态全部都提交给以太坊进行处理,会彻底堵死以太坊,导致交易的处理时间被大大拖延甚至遥遥无期 。