Cointime

Download App
iOS & Android

CCIP—크로스 체인 DeFi, NFT 및 게임의 완벽한 상호 작용을 달성합니까?

Validated Project

작성자: Chainlink , 편집: Cointime.com QDD

체인링크의 CCIP(Cross-Chain Interoperability Protocol )는 스마트 계약 개발자에게 블록체인 네트워크 간에 신뢰를 최소화한 방식으로 데이터와 토큰을 전송할 수 있는 기능을 제공하는 새로운 범용 교차 체인 통신 프로토콜입니다.

현재 여러 블록체인에 배포된 애플리케이션은 자산, 유동성 및 사용자의 파편화로 어려움을 겪고 있습니다. CCIP를 사용하면 개발자는 토큰 전송 및 임의 메시징을 활용하여 단일 통합 애플리케이션을 형성하기 위해 상호 운용되는 여러 블록체인 네트워크에 배포된 여러 스마트 계약으로 구성된 분산 애플리케이션을 구현할 수 있습니다. 이 Web3 디자인 패턴을 크로스체인 스마트 계약 이라고 합니다.

다음은 DeFi, 크로스체인 ENS, 여러 체인에서 NFT 발행, 크로스체인 게임과 같은 영역을 다루는 CCIP를 사용하여 크로스체인 애플리케이션을 구축하는 몇 가지 예입니다. 이러한 사용 사례 예제는 CCIP가 기존의 단일 또는 다중 체인 애플리케이션을 강력하고 새로운 교차 체인 dApp으로 변환할 수 있는 잠재력을 보여줍니다.

모든 예제는 Chainlink Labs의 GitHub 에서 사용할 수 있으며 지금 바로 배포하고 상호 작용할 수 있습니다.

DeFi: 교차 체인 결합성

DeFi는 교차 체인 스마트 계약을 통해 변환할 수 있는 Web3 애플리케이션 클래스입니다. 현재 DeFi 세계에서 많은 애플리케이션은 단일 체인 또는 여러 체인에 배포되며 각 인스턴스에는 고유한 사용자 집합과 유동성이 필요합니다. 각 체인에는 개발자가 허가 없이 특정 네트워크에 배포된 다양한 프로토콜과 연결 및 통합하여 새로운 사용 사례 및 금융 상품을 만들 수 있는 DeFi 구성 가능성 및 "통화 레고"의 개념이 있습니다.

교차 체인 스마트 계약 및 교차 체인 토큰 전송을 가능하게 함으로써 CCIP는 DeFi 구성의 개념을 기하급수적으로 증가시킵니다. 이제 구성성은 더 이상 각 체인에 국한되지 않고 해당 체인의 DeFi 프로토콜에 더 이상 제한되지 않지만 이제 모든 체인의 모든 DeFi 애플리케이션을 다양한 방식으로 결합하여 새로운 금융 상품을 만들 수 있습니다. 애플리케이션과 프로토콜은 더 이상 그들이 상주하는 체인으로 제한되지 않습니다.

이 교차 체인 결합성은 DeFi 애플리케이션의 생태계를 더욱 완전하고 상호 연결하게 만들고 모든 체인의 유동성, 사용자 및 금융 상품을 모든 프로토콜에서 사용할 수 있습니다. CCIP는 "통화 레고" 비유를 사용하여 모든 다른 레고 세트를 결합하고 단일 통합 세트로 사용하여 금융 계약을 체결할 수 있도록 합니다.

CCIP에서 큰 혜택을 볼 수 있는 특정 DeFi 금융 서비스 중 하나는 대출입니다. 현재 세계에서 대부분의 DeFi 대출 프로토콜은 사용하려는 프로토콜을 배포하는 체인에 담보를 예치하도록 요구합니다. 그러나 많은 DeFi 사용자는 여러 블록체인에서 여러 DeFi 프로토콜을 사용하며 자산은 모든 블록체인에 분산되어 있습니다. 이러한 사용자는 일반적으로 최고의 수익률을 추구하고 수익을 극대화하기 위해 포지션을 조정하지만, 많은 경우 이러한 자산은 다른 체인에서 더 나은 수익 기회를 가질 때 한 체인의 프로토콜에 고정됩니다. 더 나은 수익 기회에 참여하려면 한 체인에서 자신의 포지션을 청산하고 자산을 새 체인에 수동으로 연결하고 해당 자산을 새 체인의 프로토콜에 예치한 다음 자산을 원래 체인으로 반환하고자 할 때 동일한 프로세스를 거쳐야 합니다. 수익 기회를 추구하기 위해 자산을 새 프로토콜로 전송하는 데 많은 단계가 필요합니다.

이와 같은 상황에서 CCIP는 DeFi 프로토콜을 진정한 크로스체인으로 만들어 사용자가 한 체인의 디지털 자산을 다른 체인의 DeFi 프로토콜에 대한 담보로 원활하게 활용할 수 있도록 합니다. 이 모든 것은 사용자가 수동 작업을 수행하거나 제3자 브리징 사용으로 인해 신뢰 가정을 추가할 필요 없이 프로토콜 수준에서 CCIP에 의해 처리됩니다. CCIP를 사용하여 DeFi 프로토콜은 차용자가 자산을 (소스) 체인에 예치하거나 대상 체인으로 직접 전송한 다음 해당 자산을 대상 체인에서 차용할 수 있도록 할 수 있습니다. 대상 체인에서 자산 사용을 중단하려는 경우 DeFi 프로토콜은 CCIP를 사용하여 위치를 철회하고 자산을 원래 체인으로 다시 옮길 수 있습니다. 이것이 CCIP가 제공하는 DeFi의 힘입니다.

이 예에서는 Avalanche Fuji 테스트넷에 배포된 DeFi 스마트 계약 Sender.sol이 있습니다. 이 계약은 사용자의 예치금을 토큰으로 허용하며, ETH, 스테이블 코인 또는 실제 가치가 있는 모든 토큰으로 포장할 수 있습니다. Sender.sol에는 CCIP를 사용하여 지정된 토큰과 메시지를 대상 체인으로 프로그래밍 가능한 전송을 수행하는 sendMessage 기능이 있습니다. 이 예에서는 지정된 토큰을 Ethereum Sepolia 테스트넷으로 보내고 최종 사용자의 EOA(외부 소유 계정) 메시지를 포함합니다.

참고: 이 문서의 모든 코드 예제는 단지 설명을 위한 것이며 명시적이든 묵시적이든 어떤 종류의 보증도 없이 "있는 그대로" 제공됩니다. 이러한 코드 스니펫의 사용은 chain.link/terms 에 나열된 서비스 약관에 따릅니다.

Ethereum Sepolia 네트워크에서 Protocol.sol이라는 스마트 계약을 배포했습니다. 이 계약은 CCIP 프로그래밍 가능 토큰 전송 메시지를 수신하고 다음 작업을 수행합니다.

l 담보로 빌릴 수 있는 스테이블 코인을 주조하고 제어합니다.

l CCIP 메시지에서 소스 체인(대출에 대한 담보로)에서 전송된 특정 토큰의 계약 주소(대상 체인에서)와 예치된 금액을 읽습니다.

l 최종 사용자(예금자/대출자)의 지갑 주소도 CCIP 메시지 내용에서 읽습니다. Stablecoin은 이 주소로 발행되며 이 주소는 예금 및 대출 추적에도 사용됩니다.

l 이 정보를 스마트 계약에 저장합니다.

Protocol.sol이 이 CCIP 프로그래밍 가능한 토큰 전송 메시지를 성공적으로 수신하고 처리하면 사용자는 수동으로 borrowUSDC 기능을 실행하여 자금을 빌릴 수 있습니다. 이 기능을 통해 사용자는 전송된 토큰을 담보로 사용하여 대출자의 EOA에 동등한 금액의 스테이블 코인(예: USDC)을 발행하고 빌릴 수 있습니다. 이 예에서 우리는 70% 담보 비율을 가정합니다. 즉, 프로토콜이 담보 가치의 70% 이상을 빌려주지 않는다는 의미입니다.

Protocol.sol이 이 CCIP 프로그래밍 가능한 토큰 전송 메시지를 성공적으로 수신하고 처리하면 사용자는 수동으로 borrowUSDC 기능을 실행하여 자금을 빌릴 수 있습니다. 이 기능을 통해 사용자는 전송된 토큰을 담보로 사용하여 대출자의 EOA에 동등한 금액의 스테이블 코인(예: USDC)을 발행하고 빌릴 수 있습니다. 이 예에서 우리는 70% 담보 비율을 가정합니다. 즉, 프로토콜이 담보 가치의 70% 이상을 빌려주지 않는다는 의미입니다.

사용자는 Sepolia에서 UDSC를 담보로 성공적으로 빌린 후 필요에 따라 Sepolia 네트워크의 모든 DeFi 프로토콜에서 이 자금을 사용할 수 있습니다. 그런 다음 작업이 완료되면 Protocol.sol에 상환할 수 있습니다. 그러면 stablecoin 토큰이 소각되고 CCIP 프로그래밍 가능 토큰 전송 메시지를 Fuji 네트워크의 Sender.sol 계약으로 다시 보내면 잠긴 토큰이 Fuji 네트워크의 지정된 주소로 반환됩니다. 사용자는 먼저 프로토콜이 빌린 금액을 소각하기 위해 사용자가 빌린 스테이블 코인의 "소비자"로 Protocol.sol을 승인해야 하며, 이것이 상환이 구현되는 방식입니다.

이 예제에 대한 전체 소스 코드 및 지침은 CCIP-DeFi Lending GitHub 리포지토리에서 찾을 수 있습니다.

DeFi: 교차 체인 청산 보호

DeFi 및 대출 프로토콜의 주제를 이어가면서 많은 DeFi 사용자는 여러 DeFi 프로토콜과 여러 블록체인에서 여러 위치를 차지합니다. 이로 인해 포트폴리오 및 DeFi 포지션을 추적하기가 어렵습니다. 현재 사용 가능한 여러 제3자 플랫폼, 트래커 및 수익 애그리게이터를 통해 DeFi 사용자는 단순히 담보를 배포하고 이러한 제3자 플랫폼이 자산 배포 및 전송을 처리하여 사용자 수익을 최적화할 수 있습니다. 이러한 도구는 DeFi의 복잡성 중 일부를 추상화하여 사용자가 수익을 쉽게 얻을 수 있도록 하는 훌륭한 작업을 수행하지만 신뢰를 최소화하지는 않습니다. 사용자는 프로토콜에 위임하여 수익을 얻고 청산을 피하기 위해 포지션이 담보로 유지되도록 합니다. 또한 최종 사용자가 어떤 형태의 청산 보호를 원하는 경우 DeFi 포지션이 있는 모든 블록체인에 기본 자산을 배치하여 각 체인에서 차용 및 대출 포지션의 담보를 보장해야 합니다.

DeFi 프로토콜, 포지션 모니터링 앱 및 수익률 집계기는 CCIP 및 크로스체인 토큰 전송 및 메시징을 통해 크로스체인 청산 보호를 강화할 수 있습니다. 즉, 사용자는 여러 블록체인에서 오픈 포지션이 있는 여러 DeFi 프로토콜을 가질 수 있으며, 하나 이상의 대출이 담보를 확보하기 위해 추가 자금이 필요한 경우 추가 담보로 단일 체인에 자산을 할당할 수 있습니다. 높은 수준에서 작동하는 방법은 다음과 같습니다.

l DeFi 최종 사용자는 여러 체인(예: Ethereum, Avalanche, Polygon)에 부채 위치를 가지고 있지만 하나의 체인(예: Ethereum의 Aave)에 있는 금고에 유동성을 안전하게 보관합니다.

l 각 체인에서 사용자의 부채 위치에 대해 사용자의 Chainlink 자동화 구현은 위치의 부채 비율을 모니터링합니다.

l 자동화가 차입금이 청산 임계값에 근접한 것으로 확인되면 자동화는 사용자의 유동성 체인(예: 이더리움)에 CCIP 메시지를 보내 부채 포지션을 채우기 위해 자금을 보내도록 요청합니다.

l 유동성 체인의 계약이 CCIP 메시지를 받으면 Aave에서 유동성을 인출하고 자금과 함께 새로운 CCIP 메시지를 요청 체인으로 보냅니다. 메시지에는 포지션에 자금을 지원하고 청산 상황을 피하기에 충분한 정보와 토큰이 포함되어 있습니다.

그 결과 사용자는 단일 체인에서 유동성을 유지하면서 여러 체인에서 부채 위치를 가질 수 있습니다. 전체 프로세스는 신뢰가 최소화되고 사용자는 여전히 부채 위치를 100% 제어할 수 있으며 수동으로 자금을 인출하고 다른 체인으로 자금을 이체할 필요가 없습니다. 작동 방식은 다음과 같습니다.

그 결과 사용자는 단일 체인에서 유동성을 유지하면서 여러 체인에서 부채 위치를 가질 수 있습니다. 전체 프로세스는 신뢰가 최소화되고 사용자는 여전히 부채 위치를 100% 제어할 수 있으며 수동으로 자금을 인출하고 다른 체인으로 자금을 이체할 필요가 없습니다. 작동 방식은 다음과 같습니다.

Chainlink Automation은 사용자가 부채 포지션을 가지고 있는 모든 체인을 모니터링하고 자금을 보내라는 메시지가 있는지 확인합니다. performUpkeep 기능은 필요한 경우 자금을 요청하는 유동성 보유 체인의 금고에 CCIP 메시지를 보냅니다.

유동성이 있는 체인의 금고는 자금 요청을 받고 충분한 자금이 요청한 체인으로 반환되는지 확인하거나 충분한 자금이 전송되도록 DeFi 프로토콜(예: Aave)에서 일부 유동성을 가져와야 하는지 확인합니다. 그런 다음 요청된 자금과 원래 수신된 메시지의 메시지 ID를 포함하는 CCIP 프로그래밍 가능한 토큰 전송을 시작합니다(자금을 요청하는 블록체인의 대상 계약이 자금이 어떤 요청인지 알 수 있도록).

마지막으로, 부채 위치를 보충하기 위해 자금을 요청하는 블록체인의 스마트 계약은 CCIP 프로그래밍 가능한 토큰 전송을 수신하고 요청 ID를 원래 요청과 일치시키고 자금을 인출하고 부채 위치에 예치하여 대출의 담보를 늘리고 청산을 방지합니다.

이 예는 CCIP가 DeFi 프로토콜 및 DeFi 포지션 모니터링 애플리케이션에서 어떻게 사용되어 사용자에게 여러 블록체인의 부채 포지션에 대한 신뢰를 최소화한 청산 보호를 제공하는 동시에 자금과 유동성을 단일 블록체인에 유지할 수 있는지 보여줍니다.

전체 소스 코드 및 지침은 CCIP Liquidation Protector GitHub 리포지토리에서 찾을 수 있습니다.

교차 체인 도메인 이름 서비스

ENS와 같은 분산 이름 서비스는 사람이 읽을 수 있는 이름을 지갑 주소로 변환하는 데 도움이 되기 때문에 Web3에서 매우 인기가 있습니다. 이상적으로는 이름 서비스가 하나의 체인으로 제한되어서는 안 되며, 등록된 각 이름은 모든 이더리움 체인, 사이드체인, 두 번째 계층 및 애플리케이션 체인에 걸쳐 전파되고 공존해야 합니다. 이를 통해 사용자는 여러 이름 지정 서비스에 도메인을 등록하거나 신뢰가 최소화된 상호 운용성 솔루션을 사용하지 않고도 이더리움 생태계 전반에 걸쳐 통합된 ID를 가질 수 있습니다.

그러나 이를 위해서는 이름 서비스가 다른 블록체인과 통신해야 합니다. 각 체인의 이름 지정 서비스 인스턴스는 새 이름이 등록될 때 알림을 받아야 하며 모든 체인을 포괄하는 전역 이름 레지스트리의 "조회"를 수행하는 방법이 필요합니다.

이 예제는 사용자가 하나의 체인에 도메인 이름을 등록한 다음 다른 여러 체인에 해당 등록을 전파하고 이름을 체인의 주소로 확인할 수 있는 간소화된 교차 체인 도메인 이름 서비스 애플리케이션을 구축하는 방법을 보여줍니다.

첫 번째 단계는 Ethereum Sepolia 네트워크에 CrossChainNameServiceRegister 및 CrossChainNameServiceLookup 계약을 배포하는 것입니다. 이 네트워크는 모든 등록이 이루어지고 다른 체인으로 전파되는 "마스터" 네트워크 역할을 합니다.

새 .ccns 핸들을 등록하면 CrossChainNameServiceRegister 계약은 CCIP를 사용하여 등록된 .ccns 핸들에 대한 정보와 함께 지원되는 다른 블록체인에 메시지를 보냅니다.

지원되는 모든 수신 체인에서 CrossChainNameServiceReceiver 계약을 배포합니다. 이 계약은 CrossChainNameServiceRegister 계약에서 등록된 .ccns 도메인 이름을 받아 체인에 배포된 CrossChainNameServiceLookup 계약에 저장합니다.

마지막으로 CrossChainNameServiceLookup 계약은 등록 체인(이 경우 Sepolia) 및 모든 대상 체인을 포함한 모든 블록체인에 배포됩니다. 이 계약은 등록된 모든 .ccns 핸들을 저장하는 데 사용되며 이름을 주소로 변환하기 위한 조회를 수행하는 인터페이스 역할을 합니다.

이 단순한 디자인 패턴을 사용하여 사용자가 도메인 이름을 한 번 등록한 다음 여러 블록체인에서 소유하고 사용할 수 있는 간단한 교차 체인 도메인 이름 서비스를 만들 수 있습니다.

전체 소스 코드 및 지침은 교차 체인 이름 서비스 GitHub 리포지토리에서 찾을 수 있습니다.

크로스체인 NFT(크로스체인 NFT)

NFT는 Web3의 가장 인기 있는 사용 사례 중 하나입니다. 각 NFT 프로젝트는 일반적으로 단일 블록체인에 있거나 프로젝트 자체가 여러 체인에 배포되며 사용자가 여러 체인에서 NFT를 소유하려는 경우 여러 번 발행해야 합니다.

CCIP 임의 메시지를 통해 NFT 프로젝트는 자산을 단일 체인에서 한 번만 발행하고 발행인이 한 번 지불한 다음 다른 블록체인에 전파할 수 있습니다. 이는 사용자가 사용 중인 네트워크에 관계없이 NFT를 소유하고 공유할 수 있음을 의미합니다. CCIP는 또한 다른 체인에서 NFT를 "소각 및 주조"하는 데 사용할 수 있으므로 사용자가 한 체인에서 다른 체인으로 NFT를 전송할 수 있습니다. 다음은 첫 번째 시나리오의 예입니다.

다음은 간단한 NFT 스마트 계약의 예시입니다.

SourceMinter 계약은 소스 체인에 배포되며 MyNFT.sol 스마트 계약에서 ABI로 인코딩된 민트 기능 서명을 사용하여 대상 블록체인에 CCIP 크로스 체인 메시지를 보내는 민트 기능의 논리를 포함합니다.

DestinationMinter 계약은 ABI로 인코딩된 민트 기능 서명이 있는 CCIP 크로스 체인 메시지를 페이로드로 수신하고 서명을 사용하여 MyNFT 스마트 계약의 민트 기능을 호출합니다. 그런 다음 MyNFT 스마트 계약은 SourceMinter 스마트 계약의 mint() 함수를 통해 msg.sender 계정에 새 NFT를 발행합니다. 이는 소스 체인에서 NFT를 발행할 때 사용된 것과 동일한 계정 주소입니다.

최종 결과는 NFT를 생성하는 사용자가 이제 여러 체인에서 해당 NFT를 소유하고 한 번만 생성하고 지불하면 된다는 것입니다. NFT 프로젝트가 모든 블록체인에서 엄격한 대체 불가능성을 유지하려는 경우 이 솔루션을 쉽게 수정하여 대상 블록체인에서 NFT를 생성하고 소스 체인에서 파괴하여 모든 블록체인에서 하나의 버전만 있도록 할 수 있습니다.

전체 소스 코드 및 지침은 크로스체인 NFT GitHub 리포지토리에서 찾을 수 있습니다.

게임: 크로스체인 Tic Tac Toe

지난 몇 년 동안 Web3 게임은 매우 인기를 끌었습니다. 그러나 DeFi와 마찬가지로 게임도 매우 분산되어 있으며 게임과 해당 자산은 종종 특정 체인에서만 사용할 수 있습니다. 그러나 기존 게임과 마찬가지로 궁극적인 목표 또는 최적의 경험은 플레이하는 하드웨어나 소프트웨어에 관계없이 함께 플레이할 수 있는 게이머를 확보하는 것입니다. PC 게이머가 Xbox 콘솔 소유자와 플레이할 수 있는 것처럼 Polygon에서 플레이하는 사람이 Avalanche에서 플레이하는 사람과 플레이할 수 없는 이유가 없습니다. 이를 크로스 플랫폼 플레이 라고 합니다.

이는 빠른 실시간 상호 작용이 필요하지 않은 턴 기반 Web3 게임 및 기타 게임에 적합합니다. Web3 게임은 사용자 조각화로 인해 어려움을 겪고 있으며, 게이머는 자신이 선택한 체인에서 플레이하고 선호하는 디지털 자산을 사용하는 것을 선호합니다. CCIP는 Web3 게임을 진정한 크로스체인으로 만들고, 온체인 자산 전송을 용이하게 하며, 여러 블록체인에서 공유 게임 상태를 활성화하여 플레이어가 선택한 체인에 관계없이 서로 경쟁하거나 협력할 수 있도록 합니다. 최대한 많은 게이머를 유치하려면 게임을 여러 체인에 배포하고 모든 플레이어가 서로 경쟁하거나 협력할 수 있도록 설계하는 것이 가장 좋습니다.

Tic Tac Toe와 같은 턴 기반 전략 게임을 통해 이 교차 체인 게임 디자인 패턴을 간단하게 시연할 수 있습니다. 이 예 에서는 여러 블록체인에 배포된 게임 스마트 계약이 있습니다. 사용자는 자신이 선택한 체인에서 게임을 시작한 다음 게임 세션 ID를 친구와 공유할 수 있습니다. 그들의 친구는 원한다면 다른 체인에서 게임에 참여할 수 있습니다. 게임을 만들 때 CCIP는 게임의 세부 정보 및 초기 상태를 다른 모든 체인과 공유합니다.

첫 번째 플레이어가 게임을 시작한 후 단계를 수행하면 다른 블록체인의 두 번째 플레이어는 CCIP 메시지를 성공적으로 처리한 후 게임 스마트 계약에서 업데이트된 게임 상태를 볼 수 있습니다. 그런 다음 플레이어 2는 플레이어 1에게 CCIP 메시지를 다시 생성하고 체인에서 게임 상태를 업데이트하는 조치를 취합니다.

첫 번째 플레이어가 게임을 시작한 후 단계를 수행하면 다른 블록체인의 두 번째 플레이어는 CCIP 메시지를 성공적으로 처리한 후 게임 스마트 계약에서 업데이트된 게임 상태를 볼 수 있습니다. 그런 다음 플레이어 2는 플레이어 1에게 CCIP 메시지를 다시 생성하고 체인에서 게임 상태를 업데이트하는 조치를 취합니다.

플레이어 1은 업데이트된 게임 상태를 확인하고 다시 발걸음을 옮깁니다. 플레이어가 행동을 취하면 게임이 결론에 도달하고 승자가 선언될 때까지 교차 체인 CCIP 메시지가 체인 간에 앞뒤로 전달됩니다. 두 체인의 게임 스마트 계약은 게임 상태를 유지하고 CCIP를 사용하여 메시지를 보내고 받아 게임 상태가 두 블록체인에서 일관되게 유지되도록 합니다.

이 예제에 대한 전체 소스 코드 및 지침은 CCIP Tic Tac Toe GitHub 리포지토리에서 찾을 수 있습니다.

결론적으로

크로스 체인 DeFi 및 NFT에서 여러 블록체인에서 실행되는 게임에 이르기까지 CCIP는 크로스 체인 스마트 계약을 실현하고 모든 블록체인에서 진정한 DeFi 구성 가능성을 실현하며 보다 통합된 Web3을 실현할 수 있도록 합니다.

댓글

모든 댓글

Recommended for you