什么是跨链
跨链是区块链技术中一项非常重要的技术,它允许不同区块链之间的交互,克服了单个区块链局限性,为用户带来更多优势,主要体现在以下几个方面:
- 扩展性:
提高效率: 跨链技术允许用户将资产从一个区块链转移到另一个区块链,从而避免因网络拥堵或交易费用高昂而导致的效率低下。
连接不同区块链: 跨链技术可以将不同区块链的优势结合在一起,例如将以太坊的智能合约功能与比特币的安全性结合在一起。
- 互操作性:
资产流动性: 跨链技术可以实现不同区块链之间的资产互换,打破不同区块链之间的壁垒,提高资产流动性。例如,用户可以将以太坊上的 ETH 兑换成比特币上的 BTC,或者将其他数字资产转移到不同区块链上。
协议互通: 跨链技术可以实现不同区块链之间的协议互通,例如将以太坊上的 DeFi 应用扩展到其他区块链,或者将比特币的交易功能引入到其他区块链中。
- 协同性:
数据共享: 跨链技术可以实现不同区块链之间的数据共享,例如将一个区块链上的数据存储到另一个区块链上,或者将不同区块链上的数据进行整合分析。
协同合作: 跨链技术可以实现不同区块链之间的协同合作,例如将不同区块链的计算能力整合在一起,共同完成更复杂的计算任务。
- 创新:
新应用: 跨链技术为开发者打开了新的创新大门,可以开发出更多跨链应用,例如跨链 DeFi 应用、跨链 NFT 应用等。
拓展 Web3 生态: 跨链技术可以将不同区块链连接在一起,形成一个更加庞大、更加丰富的 Web3 生态系统。
跨链的挑战:
安全风险: 跨链技术需要确保跨链过程中的安全性,防止黑客攻击或数据泄露。
复杂性: 跨链技术的设计和实现比较复杂,需要考虑不同区块链之间的差异和兼容性。
性能: 跨链技术可能会影响区块链的性能,例如增加交易时间或降低吞吐量。
总而言之,跨链技术为区块链技术带来了巨大的潜力,它可以克服单个区块链的局限性,提高效率,扩展应用范围,并最终构建一个更加开放、互联的 Web3 世界。
为什么需要跨链
链的数量在增加,截止目前 chainlist 记载的链就高达 1052 个!
流动性的碎片化,比方说我们想玩个 GameFi 游戏,它有它自己支持的链,这个时候我要去与合约交互的话就必须进行跨链资产转移了
另外从这个流动性的占比上我们也可以看到,每条链的比例都在稀释,这是因为越来越多的链产生了!
怎么跨链
跨链的方式有两种,第一种:转移资产,第二种:传递数据;
合约本身是不支持跨链的,所以一般情况下我们都是通过一个中介进行跨链,将所有的合约与这个中介交互。
这就是中心化跨链,这个中介可以是中心化交易所
但是中心化交易所的局限性在于:它只能跨链转移资产,我们的合约没有办法通过中心化交易所跨链去传输数据,这个时候就需要借助预言机网络,目前比较流行的就是 Chainlink 预言机;
在 Chainlink 中单独定义了一种协议,这就是 CCIP(cross-chain interoperability protocol):跨链互操作性协议。具体流程如下图:
首先合约工程师需要部署一个 Sender 合约和 Receiver 合约,分别用于发送数据和接收数据,Sender 合约将数据发送给 Router 合约,Router 合约调用 OnRamp合约 将 Token 销毁或者锁定,然后执行 Commiting DON,这个过程主要是将数据移动到 OffRamp 合约,然后它会发送一个 Event 给 Risk Management Network,Risk Management Network 会对比 OnRamp 发送的数据与 OffRamp 接收的数据是否一致,如果一致则会执行进入到 Executing Don,执行转移操作
当源链和目标链有权限进行销毁和铸造时,会直接执行销毁和铸造;如果有了权限进行铸造的话会造成混乱,所以很多链都关闭了此方法的访问权限,这样的话就只能通过锁定和解锁实现了。
在此过程中不得不提到的一个问题就是:最终性,同时多个区块添加到当前区块链上,这样的话会形成分叉,最后谁的区块数量多谁就会成为主链,而另一个交易会被回退;为了避免回退,跨链一般会等待很多个区块确认之后再进行,这样的话耗时会非常久。
案例
Transfer USDC with Data(docs.chain.link/ccip/tutori…) 可以选择这个案例进行尝试。
一、首先查看 Before you begin 这一部分,需要我们去获取一些测试用 Token
二、找到 Explanation 模块,将合约代码拷贝至 Remix
参数解释:
_router:Router 合约地址,可以在文档中查找
_link:Link 合约地址
_usdcToken: Usdc 合约地址
三、填充上述合约的参数然后部署合约
四、根据 Tutorial 模块按步骤进行操作