들어가며
블록체인 확장성 문제
그 결과 우리는 병목 현상을 경험하게 됩니다. 블록체인은 정기적으로 출발하는 하나의 열차 서비스라고 볼 수 있습니다. 각 객실의 자리는 한정되어 있으며, 좌석 티켓을 얻기 위해서 여행자는 입찰을 해야 합니다. 만약 모두가 동시에 기차를 타려고 한다면, 가격은 높아질 것입니다. 마찬가지로, 트랜잭션이 지연되어 막히는 네트워크에서는 자신의 트랜잭션이 제 시간에 포함되게 하기 위해서 사용자는 더 많은 수수료를 지불해야 합니다.
이더리움의 창시자 비탈릭 부테린은 블록체인이 맞닥뜨린 도전 과제를 설명하기 위해 확장성 트릴레마(Scalability Trilemma)라는 용어를 만들어 냈습니다. 그는 확장성, 보안, 탈중앙화 사이에는 언제나 대가가 필요하다는 이론을 제시했습니다. 여기에는 일종의 특이한 관계가 존재하는데, 두 속성에 지나치게 초점을 맞출 경우, 세 번째 속성이 취약해지게 됩니다.
오프체인 확장성 해결책이란 무엇인가요?
오프 체인 확장은 블록체인 크기를 증가시키지 않고, 트랜잭션이 체결되게 하는 방법을 의미합니다. 프로토콜들은 트랜잭션을 메인 체인에 올리지 않고도, 사용자가 자금을 전송하거나 수신할 수 있는 체인에 접속할 수 있게 합니다. 이제 우리는 해당 영역에서 가장 잘 알려진 접근법인 사이드체인과 지불 채널에 대해 자세히 알아볼 것입니다.
사이드체인 소개
사이드체인이란 무엇인가요?
사이드체인은 별개의 블록체인입니다. 그러나 독립적인 플랫폼은 아니며, 어떤 식으로든 메인 체인에 연결되어 있습니다. 메인 체인과 사이드체인은 상호 운영이 가능하며, 이는 두 체인 간에 자산이 자유롭게 이동될 수 있음을 뜻합니다.
사이드체인은 어떻게 작동하나요?
우리의 친구 앨리스가 다섯 개의 비트코인을 갖고 있다고 가정해 보겠습니다. 그녀는 비트코인 사이드 체인에서 이에 상응하는 자산-사이드코인(sidecoins)-과 비트코인을 교환하고자 합니다. 해당 사이드체인은 양방향 연결(two-way peg)을 사용하며, 사용자는 메인 체인에서 사이드체인으로, 혹은 그 반대로 자신의 자산을 전송할 수 있습니다.
앨리스는 자신의 코인을 사이드코인으로 변환했지만, 언제라도 자신의 비트코인을 되찾기 위해 해당 과정을 반대로 진행할 수 있습니다. 이제 앨리스는 사이드체인에 접속하게 되었으며, 해당 블록체인에서 자유롭게 거래할 수 있습니다. 앨리스는 메인 체인에서 하던 것과 마찬가지로, 다른 이들에게 사이드코인을 전송하거나 수신할 수 있습니다.
예를 들면, 앨리스는 밥의 바이낸스 후드티에 대해 하나의 사이드코인을 지불할 수 있습니다. 앨리스가 비트코인을 되찾고자 한다면, 나머지 사이드코인을 특정 주소로 전송할 수 있습니다. 트랜잭션이 확정된 후, 네 개의 비트코인의 동결이 해제되고 앨리스가 소유한 메인 체인의 주소로 전달될 것입니다.
왜 사이드체인을 이용하나요?
이쯤에서 궁금해하실지도 모르겠습니다. 앨리스는 왜 비트코인 블록체인을 사용하지 않을까요?
일상의 소규모 지불에 분명 높은 수준의 보안이 필요하지는 않을 것입니다. 커피를 사려는 앨리스는 트랜잭션이 승인될 때까지 기다리려 하지 않을 것입니다. 앨리스는 줄에서 기다려야 할 것이며, 트랜잭션이 승인될 때쯤 그녀의 음료는 차갑게 식어버릴 것입니다.
흥미로운 사실은 사이드체인에서 치명적인 버그가 발생해도 이는 기반이 되는 체인에 아무런 영향을 미치지 않는다는 것입니다. 이를 통해 사이드체인을 실험적인 플랫폼으로 사용할 수 있으며, 네트워크 다수의 합의가 있지 않으면 불가능한 기능들을 실행할 수 있습니다.
만약 사용자가 장단점을 기꺼이 감수한다면, 사이드체인은 확장성 문제에 총체적으로 접근하는 효과적인 과정일 수 있습니다. 메인 체인 노드는 사이드체인의 모든 트랜잭션을 저장하지 않아도 됩니다. 앨리스는 하나의 비트코인 트랜잭션을 통해 사이드체인에 접속할 수 있으며, 수 백 개의 사이드코인 트랜잭션을 수행한 뒤 이를 빠져나올 수 있습니다. 비트코인 블록체인은 단 두 번, 앨리스가 이에 들어가고 나올 때만 관여하게 됩니다.
지불 채널 소개
지불 채널이란 무엇인가요?
지불 채널은 확장성 영역에서 사이드체인과 동일한 목적을 수행하지만, 근본적으로 무척 다른 차이점이 존재합니다. 사이드체인처럼 지불 채널은 블록체인이 너무 비대해지지 않게 하기 위해 트랜잭션을 따로 떼어 놓습니다. 그러나 사이드체인과 달리 지불 채널은 별도로 작동하는 블록체인을 필요로 합니다.
지불 채널은 어떻게 작동하나요?
앨리스와 밥이 10 BTC를 각각 하나의 주소에 입금했고, 해당 주소에는 이제 20 BTC가 있다고 해보겠습니다. 앨리스와 밥이 각각 10 BTC를 보유하고 있다고 적힌 잔고 증명서를 갖고 있다면 좋을 것입니다. 앨리스가 밥에게 하나의 코인을 주고자 한다면, 이들은 앨리스는 9 BTC, 밥은 11 BTC를 갖고 있다고 잔고를 업데이트할 수 있을 것입니다. 앨리스와 밥은 해당 잔고를 업데이트할 때마다 이를 블록체인에 전송하지 않아도 됩니다.
시간이 지나고 앨리스가 5 BTC 밥이 15 BTC를 갖고 있다고 해 보겠습니다. 그들은 이제 해당 잔고 증명서를 자신들의 주소로 전송하는 트랜잭션을 생성하고, 서명하고, 전송할 수 있습니다.
앨리스와 밥의 잔고 증명서에는 열 개, 백 개, 또는 천 개의 트랜잭션이 기록되었을 수 있습니다. 하지만 단 두 번의 온체인 활동만 블록체인과 관련되는데, 한 번은 첫 입금 트랜잭션이고, 다른 한 번은 마지막에 잔고를 재분배할 때 입니다. 이 두 번 외의 다른 모든 트랜잭션은 오프체인에서 발생하기 때문에 수수료가 없으며, 거의 즉각적으로 체결됩니다. 마이너 수수료를 지불하지 않아도 되며, 블록 승인을 기다리지 않아도 됩니다.
지불 라우팅
지불 채널은 다수의 트랜잭션을 필요로 하는 두 당사자에게 분명 편리한 것입니다. 그러나 또 다른 장점도 있습니다. 해당 채널 네트워크를 통해 앨리스는 직접적으로 연결되지 않은 주체에게도 자금을 지불 할 수 있습니다. 만약 밥이 캐롤에게 채널을 개설하고, 앨리스가 충분한 금액을 갖고 있다면 캐롤에게 자금을 지불할 수 있습니다. 앨리스는 밥의 사이드체인에 자금을 전송하게 되고, 다음으로 밥은 이를 캐롤에게 전송하게 됩니다. 캐롤이 다른 참여자 댄과 연결되어 있다면, 동일한 식으로 자금을 전송할 수 있습니다.
해당 네트워크는 모든 이들이 다수의 구성원들과 연결되어 있는 분산화된 망으로 발전합니다. 목적지에 이르는 다양한 길이 있기 마련이며, 사용자는 가장 효율적인 것을 택할 것입니다.
마치며
우리는 기반 블록체인에 부담을 주지 않고 트랜잭션을 가능하게 하는 두 가지 확장성 해결책에 대해 논의했습니다. 사이드체인과 지불 채널 기술은 아직 완성되지는 않았지만, 기반 레이어 트랜잭션의 단점을 우회하고자 하는 이들에 의해 점점 더 많이 사용되고 있습니다.
시간이 지나며 더 많은 사용자들이 네트워크에 참여하게 됨에 따라, 탈중앙화를 유지하는 것이 중요합니다. 이를 위해서는 블록체인 크기가 커지는 것을 제한하여 새로운 노드가 쉽게 참여할 수 있게 해야만 합니다. 오프체인 확장성 해결책을 지지하는 이들은 머잖아 메인 체인은 금액이 큰 트랜잭션에만 사용되거나 사이드체인을 연결하거나 해제할 때, 지불 채널을 열고 닫을 때만 사용될 것이라 믿고 있습니다.