온체인과 오프체인
비트코인으로 커피를 사면 거래가 확인될 때까지 기다려야 하고 수수료도 지불해야 합니다. 작은 결제까지 모두 전체장부에 기록하는 방식에는 한계가 있기 때문입니다. 이때 거래를 장부에 직접 기록하는 온체인과, 장부 바깥에서 먼저 처리하는 오프체인을 나누어 생각할 수 있습니다.
온체인과 오프체인의 차이
온체인은 거래를 비트코인의 전체장부에 직접 기록하는 방식입니다. 네트워크의 노드들이 거래를 확인하고 기록은 오래 보존됩니다. 대신 거래를 보낼 때마다 수수료가 들고, 블록에 포함되어 확인되기까지 기다려야 합니다.
오프체인은 거래 당사자나 서비스의 별도 장부에서 비트코인의 이동 또는 지급 약속을 처리하는 방식입니다. 모든 중간 거래를 즉시 비트코인 장부에 기록하지 않을 수 있습니다. 결제 채널처럼 약속된 상태를 온체인에서 집행할 수 있도록 설계된 구조도 있고, 거래소 내부 이체처럼 사업자가 관리하는 장부의 숫자만 바뀌는 구조도 있습니다. 따라서 오프체인이 항상 최종 결과를 나중에 온체인에 기록하거나, 이용자가 직접 온체인 집행을 할 수 있다고 일반화해서는 안 됩니다.
왜 오프체인이 필요한가
비트코인의 블록에는 담을 수 있는 데이터의 무게가 제한되어 있고, 거래의 구성에 따라 한 블록에 들어가는 거래 수가 달라집니다. 새 블록이 만들어지는 간격도 있기 때문에, 모든 사람이 모든 소액 결제를 장부에 기록하려 하면 저장과 통신 부담이 커집니다.
친구에게 소액을 보낸 사실을 전 세계의 모든 노드가 매번 확인해야 하는지도 생각해 볼 수 있습니다. 중요한 것은 최종적으로 얼마가 누구에게 귀속되는지일 수 있습니다. 결제 채널처럼 중간 과정을 별도의 방식으로 처리하고 최종 상태를 온체인에 기록하거나 집행할 수 있게 만들면 장부의 제한된 공간을 더 효율적으로 사용할 수 있습니다.
외상 장부로 이해하기
단골 술집에서 그날그날 계산하지 않고 외상 장부에 표시만 해 두었다가 한 달 뒤에 한 번 정산한다고 생각해 보겠습니다. 종이에 표시하는 일은 빠르고 별도의 수수료가 들지 않습니다. 여러 번 이용해도 마지막 정산 때 실제 돈을 계산하고, 장부에는 한 줄만 남길 수 있습니다.
결제 채널과 같은 오프체인 구조도 이와 비슷하게 여러 번의 교환을 장부 바깥에서 처리한 뒤 상태를 정산하거나 집행할 수 있습니다. 다만 단순한 말이나 외상과 달리, 해당 구조가 제공하는 서명과 비트코인의 규칙을 이용해 약속을 집행할 수 있어야 합니다. 모든 오프체인 거래가 이 조건을 제공하는 것은 아닙니다.
온체인의 장단점
온체인은 큰 금액을 최종 정산하거나 오래 보존해야 하는 기록에 어울립니다. 거래가 네트워크의 검증 절차를 거쳐 장부에 남기 때문에 결과를 되돌리기 어렵습니다.
반면 확인까지 시간이 걸릴 수 있고, 거래마다 수수료가 붙습니다. 블록의 데이터 무게 한도를 단순히 키우면 더 많은 거래를 담을 수 있지만, 각 노드의 저장과 통신 부담도 커집니다. 노드를 운영하기 어려워져 검증에 참여하는 사람이 줄면 네트워크의 분산성과 안전성에 영향을 줄 수 있습니다.
오프체인의 종류와 조건
거래소 내부 이체도 오프체인의 한 예입니다. 거래소가 관리하는 장부에서 이용자별 숫자만 바뀌고, 비트코인 거래가 매번 온체인에 기록되지는 않습니다. 이 경우에는 거래소가 장부와 자금을 제대로 관리한다고 믿어야 하며, 이용자가 직접 열쇠를 쥐고 있는 구조와는 다릅니다. 내부 이체가 나중에 각각 온체인 거래로 정산된다고 볼 수도 없습니다.
반대로 이용자가 자신의 열쇠를 유지하면서 오프체인을 사용하는 방식도 있습니다. 결제 채널에서는 당사자들이 서로 서명한 약속을 계속 갱신하고, 상대가 약속을 어기면 그 증거를 온체인에 제출해 규칙에 따라 판정받도록 설계할 수 있습니다. 라이트닝 네트워크가 이러한 방향의 대표적인 사례입니다. 자세한 구조는 라이트닝 네트워크에서 이어서 볼 수 있습니다.
두 방식을 나누어 사용하는 이유
온체인과 오프체인은 어느 하나만 선택해야 하는 관계가 아닙니다. 큰 금액이나 최종 정산처럼 오래 보존해야 하는 결과는 온체인에 맡기고, 자주 오가는 작은 결제는 결제 채널 같은 오프체인 구조에서 처리하는 식으로 역할을 나눌 수 있습니다. 거래소 내부 이체처럼 별도의 신뢰 가정이 필요한 방식은 그 위험을 따로 이해해야 합니다.
비트코인 네트워크를 단단한 아래층으로 두고, 그 위에 빠른 결제를 처리하는 층을 더하는 방식입니다. 장부의 공간이 제한되어 있고 모든 중간 과정을 전 세계에 기록할 필요는 없기 때문에, 기록해야 할 것과 별도로 처리할 것을 구분하는 것입니다.