LayzerZero 의 Omni token

Namhoon Kim
4 min readDec 27, 2023

LayerZero 의 OFT (Omni fungible token), ONFT (Omni non-fungible token) 는 LayerZero protocol 을 이용해 여러 network 간의 bridge 가 가능한 token 이다. 이름 그대로 layer 1 network 들의 밑에서 layer1 을 연결해 준다는 의미를 가지고 있으며, Startgate finance 의 경우 LayerZero 의 OFT 를 활용해 여러 network 에 token 을 bridging 하는 서비스를 제공하고 있다.

이런 멋진 protocol 이면에는 몇가지 제약사항이 있다. OFT, ONFT 는 EIP 와 다르게 산업 표준 기술이 아니어서 LayerZero 회사에 종속적이며, OFT 를 발행하려면 document 와 함께 예제 project 를 보고 개발해야 하는데 예제 수준의 토큰을 사용해 보기에는 충분 했지만 실제 비즈니스 로직이 담긴 OFT 를 발행하기에는 문서 내용이 부족했다. 최근 production-grade OFT 개발을 위해 document 와 전체 코드를 파악하는 작업을 진행했고 관련해서 정리된 내용을 적어 본다.

Omni token 을 가장 간단하게 설명하면, 각 network 마다 Omni token contract 가 존재하는 것이다. 이 Omni token contract 들이 각 네트워크에 배포 되어 있는 LayerZero Endpoint contract 와 상호작용하여 토큰을 전송하기도 하고 수신하기도 할 수 있는 것이다. 그림으로 나타내면 아래와 같다.

Omni token 개발자는 Omni token contract 만 발행하면 되고, LayerZero 측에서 Endpoint contract 와 bridging 을 담당한다. 위의 그림에서 알 수 있듯이 n 개의 network 를 연동하고 싶으면, n 개의 Omni token contract 를 발행해야 한다.

Omni token 에는 여러 종류가 있다. 가장 큰 갈래로 OFT, ONFT 가 있다. (참고로 이 글은 OFT 에 주로 초점을 맞춰 정리되어 있습니다. OFT 와 ONFT 는 큰틀에서 비슷합니다). OFT 의 version 에 따른 구분으로는 OFT (V1), OFT (V2) 가 있고 이 중 V1 은 EVM network 와만 연동이 되고, V2 는 non-EVM 과도 호환이 되는 토큰이다. V2 에는 shared decimal 이라는 개념을 도입함으로써 non-EVM 과도 호환이 가능하도록 개선되었다[1].

token 속성에 따른 분류로는 (기본) OFT, ProxyOFT, NativeOFT 가 있다. ProxyOFT 는 이미 발행된 Fungible Token (이하 FT) 을 wrapping 해서 Omni token 으로 만드는 contract 다. OFT 로 발행된 토큰을 다른 네트워크로 브릿지 할 경우 기존 네트워크에서 해당 토큰이 소각 (burn) 되고, 목적지 네트워크에서는 생성 (mint) 된다. ProxyOFT 를 활용해 기존에 발행된 FT 를 브릿지 할 경우 FT 는 ProxyOFT contract 으로 옮겨지고 (locked) 브릿지가 실행 되며, 목적지 네트워크에서는 토큰(OFT)이 생성된다. 주의점은 ProxyOFT 는 최초 발행된 네트워크에 발행하여야 하며, 연동하는 네트워크에는 OFT 를 발행해야 한다[2]. NativeOFT 는 이름 그대로 ETH, BNB 등의 native token 을 ProxyOFT 와 동일한 방법으로 wrapping 하는 contract 다.

References

[1] https://layerzero.gitbook.io/docs/evm-guides/layerzero-omnichain-contracts/oft/oft-v1-vs-oftv2-which-should-i-use#what-are-the-differences-between-the-two-versions

--

--