Cross-chain 기술과 Axelar

2026. 8. 5. 22:23Blockchain/Base

728x90
반응형

이사와 출산, 육아로 퇴근 후 개인 시간이 별로 없었던 만큼 근 1년만에 블로그 글을 다시 작성한다. 이 글을 뒤로 또 언제 글을 작성할지는 모르겠지만 시간이 날 때 마다 하나씩 해보려고 한다. 1년 사이에 ChatGPT, Claude 같은 서비스들이 너무 잘되어 있어서 찾아오는 사람이 더욱 줄어들겠지만 스쳐 지나가는 한명이라도 이 글을 볼 수도 있으니..

이번 글은 블록체인 네트워크들을 서로 연결하여 자산과 데이터를 전송시켜 주는 크로스체인 개념과 그 서비스 중 하나인 Axelar에 대해 확인해본다.

Cross-chain

먼저 크로스체인이란, 서로 다른 블록체인 간 자산 및 데이터 교환 기술을 의미한다. Multi-chain, Inter-chain 등 다양한 언어로 불리지만 이 글에서는 Cross-chain을 사용한다.

크로스체인이 왜 필요한 것인가? 블록체인은 기본적으로 폐쇄적 네트워크이기 때문에 서로 다른 체인 간에는 데이터 송수신이 불가능하다. 크로스체인 기술은 블록체인 마다 합의 방식과 토큰 표준이 상이하고 한 체인에서 발생한 이벤트를 다른 체인이 직접 신뢰가 불가하여(블록체인 오라클 문제), 각 체인이 믿을 수 있도록 기술적으로 구현하는 결과물이다. 크로스체인을 통해 블록체인 참여자는 체인 간 이동 비용 및 불편이 감소하고 외부 체인의 유동성을 활용 가능하다.

Cross-chain 서비스들

크로스체인의 서비스 및 프레임워크를 간단히 소개하겠다. 나열한 서비스 및 프레임워크 말고도 굉장히 많은 서비스가 운영되고 있다.

  • CCTP(Cross-Chain Transfer Protocol)
    • USDC 발행사 Circle에서 개발한 체인 간 전송 기술, 중앙 연결고리인 Iris가 체인 간 메시지 전송을 담당
  • CCIP(Cross-Chain Interoperability Protocol)
    • 블록체인 오라클 서비스 기업 Chainlink가 운영하는 탈중앙 오라클 네트워크(DON)를 통한 메시지 데이터 전달
  • LayerZero
    • ULN/탈중앙 네트워크 DVN/Executor를 통한 메시지 처리/검증/전달 기술
  • Wormhole
    • Guardian 노드 기반의 브릿지 서비스, Guardian들의 합의를 통한 메시지 전달
  • Axelar
    • Cosmos-SDK 기반으로 구현된 EVM/Non EVM 체인 지원 브릿지 서비스
  • Hyperledger Cacti
  • IBC(Inter-Blockchain Communication)

Cross-chain 구현 방식

Atomic swap

크로스체인 구현 방식의 가장 기본은 Atomic swap 방식이다. HTLC(Hashed Time Lock Contract)를 사용하여 서로 다른 블록체인 간 자산 교환을 하는 기술이 대표적이다. HTLC는 두가지 보안 기능으로 구현된다.

  • Hash lock key: 자산 교환의 두 당사자는 HTLC에 자산 교환이 이루어질 것을 확인하는 해시 구성 암호화 증명을 제출
  • Time lock key: 제출되는 증명이 HTLC에 설정된 시간 내에 제출 필요. 미제출 시 원래 소유자에게 반환

HTLC의 동작과정을 간단히 살펴본다. 이 게시물에 HTLC의 동작과정에 대한 개념 설명이 잘 되어 있어서 이걸 참고로 Flow를 정리한다.

위 그림의 경우는 Alice가 Bob에게 1BTC를 주고, Bob이 Alice에게 100LTC를 주어 서로 자산을 교환하는 구조이다. 각 참여자들은 서로 오프체인 상에서 합의를 한 후 온체인에 HTLC를 통해 자산을 교환한다.

  1. Alice는 HTLC를 생성하여 Bitcoin에 배포한다. (주소 ABC)
  2. Alice는 자신만이 아는 secret 값을 생성한다.
  3. Alice는 secret에 해시 함수를 적용하여 LOCK 데이터를 생성하고 HTLC에 기입한다.(LOCK=#(secret))
  4. Alice는 ABC 주소의 HTLC에 Bob에게 전송하기로 한 1BTC를 전송하여 예치한다.
  5. Alice는 Bob에게 해시 결과값인 LOCK을 오프체인 상에서 전달한다.
  6. Bob도 HTLC를 생성하여 Litecoin에 배포한다. (주소 BDC)
  7. Bob은 전달받은 LOCK을 BDC 주소의 HTLC에 기입한다.
  8. Bob은 BDC 주소의 HTLC에 Alice에게 전송하기로 한 100LTC를 전송하여 예치한다.
  9. Alice는 secret 값을 Litecoin HTLC에 전달해 Bob이 설정한 hashlock을 해제한다. 100LTC는 Alice에게로 전송된다.
  10. Bob은 Litecoin에 기록된 secret 값을 알게되고, Bitcoin HTLC에 전달해 Alice가 설정한 hashlock을 해제한다. 1BTC는 Bob에게 전송된다.

두 HTLC 모두 timelock으로 설정된 기간 안에 hashlock을 해제하지 못하면 예치된 금액은 본 소유자에게 돌아간다. Secret의 경우 Litecoin에 제출된 이후 모든 사람이 볼 수 있지만 해커나 다른 사람이 secret을 가로채고 Bitcoin에 제출한다 하더라도 컨트랙트 상에 기록된 당사자(to Bob)에게 예치한 1BTC가 전송되게 되므로 Bob이 수령하는 것에는 문제가 없다.

HTLC를 통한 방식은 오프체인 상에서 당사자간의 계약이 사전에 필요한 점, 당사자가 직접 컨트랙트를 만들고 다뤄야 한다는 점, 시간 내에 제출하지 못하면 불이익을 받는 점 등 보안적으로는 안전하지만 실제로 사용하기에 불편한 부분이 많다. 이런 불편한 점들을 온체인 상에서 프로토콜로 다룸으로써 해소할 수 있는 프로토콜이 2-way peg 방식이다.

2-way peg

2-way peg는 양쪽 체인 간에 자산을 전송하기 위해 한쪽 체인에서 자산 유통을 묶어두고 다른쪽 체인에서 동일한 가치 만큼의 자산을 새로 생성하여 자산을 넘기는 방식으로 크로스체인을 구현한다.

2-way peg는 Bitcoin 내의 SPV proof를 이용해 서로 다른 블록체인 간의 자산을 교환하는 방식이 사용되었다. 자세한 동작 방식은 이전 글인 2-way peg 컨셉에 관한 글을 참고하면 좋을 것이다. 결론만 말하자면 SPV 2-way peg의 경우 구현 난이도가 매우 높고 자산을 전송하기 위한 비용도 높은 단점이 존재한다. 블록체인 코어 상에서 이러한 프로토콜들을 모두 구현해야 하기 때문이다.

2-way peg by Relayer

이러한 단점을 해결하기 위해 등장한 것이 Relayer를 사용한 2 way-peg 방식(이하 Relayer 방식)이다. 블록체인 코어에서 메시지를 다루는 것이 아니라 자산을 보내는 source 체인, 자산을 받는 destination 체인 사이에 자산 전송을 위한 메시지 송수신을 relayer가 담당하는 것이다. 현재 대부분의 크로스체인 서비스들이 이 방식을 채용하고 있다.

Relayer 방식을 구현하기 위한 대표적인 프로토콜은 Lock & Mint와 Burn & Mint가 존재한다. Source 체인의 컨트랙트에서 전송 자산을 잠그거나(Lock) 소각하여(Burn) source 체인에서 유통될 수 없도록 하고, 묶인 자산과 동일한 가치를 가지는 자산을 destination 체인에 발행(Mint)하는 방식이다. 상환시에는 destination 체인에 새로 발행된 자산을 소각 후 잠긴 토큰을 해제(Unlock)하거나 재발행하는 방식이다.

그림에서 보이는 것처럼 일반적으로 source 체인에서 origin으로 발행된 자산이 다른 블록체인으로 넘어갔을 시 wrapped로(ETH - wETH) 표현하기 때문에 특정 체인에서 저런 방식을 사용하면 크로스체인을 통해 자산이 넘어온 것이라 이해하면 된다. 또한 axlUSDT(Axelar), whETH(Wormhole), stgUSDC(Stargate=LayerZero) 처럼 특정 브릿지 서비스의 명칭이 붙는 자산도 있어서 이러한 것들은 해당 브릿지를 통해 넘어온 자산이라 이해하면 된다.

이러한 relayer 방식은 SPV 방식에 비해 구현 난이도가 많이 낮기 떄문에 앞서 언급한 것처럼 대부분의 서비스 및 프로토콜이 이 방식을 채용하고 있다.

CCTP는 중앙 relayer인 IRIS가 메시지를 검증/전달 하며, CCIP는 DON을 통한 decentralized relayer 방식을 사용한다.

IBC도 IBC relayer가 Cosmos 기반 블록체인들을 연결한다. IBC relayer가 양측 체인 간 메시지를 검증하고 전달하는 기능을 모두 가지고 있다면 LayerZero는 DVNs가 메시지를 검증하고 Executor가 메시지를 전달함으로써 relayer의 기능을 분리한다.

Axelar

Axelar는 크로스체인 서비스를 운영하는 대표적인 브릿지이다. 그런데 왜 하필 많은 브릿지 서비스들 중에 Axelar를 언급하냐면, 필자가 Cosmos 블록체인에 관심이 많아서이다. Axelar는 Cosmos-SDK 기반으로 만들어진 탈중앙화 브릿지서비스이다. 브릿징만 하는게 아니라 자체 토큰도 발행하고 있다. EVM 계열 체인과 Cosmos 계열 체인들을 지원한다.

Axelar 노드 구조

Cosmos-SDK 기반 체인들이 경우 처럼 Axelar도 validator가 존재한다. 이 validator들은 여러 프로세스를 함께 운영해야 하는데 axelard(axelar daemon), vald(validator daemon), tofnd(threshold cryptography daemon)의 axelar 자체 데몬들과 외부 체인 RPC 노드들이 그것이다.

  • axelard
    • Tendermint(CometBFT) 합의에 참여하여 블록을 생성
    • 일반적인 Cosmos-SDK 기반 블록체인의 app-chain 데몬
  • vald
    • Axelar 네트워크의 이벤트 수신 및 EVM 체인의 이벤트를 검증
    • 외부 체인의 EVM RPC 노드에 연결되어 deposit 확인, 메시지 전송 요청 등의 이벤트 조회
    • 자산 전송 요청에 대한 투표 진
  • tofnd
    • gRPC 서버 내 ECDSA multi-sig, GG20 threshold-ECDSA(t-of-n) 등의 다중서명 프로토콜 구현
    • Private key handling
  • 외부 체인 RPC 노드
    • Axelar가 지원하는 EVM 및 외부 체인의 노드 직접 운영 필요

Axelar 자산 전송 flow

사용자가 Axelar를 통해 체인 간 자산 전송 요청 시 어떻게 진행되는지 확인한다. Axelar에서 예전부터 사용해오던 deposit address 모델을 예로 든다. 이 모델은 예전 Axelar의 브릿징 인터페이스인 https://satellite.money에서 직접 deposit address가 확인되고 주소에 자금을 옮겨야 하는 로직을 사용자가 수행했었다. 이 화면을 글에 함께 보여주려 했는데 아쉽게도 satellite 서비스가 Axelar Bridge Interface로 변경되었다.

위 그림은 Ethereum에서 polygon으로 자산을 전송할 때의 flow이다.(Claude는 날이 갈수록 좋아지는것 같다.)

  1. Axelar 브릿징 사이트 내에서 source 체인에 일회용 deposit address를 요청한다. destination 체인과 receiver의 주소를 지정하면 Axelar 네트워크가 연결된 예치 주소를 생성하게 되고, 요청자는 해당 예치 주소로 자산을 보내면 deposit 컨트랙트에서 gateway 컨트랙트에 lock을 수행 한다.
  2. Axelar의 validator들이 네트워크 상에서 해당 요청에 대한 검증(예치 주소에 입금이 잘 되었는지 등)을 확인하고 vald에서 투표를 수행한다. 투표가 threshold를 넘게되면 해당 입금은 Axelar 네트워크 상에서 확정된것을 간주된다.
  3. axelar 코어가 destination 체인의 gateway 실행 배치(어떤 주소에 얼마만큼 자산을 mint하는지)를 만들고 tofnd를 통해 멀티파티 암호화 서명을 수행한다. 임계값 이상일 시 트랜잭션이 수행된다.
  4. Relayer가 서명된 실행 배치를 destination gateway 컨트랙트에 제출하고 gateway 컨트랙트는 검증 후 wrapped된 자산을 receiver의 주소에 mint한다.

Flow 상에서 source 체인인 Ethereum에서 사용자가 destination 체인의 실행 가스를 선불하는 구조이고(Gas service) relayer는 선불 받은 예산을 통해 ConfirmDeposit 제출과 execute 제출을 수행한다. 이 relayer의 경우에는 Axelar-core의 온체인에 포함되어 있지 않은 오프체인 인프라이며, Axelar가 직접 운영한다. Permissionless relayer 구조라 아무나 relayer를 운영해서 트랜잭션들을 처리할 수 있지만 Axelar는 성능 및 수수료 낭비 방지를 위해 자신들이 제공하는 Axelar relayer를 사용하라고 권장한다.

Axelar는 peer-to-peer 방식으로 각각의 체인을 서로 직접 연결하는 mesh 형태의 구조를 가지고 있었다. 그러나 25년 1월에 ITS Hub라는 기술을 도입하여 mesh 형태가 아닌 체인 간 연결을 중앙 hub를 거쳐 수행하도록 만들었다. ITS Hub를 통해 보안을 강화하고 확장성을 증가 시켰다. ITS Hub는 Axelar 체인 위에서 동작하는 CosmWasm 컨트랙트로 개발되어 해당 컨트랙트가 내부적으로 자산 잔액 장부를 저장하고 전송을 컨트롤한다.

자산 전송 어플리케이션 실행

Axelar 제공 어플리케이션에 접속하면 체인 간 자산 전송을 수행할 수 있다. 테스트를 위해 Ethereum-Solana 간 자산 전송을 수행하였으며, Sepolia에서 Dev net으로 ETH->wETH를 진행한 화면이다.

메타마스크를 연결하여 내주소에서 내주소로 전송한다. 주소 및 전송 수량을 입력하면 아래 Bridge 버튼이 활성화된다.

메타마스크를 사용했기 때문에 내 지갑에서의 트랜잭션 전송 요청 승인을 기다리게 된다.

승인 후 어플리케이션에서 브릿징을 위한 초기화를 수행한다.

단계별로 현재 상태를 알려준다. Sepolia의 경우 PoS이기 때문에 non-deterministic finality를 가지고 있어서 블록이 확정 상태에 들어갈 때 까지 대기한다.

최종적으로 자산이 전송된 결과를 확인할 수 있다.

Axelar scan에서 세부 과정을 확인 할 수 있다.

  1. (Spolia Sent~Gas Paid) 내 주소(0xbB98...)에서 Sepolia에 있는 Gateway로 ETH가 전송되며, Gas service로 브릿징을 수행할 Gas를 미리 선불한다. 이 때 0x122ad... 의 트랜잭션 하나에 포함된 것을 확인할 수 있다. 하지만 Axelar scan에서의 GMP view와 Sepolia tx 기록은 차이를 보인다. wrapping/lock/gas결제는 sepolia 내부의 구현 디테일이며 GMP view에서는 메시지 흐름만을 보여주기 때문에 세부 내용은 의도적으로 생략되었기 때문이다. Claude를 통해 sepolia scan에서 확인되는 각 주소들의 의미는 아래와 같다.
주소 의미
0xbB986FF0…04e4 본인 EOA. tx signer이자 tx.origin
0xe4f05a0D…8db6 tx의 to. Axelar 공식 배포 레지스트리에 없는 주소 → Axelar core 컨트랙트가 아닙니다. 사용한 dApp/router의 진입점이고, 역할은 msg.value를 자산분과 가스분으로 쪼개는 것
0x6EBe14b8…AadDF 0.001 ETH를 받아 곧바로 WETH 컨트랙트로 넘김 → deposit() 호출로 WETH를 받아 보관하는 주체. WETH tokenId의 ITS TokenManager(LOCK_UNLOCK)일 가능성이 높습니다
0x7b79995e…E7f9 Sepolia의 canonical WETH 컨트랙트. ETH → WETH 랩핑 지점
0xB5FB4BE0…9e3C ITS proxy. interchainTransfergasValue를 여기서 받음
0xbE406F01…4Cc6 AxelarGasService. payGas()로 수수료 최종 수취
  1. (Axelar confirmed) Gateway로 입금된 자산이 올바르게 판별된다면 Axelar 검증자들은 투표를 수행한다. 투표 번호 1605579이며 검증자들이 투표한 결과를 확인할 수 있다.
  2. (Axelar Executed) Axelar Relayer가 Axelar ITS Hub의 기능을 실행ITS Hub CosmWasm 실행 메시지하였다. Relayer가 ITS Hub를 직접 실행한 것이 아니라 AxelarnetGateway를 호출한 것이고 하나의 트랜잭션 안에 CosmWasm 컨트랙트 간 메시지 호출 시퀀스가 모두 이루어 졌다. 시퀀스는 아래와 같다.
# 컨트랙트 이벤트 의미
11 AxelarnetGateway wasm-message_executed hop 1 종결. source_address가 Sepolia ITS proxy 0xB5FB4BE0…9e3C, destination이 ITS Hub. payload_hash 857068c1… 검증 통과
12–13 ITS Hub wasm-message_received 서브메시지로 호출됨. SendToHub 껍데기를 벗겨 내부 interchain_transfer 확인, 목적지 solana 추출
14 ITS Hub wasm-interchain_transfer Hub의 회계 기록. token_id별 체인 간 잔고 원장을 갱신
15–17 AxelarnetGateway wasm-routing + wasm-contract_called hop 2 개시. Borsh로 재인코딩된 새 메시지 발행, 목적지 itsJo4kNJ3mdh3requwbtTTt7vyYTudp1pxhn2KiHMc
18–19 Router wasm-message_routed Amplifier Router가 solana 체인 게이트웨이로 라우팅
20–21 Gateway (solana) wasm-routing 메시지가 solana 게이트웨이 큐에 적재. 여기서 이 tx는 끝
  1. (Solana Executed) 최종적으로 Solana에 자산이 전송된다 결과. Relayer, TokenManager ATA/PDA를 거쳐... gateway PDA, ITS root PDA 까지 도달하여 최종 receiver 주소로 토큰이 mint되는 것을 확인할 수 있다. 총 18단계의 프로그램, account를 거치는데 필자가 solana에 대한 지식이 미흡하여.. solana를 제대로 공부해보고 난 뒤 이 기록을 다시 한번 확인해봐야겠다.

Conclusion

크로스체인은 디지털 자산을 유통할 수 있는 중요한 기술이다. 국내에서 스테이블코인에 대한 서비스 진행 준비가 활발히 되고 있는 지금, 원화 스테이블코인의 국제화와 달러 스테이블코인의 도입에 크로스체인 기술이 중요할 것이다. 디지털 자산 활용을 위해서는 유통이 선제되어야 해외송금/해외결제/DeFi/FX 등의 추가 서비스들이 가능해 질것이기 때문이다.
Axelar나 Wormhole, LayerZero 등은 다양한 블록체인 간의 상호운용성을 제공해주는 편리한 서비스이다. 하지만 이전 글에서 분석했던 것처럼 브릿징 서비스는 디지털 자산의 해킹 첫번째 타겟이 된다. 그만큼 보안적으로 중요하다는 뜻이다. 유수의 블록체인 개발자들이 고민하고 개발하여 더욱 안전한 서비스가 되고 있어서 크로스체인을 통한 서비스를 만들 시에는 국내 기업들도 1순위로 선택해야 한다.
그러나 디지털자산법이 어떻게 흘러갈지 모르지만 규제가 빡빡한 한국에서는 이러한 해외 서비스를 중점적으로 활용하는데 문제가 발생할 수도 있다. 외국환거래법 같은 기존 법 개정도 염두에 두어야 하고. 정책적으로 어떻게 될 지 모르니 크로스체인 기술을 내재화 하는것도 중요하다. 안전한 자체 크로스체인 서비스를 가지기 위해서는 어떤 프로토콜이 있는지 정확히 알아야 하며 상용 서비스의 동작 방식도 알아야 안전하고 진보된 자체 크로스체인 기술을 내재화 할 수 있을 것이다. 크로스체인에 관심이 많은 만큼 앞으로도 공부해 보려 한다.

참고
https://chain.link/education-hub/cross-chain-token-transfers
https://docs.axelar.dev/learn/
https://www.axelar.network/blog/an-introduction-to-the-axelar-network
https://eco.com/support/en/articles/11855161-what-does-axelar-do-complete-guide-to-cross-chain-interoperability

728x90
반응형