LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > BHEXChain负责人Cody《基于MPC的跨链桥落地实现》——金色沙龙演讲内容实录

BHEXChain负责人Cody《基于MPC的跨链桥落地实现》——金色沙龙演讲内容实录

2021-07-23 BHEX 来源:区块链网络

7月23日,第67期金色沙龙「跨链桥-孤岛互链,生态治理与关键」线上版直播中,BHEX Chain负责人 Cody为直播观众带来了《基于MPC的跨链桥落地实现》的主题分享,以下为内容实录:

我用15分钟左右的时间和大家聊下基于MPC的跨链桥落地实现

首先,我给大家介绍下BHEX Chain

BHEX Chain通过密码学技术的突破创新来做跨链支持,并结合椭圆曲线数字签名、零知识证明和可信多方计算等密码学工具,实现跨链托管资产私钥,在所有核心节点进行分布式生成和签名。整个过程,私钥完全不可见也从未真正出现过,只是以碎片的形势分别保管在不同的核心节点上。这样保证了私钥的生成完全去中心化,任何一方都无法获得整个私钥,从而实现安全可靠的托管和跨链资产管理技术。

BHEX Chain支持N*N的跨链模型,支持完整的链&链之间的数据互操作性。从密码学出发,兼容现在所有的主流公链,同时,也兼容目前所有的主流跨链方案。

我们先来看看?BHEX Chain当前的主要特色,目前,BHEX Chain已经主网上线。

目前线上已经支持BTC/ETH/HECO/BSC/DOGE/TRON等主流公链,后续对基于utxo/account模型的主流公链做到用户投票配置即可上线。在分布式签名的情况下,20个节点大约需要60s左右。

我们再来看下他的底层技术实现。

所有的私钥都是分布式生成,每个节点持有私钥的部分分片,需要2/3以上的节点共同协作才可以完整的对数据签名。在私钥生成和签名过程中,我们做了完整的零知识证明,整个生成和签名的过程每次使用的参数都是节点随机生成,不会出现相同的随机数。任意流程的错误都会主动去链上共识,对原有的过程会重新开始一轮,上一轮的数据将会被丢弃。参与协作的节点会独立计算相关的超时时间。

去中心化托管,用户可以在BHEX Chain上生成任意公链的充值地址,该地址的私钥完全以分片的形式存在不同的节点上,完整的私钥从未出现。在这种情况下,每个用户的充值地址都是独立的,可以自由的从任意地方往该托管地址充值,充值完成后,BHEX Chain会记录用户的充值情况,并且完全1:1的给用户在BHEX Chain上的账户增加同样的映射资产。

BHEX Chain上,链作为清算层存在,同时,还有一个结算层,清算&结算分离,也方便了跨链的异步化实现。基于MPC的技术应用,有一个比较大的问题就是,私钥分片越多,整体的签名时间就越长,并且呈线性增长。作为区块链社区,需要有足够多的节点参与共识,如何平衡共识和私钥分片托管的问题,我们实现了三层节点模型。

在三层节点体系上,共识节点和跨链托管节点都可以参与共识出块,共识节点不保存用户的私钥分片,可以随时加入&退出。跨链托管节点负责保存用户的私钥分片以及和对接公链通信,所有的跨链流程都是异步化的,跨链托管节点也支持轮换,但是跨链托管节点的轮换目前采取的是DAO治理模式,由持有治理代币的人进行投票轮换,节点轮换会涉及到整体的托管资产迁移和用户的托管地址重新变更(确保用户的私钥分片不会泄漏),每次轮换的节点数量不会超过1/3。在此基础上,我们可以保障有足够的共识节点参与区块链的运转,同时也能确保用户的资产安全。

这个就是我们的基础底层技术,完全基于MPC的创新应用,实现资产的分布式托管。在此技术上,我们需要实现对用户的充值/提现作出完整的应用支撑。

跨链资产的托管充值,我们先来看下整体的账户模型是怎么样的。

对于跨链托管的资产来说,每类资产都有独立的归集地址,归集地址的个数可以有多个,归集地址也完全由跨链托管节点分布式生成,在跨链托管节点迁移时,我们会对每一轮托管节点设立一个epoch作为标记,跨链托管节点迁移的时候,同时,资产也会迁移(归集账户不变,归集目标链地址的变化),在迁移的过程中?,也完全不影响用户的充提等功能(目前我们只支持两个epoch,如果超过两个epoch未被处理的事情,将不会被处理,理论上跨链托管节点的变迁不会特别快),每个账户对应目标链的关键数据在BHEX Chain上有一个同步,包括nonce,资产等都会有完全的映射,确保跨链流程不出问题。

在这个基础的账户模型下,确保资产真正的被BHEX Chain链映射和托管,数据和对应的链式完全同步的。

众所周知,跨链在充值环节有可能是被攻击最多的,包括最近的THOR?Chain的问题。我们来看看BHEX Chain怎么确保充值安全的。

这是BHEX Chain上一个完整的充值流程。

跨链充值每个用户都会在不同的链上有一个独立的充值地址,所有的充值事件由其中任意跨链托管节点触发,触发后发送到链上进行共识,所有的跨链托管节点会对该充值进行确认,大多数节点确认通过后,该充值才会被认为是有效充值。充值完成后,系统会自动进行归集,归集完成后,充值将会入账到用户账户。所有的充值在链上都有hash验证,确保不会出现假充值,充值重放等问题,所有的充值都会配置一个相对较高的确认数,确保对应公链可能回滚造成的问题。为了防止小额充值,大额提现的充值攻击等问题,我们设置了一个最低充值额(多次充值不累计),并且对每笔充值都会收取一个入账费用(该费用为对应公链的Gas Fee)。充值非主链代币,系统会向对应的充值地址发送Gas Fee,有一个反向打币的动作,所有的充值和归集流程在链上清晰可查。对应充值的入账费用由跨链服务托管节点oracle决定,读取对应链的Gas Fee在BHEX Chain上做oracle决定。

我们对充值做了完整的检测和安全防御,确保不会出现充值重放/假充值/充值攻击等问题,所有的充值基础检测逻辑在我们的交易所也经过了几年时间的检测。

充值完成了,用户自然会有提现的流程,我们看看BHEX Chain在提现的处理。

这是一个完整的链上提现流程,跨链提币在用户发起提币请求后,用户的提币命令会被所有的跨链托管节点确认以及所有共识节点验证,目前不支持提币地址为合约地址,因为合约的Gas Fee是无法预估的。所有的跨链操作完整流程链上可见,

用户提币的资产会从链上托管的钱包地址里面给用户转账,整个签名过程是分布式的。

https://explorer.bhexchain.com/orders/e0776cf2-b7d8-45c7-9cdc-2e843709fec1 这个是我们链上浏览器的一个提现过程。

最后?来看下我们目前支持的应用

BHEX Chain基于cosmos构建,我们接入cosmos的IBC协议,可以把BTC/eth等主流资产带入cosmos生态,cosmos生态内部任意项目可以完全安全的使用各类跨链支持的主流资产,让资产在cosmos生态内部玩转起来。

目前,在bsc/heco等网络上,各种跨链资产更多的是依赖于中心化交易所发行到链上,是非去中心化的,通过BHEX Chain,可以在eth/heco/bsc等公链上映射发行BTC等资产,资产锁定在BHEX Chain上的托管地址,每充值兑换一个跨链映射的BTC,则在对应的网络上增加一个流通,整个流程和renBTC比较一致。

在BHEX Chain上,以USDT为例,目前用户充值heco/bsc/eth/tron上的USDT,都会映射成同一个USDT,任意跨链同一个资产都可以多链映射在BHEX Chain上为同一个资产,用户可以充值heco上的USDT,提取到任意链上去,这样完全的完成了去中心化的资产流通兑换,对于任意DeFi项目来说,在多链的资产也可以这么做,通过BHEX Chain这种多链跨链桥,可以完成项目的资产在不同的链上自由跨链流通。

HDEX是基于BHEX Chain上的OpenDex协议的Dex,同时支持Orderbook和AMM的兑换模式,同样,也支持任意基于OpenDex协议的Dex之间的流动性共享,每个Dex可以独立设置自己相关的参数,同时,也支持native token的兑换,用户可以交易到真正的BTC,还不是经过wraped 的BTC,目前支持的tps大约在2000左右,手续费基本可以忽略不计。

这个就是我们目前主要支持的应用,可以做到一个完全的多链跨链桥。

在安全审计上,我们完整的经过了?PeckShield和SlowMist的审计。

—-

编译者/作者:BHEX

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...