레이어 1(Layer 1) 및 레이어 2(Layer 2) 거래 최종성에 대해 알아야 할 모든 것
2023년 5월 18일, 이더리움 블록체인은 잠시 동안 거래의 최종화를 중단했습니다. 이는 무엇을 의미할까요?
**최종성(Finality)**이란 블록체인에서 거래가 완료되어 변경, 취소, 또는 되돌릴 수 없는 상태를 의미합니다.
이 글에서는 최종성과 합의 메커니즘 간의 관계, 체인 재구성(chain reorganization)의 개념, 레이어 2(Layer 2) 프로토콜에서 최종성을 측정하는 방법을 살펴봅니다.
마지막으로, 암호화폐 네트워크, 암호화폐 거래소, 크로스체인 거래 및 테스트 네트워크의 최종화 시간을 비교합니다.
목차
- 합의 메커니즘이란 무엇인가?
- 체인 재구성이란 무엇인가?
- 레이어 2와 최종성
- 암호화폐 거래소와 최종화 시간(Time To Finality, TTF)
- 크로스체인 브리지 거래의 최종성
- 테스트넷에서의 최종성
- 결론
1. 합의 메커니즘이란 무엇인가?
합의 메커니즘은 블록체인 네트워크에서 여러 참여자(또는 노드) 간에 일관성과 합의를 이루기 위해 사용됩니다.
이는 다음 두 가지 요소를 결합한 알고리즘을 의미합니다:
- 시빌 저항 메커니즘(Sybil Resistance Mechanism):
네트워크의 투표 권한을 장악하려는 공격자로부터 네트워크를 보호하는 방식. - 체인 선택 규칙(Chain Selection Rule):
여러 블록이 동일한 위치에 있을 때 올바른 블록을 선택하도록 하는 규칙.
알고리즘 최종성 재구성 빈도 포크 선택 규칙
나카모토(PoW) | 없음 | 빈번함 | 가장 긴 체인 |
GASPER(PoS) | 매 2 에포크(~12분) | 매우 드묾 | 마지막으로 최종화된 블록 이후 가장 강한 지지를 받은 체인 |
Tendermint | 단일 블록 (~1-10초) | 없음 | 최종화된 블록만 |
2. 체인 재구성이란 무엇인가?
체인 재구성(reorg)은 여러 채굴자나 검증자 노드가 동시에 동일한 난이도의 블록을 생성할 때 발생합니다.
이로 인해 네트워크 내에서 포크가 생성되며, 검증자 노드는 서로 다른 블록체인의 두 가지 버전을 추적하게 됩니다.
포크 상태에서는 새로운 블록을 추가할 때 채굴자와 검증자가 포크 선택 규칙(fork choice rule)에 따라 어떤 블록체인을 채택할지 결정해야 합니다.
일상적인 재구성
- 이더리움에서는 네트워크 지연이나 의도치 않은 블록 생성 경쟁 상태로 인해 1~2 블록 길이의 짧은 체인 재구성이 매일 발생합니다.
주요 사건 예시
- 비트코인 재구성 (2010년):
- 공격자가 값 오버플로우 취약점을 악용하여 186억 비트코인을 생성했습니다.
- 이 사건을 해결하기 위해 블록체인은 53개 블록을 되돌려야 했습니다.
- 이더리움 클래식(ETC) 재구성 (2020년):
- 약 12시간 동안 채굴자가 오프라인 상태로 3,500개 블록을 생성했습니다.
- 이후 해당 채굴자가 온라인으로 복귀하면서 네트워크는 3,500개 블록을 재구성해야 했습니다.
- 이 사건은 약 15시간 동안 지속되었으며, OpenEthereum 노드가 동기화되지 않아 네트워크 분할이 발생했습니다.
체인 재구성의 결과
- 사용자 경험의 악화
- 불확실성 증가
- 51% 공격에 대한 취약성 증가
3. 레이어 2와 최종성
레이어 2 프로토콜은 거래 속도를 개선하고 확장성을 해결하기 위해 레이어 1 블록체인 위에 구축된 솔루션입니다.
레이어 2에서 거래 최종성을 계산하려면 기본 레이어 1에서의 최종화 시간도 포함하여 고려해야 합니다.
레이어 2 사례
- Polygon (PoS Commit Chain):
- Polygon은 자체 PoS 합의 메커니즘을 사용하여 빠른 거래 확인을 제공합니다.
- 그러나 최종성은 이더리움보다 낮으며, 체인 재구성 및 블록 되돌림 가능성이 존재합니다.
- Polygon의 검증자는 주기적으로 이더리움 메인넷에 블록을 커밋합니다.
체인 | 중간 최종화 시간 | 풀 노드 수 (하한) |
이더리움 (현재) | 13-20분 (64-95 슬롯) | 5,471 (Ethernodes 기준) |
Zk Rollups | ~20분 증명 생성 + 13-20분 이더리움 L1 시간 | 중앙 집중화된 시퀀서, 탈중앙화 계획 |
Optimistic Rollups | 2-8분 배치 커밋 + 13-20분 이더리움 L1 시간 | 중앙 집중화된 증명자, 탈중앙화 계획 |
이더리움 (싱글 슬롯) | 12초 (작성 당시 라이브 아님) | 데이터 없음 |
Cosmos Hub + Canto | 6-7초 단일 블록 최종성 | 100-175 활성 세트 (총 537) |
Polkadot | 6초 (확률적)~12-60초 (결정적) 최종성 | 297 활성 세트, 총 939 |
Sui | 2-3초 (이론적) | 데이터 없음 |
Binance | 3초 | 59 |
Polygon | ~2초 (128 블록) | 128 |
Solana | 1-2초 중간값 (극단적으로는 60-90초) | 2,932 |
Fantom | 1-1.5초 (평균) | 64 |
Avalanche | 0.7-1초 (확률적)~2-2.2초 (결정적) | 1,182 |
Aptos | 0.9초 | 104 |
Sei | 0.5초 (이론적) | 데이터 없음 |
4. 암호화폐 거래소와 최종화 시간 (Time to Finality, TTF)
암호화폐 거래소는 입출금을 처리하기 전에 특정 수의 블록 확인을 기다립니다.
이는 각 블록체인의 체인 재구성 가능성과 관련된 위험 분석에 기반합니다.
거래소의 블록 확인 요구사항 비교
거래소 | 자산 | 최종성에 필요한 블록 수 |
Binance | 비트코인 (BTC) | 입금: 1, 출금: 2 |
이더리움 (ETH, ERC-20) | 12 | |
Coinbase | 비트코인 (BTC) | 2 |
이더리움 (ETH, ERC-20) | 14 | |
이더리움 클래식 (ETC) | 3,000 | |
라이트코인 (LTC) | 6 | |
bitFlyer | 비트코인 (BTC) | 3 |
이더리움 (ETH, ERC-20) | 50 | |
이더리움 클래식 (ETC) | 20,000 | |
비트코인 캐시 (BCH) | 30 | |
폴카닷 (DOT) | N/A | |
스텔라 (XLM) | 10 |
5. 크로스체인 브릿지 거래의 최종성
크로스체인 브릿지는 블록체인 간 자산이나 데이터를 전송하는 프로토콜입니다.
브리지에서의 최종성 보장은 원본 체인의 상태가 변경되지 않을 것임을 확인하는 것을 의미합니다.
주요 사례
- Polygon Bridge:
- 입금: 약 5분
- 출금: PoS 브리지에서 45분~3시간 소요
- Optimism Bridge:
- 입금: 약 20분
- 출금: 공식 브리지는 약 7일 소요
브릿지 | 자산 | 블록 확인 수 | 시간 |
Polygon Bridge | 이더리움 (ETH) | 64-95 슬롯 (possible blocks) | 입금: 5분, 출금: 45분~3시간 |
플라즈마 브리지: 7일 | |||
Optimism Bridge | 이더리움 (ETH) | 64-95 슬롯 (possible blocks) | 입금: 20분, 출금: ~7일 (공식) |
USDC Bridge | Algorand (USDC) | 1 | ~5초 |
Avalanche (USDC) | 1 | ~2초 | |
Bitcoin (BTC) | 4 | ~40분 | |
Ethereum (USDC, ETH) | 12 | ~3분 | |
Solana (USDC) | 1 | ~0.4초 | |
Stellar (USDC) | 1 | ~5초 |
6. 테스트넷에서의 최종성
테스트넷은 스마트 계약 및 프로토콜 업그레이드를 메인넷에 배포하기 전 실제와 유사한 환경에서 테스트하기 위해 사용됩니다.
현재 권장되는 테스트넷은 Sepolia이며, 블록 최종화는 약 12~24초마다 발생합니다. (2023.06 기준)
테스트넷 | 최종화 시간 (대략) | 설명 |
Sepolia | 12-24초 | 추천 테스트넷, 더 신뢰할 수 있는 환경 제공 |
Goerli | 12초 | 곧 사용 종료 예정 |
Arbitrum Goerli | 1-2초 | L2 테스트넷, 블록 최종화 빠름 |
Optimism Goerli | 2초 | Optimism 기반 테스트넷 |
결론
이 글에서는 합의 프로토콜에서 거래 최종성과 다른 설계 요소 간의 트레이드오프, 그리고 체인 재구성의 빈도를 다루었습니다.
다양한 레이어 1(L1) 및 레이어 2(L2) 네트워크, 암호화폐 거래소, 브리지, 테스트넷에서의 최종화 시간도 살펴보았습니다.
최종성(Finality)은 복잡한 개념이지만, 이더리움의 신중한 접근 방식 덕분에 5월 18일의 최종화 중단 사건은 심각한 결과를 초래하지 않았습니다.
이 사건 이후 연구자들은 여전히 최종화 문제를 유발한 원인을 확실히 밝혀내지 못하고 있습니다.
참고 :
'blockchain' 카테고리의 다른 글
[ERC20] Create an ERC-20 Token Using Solidity (0) | 2024.05.23 |
---|---|
[HD wallet] BIP32, BIP39, BIP44 (0) | 2024.05.08 |
[Metamask] 메타마스크에 네트워크 추가하기 (Avalanche) (0) | 2024.05.02 |
[BitcoinWallet] wallet에서 send Bitcoin 기능 구현하기 (0) | 2022.11.02 |
[BitcoinWallet] HD wallet 생성 (0) | 2022.10.27 |
댓글