[케블리] #4. BTC Relay - 사이드 체인의 시작!
Kblock 공식 리서치팀, 케블리
안녕하세요 케블리 입니다. 케블리는 '전세계의 블록체인 비즈니스를 함께 찾고 공부해 나눈다’는 KBlock의 목표에서 ‘나눈다’를 본격적으로 실천합니다.
#4. BTC Relay - 사이드 체인의 시작!
들어가는 말
블록체인은 목적에 맞도록 보수적으로 설계, 개발됐습니다. 비트코인은 안전한 거래증명을 위해서 프로그래밍 로직을 제한했습니다. 이더리움은 프로그래밍할 수 있도록 설계됐지만 이를 위해 수수료 체계를 만들어야 했습니다. 이러한 설계, 기술적 차이로 블록체인은 고립된 생태계로 발전했습니다. ‘사이드 체인’은 서로 다른 블록체인을 연결하는 기술입니다. 소비자-최종 사용자, 서비스 개발자 등-들은 더욱 다양한 서비스를 이용하거나 개발할 수 있습니다. 이번 글은 ConsenSys에서 개발한 이더리움의 사이드 체인, ‘BTC Relay’를 통해 사이드 체인의 개념을 소개하려고 합니다.
논의의 시작 : 2-Way Peg 통한 사이드체인
‘BTC Relay’의 기능을 이해하기 위해서는 비트코인의 확장성 문제를 해결하기 위해 논의된 2-Way Peg를 통한 사이드 체인 구현 방법을 먼저 이해할 필요가 있습니다. 이 방법은 2014년 블록스트림에서 발표한 Enabling Blockchain Innovations with Pegged Sidechains 백서에 소개되었습니다. 이는 비트코인 내에 에스크로 기능을 구현하자는 것으로 요약할 수 있습니다.
- 사용자는 비트코인을 특정 주소에 입금하여 동결합니다.
- 입금이 증명되면 다른 블록체인에서 이를 확인하고 해당 블록체인에서 사용할 수 있는 대체물(코인, 토큰 등)을 발급해 줍니다. 여기서는 토큰을 발행한다고 가정합니다.
- 이 토큰으로 사용자는 블록체인의 서비스를 이용합니다.
- 이용이 완료되면 토큰을 소각하거나 환급합니다.
- 소각, 환급이 증명되면 동결된 주소에서 비트코인을 돌려받습니다.
- 유료 서비스면 서비스 제공자는 토큰을 보여주고 동결된 비트코인을 받을 수 있습니다.
하지만 다른 블록체인에서 토큰이 발행되거나, 소각, 환급되는 것을 증명하기 위해 비트코인 내부에 관련 로직을 새롭게 추가해야 하는 문제가 있습니다. 서두에서 이야기했듯이 비트코인은 코어 개발에 대해서 굉장히 보수적입니다. ConsenSys는 비트코인은 그대로 두고 이더리움의 스마트 컨트랙트 기능을 활용하여 문제를 해결했습니다.
BTC Relay의 탄생
BTC Relay는 비트코인의 블록 헤더가 저장된 이더리움 컨트랙트의 집합입니다. 이렇게 저장된 블록헤더를 통해 BTC Relay에 작은 비트코인 체인을 구성할 수 있습니다. 이는 비트코인의 단순지급검증(SPV) 노드를 이더리움에 구현한 것으로 볼 수 있습니다. 단순지급검증이란 블록 헤더만으로도 거래를 검증 할 수 있는 기술입니다. BTC Relay에는 채굴자와 비슷한 역할을 하는 Relayer가 있습니다. 이들은 가장 먼저 비트코인의 블록 헤더를 BTC Relay에 전해 주고 이에 대한 보상으로 이더를 받습니다. 이로써 BTC Relay는 비트코인 거래내역을 지속해서 동기화할 수 있습니다.
- 판매자는 일정량의 이더를 스마트 컨트랙트에 예치합니다.
- 구매자는 판매자의 비트코인 주소로 비트코인을 보냅니다.
- Relayer는 주기적으로 비트코인 블록 헤더를 가져와 BTC Relay에 저장합니다.
- 입금된 내역이 BTC Relay에도 반영이 되면 이를 확인한 스마트 컨트랙트가 환전 비율에 따라 이더를 구매자 이더리움 주소로 전송합니다.
BTC Relay를 통해서 비트코인 사용자도 거래소에서 따로 이더리움으로 바꾸지 않아도 이더리움의 다양한 서비스를 이용할 수 있습니다. AKASHA 프로젝트는 이를 활용한 한가지 사례입니다. 이더리움 기반이지만 비트코인도 사용할 수 있도록 개발 중입니다. 그리고 더 나아가 ConsenSys에서는 이를 응용하여 탈중앙화된 거래소 개발을 계획하고 있습니다.
마치며
블록체인의 확장성 문제는 꾸준히 이야기되고 있습니다. 이를 위해 다양한 시도들이 지금도 이뤄지고 있습니다. 사이드 체인은 블록체인간 연결을 통해 이를 해결하고자 하는 한 가지 방법으로 떠오르고 있습니다. 그뿐만 아니라 블록체인 생태계의 다양성을 위해서도 필수적인 기술적 요소입니다. 블록체인과 함께 발전할 사이드체인! 앞으로 주의 깊게 지켜봐야겠습니다.
감사합니다.
참고자료
- BTC Relay : http://btcrelay.org/
- BTC Relay Documentation : https://media.readthedocs.org/pdf/btc-relay/latest/btc-relay.pdf
- ConsenSys Medium : https://medium.com/@ConsenSys/taking-stock-bitcoin-and-ethereum-4382f0a2f17
DEVCON1, BTC Relay - Joseph Chow :
글 잘 읽었습니다.
SPV 이기 때문에 풀노드 검증 수준을 할 수 없기 때문에 어렵나보네요..
블록 확정성, 블록 컨펌 시간 차이가 있어서 HTLC 도 적용이 어렵고 갈 길이 많아 보입니다.
좋은 글 감사합니다! 앞으로도 잘 부탁드립니다!
글 잘읽었어요~ 종화
궁금한게 하나 있습니다. 이런식의 사이드체인인 경우 아토믹스왑과 차이가 뭔가요?