Omnite:다중 체인 NFT 토큰 솔루션
저자: Omnite 재단
편집: 0xMeta
이 문서는 사용자가 대체 불가능한 토큰을 제작, 판매 및 구매하는 방식을 근본적으로 변화시키기 위해 설계된 새로운 멀티 체인 솔루션을 소개하며, 현재 NFT 산업을 근본적으로 변화시킵니다. 이는 관련 혁신적인 크로스 체인 기술인 LayerZero와 Omnite 프로토콜 스마트 계약을 활용하여 실현됩니다.
오늘날의 NFT 토큰 제작자는 특정 블록체인 플랫폼을 선택해야 하며, 이는 잠재 구매자, 사용 가능한 시장 및 원주율 토큰 결제 수단을 제한합니다. Omnite는 중앙 집중식 관리인과 현재 느리고 비싼 중앙 집중식 토큰 브리징 메커니즘에 의존하지 않고 멀티 체인 NFT 토큰 수집을 도입하여 이러한 제한을 제거합니다.
이 문서는 제작자, 투자자 및 시장의 관점에서 단일 블록체인 채택의 모든 단점을 개요하고, 그들이 멀티 체인 솔루션에서 어떻게 이익을 얻을 수 있는지를 설명합니다. 보고서는 또한 플랫폼이 과도한 가스 비용과 NFT 거래 과정의 어려움을 어떻게 줄일 수 있는지, 그리고 완전한 탈중앙화 구현 절차의 경로를 허용하는 방법을 묘사합니다.
1: 소개
Omnite는 NFT 토큰이 중앙 집중식 관리인 없이 블록체인 간에 완전히 탈중앙화된 방식으로 이동할 수 있도록 허용하는 스마트 계약 기반 프로토콜입니다. 이는 블록체인 간의 경계를 허물고 혁신적인 신뢰 없는 전 체인 상호 운용 프로토콜인 LayerZero를 통해 NFT가 쉽게 크로스 체인으로 이동할 수 있도록 합니다.
LayerZero 프로토콜이 지원하는 모든 네트워크 플랫폼에서 실행되며, 첫 번째 단계는 ETH, POLYGON, AVAX, FANTOM, BSC와 같은 EVM 기반 블록체인 네트워크에 초점을 맞추고 있습니다. 다양한 생태계 기반 네트워크를 Cosmos, TerraLuna, Solana 등과 같은 미래 단계에서 구현하는 것을 목표로 하며, 이는 LayerZero의 개발 결과가 될 것입니다.
이 프로토콜은 Omnite 빠른 시작 버전을 사용하여 생성된 토큰(이하 "네이티브 토큰"이라 함)과 블록체인 네트워크 설립 이후의 erc721 표준에서 생성된 모든 다른 NFT 토큰을 지원합니다. Omnite 프로토콜은 NFT 토큰 전송에 영향을 미치는 플랫폼 또는 도구의 네 가지 주요 문제: 중앙 집중화, 복잡한 토큰 전송 과정, 과도한 거래 비용 및 긴 대기 시간을 해결합니다. Omnite는 네트워크 간 토큰 전송 과정이 완전히 스마트 계약에 기반하며, 사용자 관점에서 추가 단계가 필요하지 않지만 동일한 네트워크 내에서 NFT 토큰을 전송할 때는 그렇지 않습니다.
2: 프로토콜 설계
Omnite의 핵심은 NFT 전송 프로토콜로, 토큰 NFT가 크로스 체인으로 흐를 수 있도록 허용하며, 주어진 수집에서 모든 지원 네트워크에서 오직 하나의 토큰 인스턴스만 존재하도록 보장합니다. 이 프로토콜은 우리의 솔루션이 지원하는 모든 네트워크에 분산된 탈중앙화 스마트 계약 수집입니다. 그들의 기능과 지휘는 독립적입니다.
중앙 집중식 관리인은 혁신적인 통신 프로토콜인 Layer Zero로 대체되었으며, Layer Zero의 노드는 탈중앙화된 방식으로 네트워크 간에 암호화된 데이터를 전송하는 데 사용됩니다.
시스템은 멀티 체인을 사용하므로(미래에는 심지어 서로 다른 블록체인 유형도 포함됨) 단일 체인 애플리케이션에는 존재하지 않는 다양한 문제를 극복해야 합니다.
- 접근 제어 지원 다중 지갑 유형
가장 큰 도전 중 하나는 다른 체인에서 온 계약이 우리의 OmniteBridge를 호출할 수 있음을 증명하는 것입니다. Solana 또는 TerraLuna 체인의 스마트 계약 브리지는 서로 다른 처리 구조를 가지고 있으며, 이는 EVM 기반 체인에서는 올바르지 않거나 지원되지 않으므로, 서로 다른 유형의 처리를 위한 역할을 부여하는 맞춤형 솔루션을 구현해야 합니다.
(b) 멀티 체인에서 코드 동시 업그레이드(핫스왑)
그림 1: OMNITE 프로토콜을 사용한 NFT 토큰 멀티 체인 전송 흐름
모든 현대 EVM 애플리케이션은 새로운 기능이나 보안 수정을 위해 스마트 계약 코드를 업데이트할 수 있도록 Proxy 프록시 패턴을 사용합니다. OmniteHotSwaps는 안전한 멀티 체인 방식으로 동일한 계약의 여러 인스턴스를 한 번에 업그레이드하는 혁신적인 방법을 도입합니다. 스왑은 세 가지 구성 요소로 구성됩니다: Blueprints는 다양한 스마트 계약 구현(예: NFTs)을 나타내고, UpgradeableBeacon은 특정 계약 유형의 최신 가능한 구현(예: ERC721의 최신 구현)을 추적하며, BeaconProxy는 사용자에게 보이는 하나의 NFT 계약으로, 요청을 실제 구현에 위임하는 역할을 합니다. 우리는 프록시 패턴을 사용하는 방법으로 새로운 ERC721 NFT 수집을 배포하는 데 드는 가스 비용을 75% 이상 줄였으며, Omnite 사용자가 향후 팀 및 커뮤니티 구현의 새로운 기능을 쉽게 수신할 수 있도록 합니다.
(c) DDOS 및 브리지 블록 보호
체인에서 해결할 수 없는 문제는 서로 다른 블록체인 네트워크의 가스 추정입니다. 하나의 블록체인 네트워크는 다른 네트워크의 데이터에 접근할 수 없기 때문입니다. LayerZero는 처리 작업에 필요한 특정 양의 가스에 대해 비용을 지불해야 하므로, 프론트엔드 애플리케이션이 제공하는 가스 수량이 악의적이지 않거나(또는 계산 오류가 없으며) 목표 네트워크에서 거래를 올바르게 실행하는 데 충분하다는 것을 보장할 수 없습니다. Omnite는 브리징에서 수용할 수 있는 최소 가스 값을 설정하고, 오류가 발생할 경우 거래가 복구되지 않고 오류 이벤트를 생성하는 방법을 채택합니다. 이는 브리징의 LayerZero 콜백이 들어오는 단계에서 복잡한 저수준 요청을 사용하여 구현됩니다.
(d) ERC20 토큰
Omnite 토큰은 멀티 체인 토큰으로 설계되었습니다. 토큰 자체도 LayerZero 인프라를 사용하여 서로 다른 블록체인 간에 가치를 이전할 수 있으며, 탈중앙화된 멀티 체인 스테이킹 및 귀속을 구현할 수 있습니다.
3: 프로토콜 구성
Omnite Bridges는 멀티 체인 통신의 핵심입니다. 이들은 LayerZero 엔드포인트에 직접 접근할 수 있으며, Omnite와 LayerZero 간의 메시지 레이어로 작동합니다. 이들은 브리징 송신자와 브리징 수신자로 구성됩니다. 이러한 계약은 저수준 요청을 인코딩하고 디코딩하며, 서로 다른 네트워크에서 이러한 요청을 실행하고, 반대편에서 메시지를 수신하는 역할을 합니다. 이들은 설계상 신뢰할 수 없는 구조로, 어떤 송신자도 한 번의 거래로 여러 계약을 서로 다른 네트워크에 배포할 수 있습니다.
Contract Factory는 토큰 청사진을 보유한 계약입니다. 이는 새로운 계약 인스턴스(예: 서로 다른 ERC721 구현)를 배포하는 데 사용되며, 업그레이드 가능한 계약과 신호 프록시의 프록시 패턴을 사용합니다. 이는 청사진의 버전 관리 및 계약 유형의 배포를 지원하여 가스 비용을 절감할 수 있습니다: layer zero bridge는 계약을 브리징하기 위해 전체 바이트 코드를 전송할 필요가 없으며, 단지 청사진 이름과 생성자 매개변수를 통해 프록시 계약 저장소를 인스턴스화하는 데 필요한 것입니다.
Collection Registry는 모든 Omnite의 ERC721 네이티브 및 비네이티브 토큰 기록을 저장합니다. 서버 배포 또는 브리징된 각 ERC721은 이 등록 센터에 저장됩니다. 각 기록은 수집의 소유자, 주소 및 수집 이름을 저장합니다. CollectionRegistry는 들어오고 나가는 브리징 요청을 검증하는 데 필요한 데이터를 제공합니다.
Access Control List(ACL)는 어떤 계약이 다른 계약에 대한 접근 권한을 부여받는지, 그리고 주어진 계약에 대해 어떤 작업을 허용하는지를 지정합니다. 이는 OpenZeppelin의 AccessControl 라이브러리를 기반으로 하지만, 비EVM 네트워크의 처리 구조를 지원하기 위해 확장되었습니다.
System Context는 Omnite 시스템 내에서 스마트 계약을 추적하며, 계약이 콜백을 사용하여 처리 변화를 구독할 수 있도록 합니다. 예를 들어, 콜백을 사용하여 주소 변화를 기록합니다. 예를 들어, ContractFactory 레지스트리에 새로운 버전이 설정되면 시스템 배경이 모든 관련자에게 알립니다.
Native Tokens 네이티브 토큰은 Omnite 수집 생성자로부터 직접 배포된 계약입니다. 수집의 소유자는 플랫폼에서 쉽게 이를 제작한 후 연결할 수 있습니다. 특정 네트워크에서 각 토큰의 스마트 계약은 발행 범위를 가지며, 이는 특정 ID로 발행을 제한합니다. 네이티브 토큰은 업그레이드 가능한 계약으로 배포됩니다.
Non-native Tokens 비네이티브 토큰은 Invisible Friends, Bored Apes 등과 같이 Omnite 플랫폼 외부에 배포된 계약입니다. 이들은 ERC721 Metadata 인터페이스를 구현해야 합니다. 이러한 토큰을 네트워크 간에 브리징하려면 먼저 포장해야 합니다. Omnite를 통해 이를 제작하는 것은 불가능합니다.
4: 프로토콜 비용 및 이익
Omnite 프로젝트는 다중 플랫폼 특성으로 인해 많은 로컬 통화를 사용하는 결제 메커니즘을 갖추고 있습니다. 사용자가 서비스 요청을 하는 네트워크(수집 생성, 토큰 발행 또는 다른 네트워크로 토큰 전송)에 따라 결제는 원 네트워크의 통화로 이루어집니다. 수수료는 모든 지원 네트워크에 배포된 지갑 계약에 누적됩니다. 이러한 계약은 자금 축적의 금고 역할을 하며, Stargate 플랫폼을 통해 다른 토큰으로 교환할 수 있습니다. 수수료는 해당 프로젝트의 이익이자 Stargate 플랫폼을 통한 송금 및 교환의 비용입니다. 임계값이 초과되면 수수료는 OMNITE 토큰으로 교환됩니다. 이 작업은 어떤 실체에 의해서도 시작될 수 있습니다. 구매된 OMT는 주요 이익 계약인 OmniteStaking으로 들어갑니다. 이 계약은 OMT 토큰을 수집 토큰 및 보상 토큰으로 사용합니다. 계약에 있는 토큰을 차단함으로써 사용자는 보유한 토큰 수를 두 배로 늘릴 수 있습니다. 토큰은 계약에서 규정된 비율로 각 이익 참여자에게 선형으로 지급됩니다. 보상 발행률은 일정 기간 내 토큰 수의 백분율로 정의됩니다: 예를 들어, 매달 유동 자산 풀의 10%에 해당합니다.
5: 사례 연구: 비네이티브 NFT 브리징
이 섹션에서는 Omnite 플랫폼의 기본 기능을 구현하는 방법을 간략하게 설명합니다. 이 기능은 기존 수집을 브리징하고 사용자의 토큰을 목표 블록체인으로 전송합니다. 오늘날 대부분의 기존 수집은 ERC721Metadata 표준을 따르는 Openzeppelin의 라이브러리 및 계약 세트를 기반으로 합니다. 이 인터페이스는 이름, 기호 및 tokenURI와 같은 기본 필드 및 함수를 공개합니다. 이들은 Omnite 생태계 내에서 수집을 올바르게 관리하는 데 필요합니다. 사용자가 Omnite 플랫폼으로 가져오지 않은 특정 토큰을 보유하고 있을 때, 먼저 Omnite의 ERC721 포장기로 포장해야 하며, 이 포장기는 플랫폼에서 사용하는 인터페이스 형태의 브리지(ITokenBridgeable)를 따릅니다.
Omnite 플랫폼에서 모든 브리징 가능한 토큰은 이 인터페이스를 구현해야 하므로, 소스 계약을 포장하는 것이 매우 중요합니다. 이 단계는 멀티 체인 배포와 함께 수행됩니다. 이 단계는 다음을 포함합니다:
- 소스 네트워크에 포장기 배포
- 목표 네트워크에 Omnite의 ERC721 계약 배포
두 작업은 하나의 거래에서 수행됩니다. 요청자는 원본 계약 주소, LayerZero 생태계 내 특정 네트워크의 체인 ID 및 각 배포의 gasAmount(가스 양은 별도의 요청에서 계산됨)를 제공해야 합니다. 요청된 함수는 지불 가능하며, 목표 네트워크의 가스 비용은 사용자가 전송한 가치에서 차감됩니다. 나머지는 사용자에게 반환됩니다. 목표 네트워크에 계약을 배포하기 위해 Omnite의 브리지는 배포 작업 유형, 배포할 계약 유형 및 수집 ID를 포함하는 Data 구조체에 배포 메시지를 인코딩합니다. 수집 ID는 인코딩된 블록 타임스탬프와 요청자의 주소를 통해 생성됩니다. 다음으로, 메시지는 목표 블록체인上的 브리지 계약으로 전송됩니다. 메시지는 LayerZero 엔드포인트를 통해 전달되며, Omnite 브리지를 수신합니다. 브리징기는 데이터를 언팩하고 배포 요청을 ContractFactory로 전달합니다. ContractFactory는 배포 및 계약 버전에 필요한 모든 데이터를 저장합니다. Omnite는 신호 프록시를 활용합니다: 각 새로운 ERC721은 실제로 이 패턴을 따르는 계약의 집합입니다. 이들은 모두 하나의 청사진(신호를 통해)을 공유하며, 필요할 경우 업그레이드할 수 있습니다. UpgradableBeacon 및 생성자 매개변수가 있는 BeaconProxy(ERC721 필드가 있는 새로운 수집을 초기화하는 데 사용됨)가 배포된 후, 새로운 수집은 CollectionRegistry에 등록되며, 이 레지스트리는 Omnite 스마트 계약이 배포하거나 포장한 모든 수집을 저장하는 책임이 있습니다.
배포가 완료되면 이제 토큰을 브리징할 수 있습니다. 포장기가 사용자의 자산을 전송하기 위해 필요로 하는 승인 거래 후, 브리징이 시작됩니다. 이 거래는 다음을 포함합니다:
소스 네트워크에서 토큰 잠금 ------ 자산이 브리징되어 돌아올 때 해제될 수 있습니다. 이는 토큰을 파괴하는 것보다 훨씬 안전한 솔루션으로, 자산은 항상 잠금 해제 상태에 있습니다. 토큰은 그 스마트 계약에서 잠금 상태로 유지되며, 브리징할 때 해제될 수 있습니다.
목표 네트워크에서 토큰 생성을 위한 브리징 요청. move 요청은 CallData 작업 유형과 packedData 바이트로 패킹됩니다. 여기에는 발행 함수 선택기, 발행할 토큰 ID 및 이 ID의 토큰 URI가 포함됩니다. 또한 가스 수량 값과 메시지 값이 포함되며, 이는 배포 거래와 유사합니다. 목표 네트워크에서 메시지를 수신한 후, 브리지는 데이터를 언팩하고 목표 ERC721에서 발행 기능을 실행합니다. CollectionRegistry에서 토큰의 주소를 검색합니다. 전체 과정의 마지막에 소스 체인에는 잠금 해제된 토큰이 있고, 목표 네트워크에는 새로 생성된 토큰이 있습니다. 사용자가 자신의 토큰으로 돌아가기로 결정하면, 자산은 다시 잠금 상태가 되고 원래 자산이 해제됩니다. 이 과정은 영구적으로 수행될 수 있습니다. 특정 목표 네트워크가 잠금 상태의 자산을 보유하고 있다면, 새로운 것을 생성할 필요가 없습니다.
6: 시장 호환성
Omnite 스마트 계약은 선도적인 NFT 시장과 완전히 호환되도록 설계되었습니다. 메타데이터 표준을 준수함으로써, Omnite 플랫폼에서 생성된 각 수집은 메타데이터 URI와 소유권 관리가 있습니다. 토큰이 목표 네트워크로 브리징된 후에도 사용자는 NFT의 소유자로 남아 있으며, 이를 완전히 자유롭게 관리할 수 있습니다.
이는 Opensesa, Rarible 등에서 나열될 수 있습니다. 토큰이 판매된 후, 새로운 소유자는 Omnite 플랫폼을 통해 이를 다시 브리징할 수 있습니다.