안녕하세요. 설뱃입니다. 비트코인과 비트코인 캐시의 논쟁을 볼 때, 제로 컨펌에 대한 이야기가 많이 나오는데요. 이번에는 이 논쟁에 대해서 알아보겠습니다.
먼저 저는 비트코인의 옹호자도, 비트코인 캐시의 옹호자도 아님을 밝힙니다.
제로 컨펌(Zero Confirmation)이란 다음 블록까지 포함되기를 기다리지 않고 트랜젝션이 첫 블록에 속하기만 하면, 거래가 확정되는 것을 말합니다.
비트코인에서는 이 제로 컨펌을 인정하지 않고 있습니다. 현재 비트코인에서는 6번의 컨펌이 이루어져야 최종적으로 거래가 확정됩니다.
비트코인 캐시에서는 제로컨펌을 도입하여, 이 후 블록의 컨펌을 기다릴 필요없이 즉시 거래가 확정됩니다.
몇 년전까지만 해도 비트코인의 블록에 발생된 모든 트랜젝션을 집어넣어도 문제가 없었습니다. 하지만 점점 트랜젝션 량이 늘어감에 따라 비트코인의 블록 용량은 이를 전부 받아들이지 못했습니다.
따라서 위 그림대로, 트랜젝션 5까지만 블록에 수용하고 용량 문제로 수용하지 못한 트랜젝션 6, 7, 8 은 Mempool이라는 곳에 임시로 저장하여, 차후 블록에 포함될 수 있게 하였습니다.
또한 비트코인 측에서는 거래수수료를 도입하였기 때문에, 채굴자들은 거래수수료가 높은 트랜젝션을 우선적으로 블록에 포함시켰습니다. 따라서 거래수수료가 작은 트랜젝션들은 Mempool에서 일주일 넘게 갇히는 상황까지 오게 됩니다.
비트코인 측에서는 이러한 Mempool에 갇히는 상황을 개선시키기 위해서 RBF라는 수수료를 따로 도입하게 됩니다. 즉, 수수료를 좀 더 높게 재설정하는 방법이었고 이로 인해 우선적으로 다음 블록에 포함시킬 수 있었습니다.
하지만 RBF로 인해서 이중지불의 문제가 생겨납니다. 처음에 트랜젝션을 생성하고 바로 RBF로 트랜젝션을 재설정함으로 인해서, 이중지불이 발생하게 됩니다.
이를 방지하기 위해서 비트코인은 6번의 컨펌을 기다려야 트랜젝션이 확정됩니다. 이로 인해 이중지불은 방지할 수 있었지만, 6번의 컨펌을 기다려야했기에 트랜젝션들이 지연되는 문제가 발생합니다.
비트코인 캐시의 입장에서는, 애초에 블록의 크기가 커서 발생하는 트랜젝션을 모두 담을 수 있었다면, 이러한 RBF로 인한 이중지불 문제와 6번의 컨펌도 필요 없었을 것이므로 비트코인의 용량을 8MB로 증가시키는 하드포크를 진행하게 됩니다.
비트코인의 용량이 증가하였기 때문에, 비트코인 캐시는 6번의 컨펌 없이 제로 컨펌으로 트랜젝션을 처리하기 시작했습니다.
물론 제로 컨펌에서도 이중지불 문제가 발생할 수 있습니다. 일반적으로 수학적 문제를 풀었을 때 블록이 생성된다고 우리는 알고 있습니다.
이 때, 2명의 채굴자들이 동시에 문제를 풀었다면, 위 그림처럼 2개의 체인이 분기 됩니다. 여기서 선택되는 체인은 보라색의 더 길게 블록이 형성된 체인입니다.
만약 악의적으로 이러한 2개의 체인을 만들어 각기 다른 트랜젝션을 2개의 체인에 속하게 하고 자신이 원하는 체인을 더 길게 만들어, 이중지불을 할 수 있습니다.
이는 6번의 컨펌 없이 제로 컨펌으로 거래가 확정되기 때문입니다. 하지만 이러한 시도를 하기 위해서는 막대한 해시파워와 자금, 시간, 우연성이 필요하며 이중지불을 위한 기회비용으로서는 너무 클 수 있습니다.
따라서 막대한 자금을 보내는 트랜젝션들을 제외하고는 거의 일어날 수 없는 상황입니다. 물론 막대한 자금을 보내는 트랜젝션이라 하더라도 위와 같은 상황을 무조건 자신 마음대로 통제할 수 있다고 확신할 수 없기에 이러한 일이 일어날 확률은 극히 낮다는게 비트코인 캐시측의 의견입니다.
비트코인에서는 차후, 라이트닝 네트워크를 도입함에 따라 트랜젝션 지연을 크게 해소할 것이고 비트코인 캐시는 지속적인 블록 용량 확장과 제로 컨펌으로 거래지연을 해소할 것입니다.
끝.