오프체인의 신뢰성 저하를 보완 할 방법은 없을까요?
속도를 필요로 하는 서비스의 경우 TPS를 높이기 위해 중요 정보만 블록에 담고 나머진 댑의 서버에 담는 오프체인 방식을 선호한단 글을 보았습니다.
오프체인의 수수료가 저렴한건 덤이구요.
하지만 정보의 일부가 체인 밖 댑 서버에 보관되다 보니 신뢰성 저하 문제가 생긴다고 하는데요.
이 신뢰성 문제를 보완 할 방법은 없나요?
질문자께서 질문해주신 내용을 중심으로 답변을 드리도록 하겠습니다.
오프체인의 신뢰성 저하를 보완 할 방법은 없을까요?
거래 당사자가 비트코인 블록체인의 온체인 상에서 거래를 하는 것이 아니라 오프체인 상에서 거래 채널을 통해 거래를 하는 방식인 라이트닝 네트워크를 예로 들어 답변해 드리도록 하겠습니다.
우선 라이트닝 네트워크는 거래 당사자끼리 거래 채널을 개설 할 때와 마지막에 거래 채널을 닫고 거래 내역을 정산하여 온체인 상에 올릴 때에만 온체인 거래가 일어나게 됩니다. 따라서 질문자께서 말씀하신 것처럼 이러한 거래 내역이 신뢰할 수 있는지에 대해 우려하는 의견이 있기도 합니다.
하지만 라이트닝 네트워크를 이용한 거래는 오프체인 거래라고 하더라도 신뢰할 수 있도록 구성되어 있습니다.
일단 라이트닝 네트워크를 통해 거래를 하기 위해서는 거래 채널 상에 비트코인을 일정량 예치해야만 합니다. 이 예치된 비트코인으로 빠르고 수수료 없는 거래가 이루어지기 때문입니다.
거래 과정을 예를들어 설명드리자면, A와 B가 라이트닝 네트워크 채널을 개설하면서 A와 B 모두 서명해야 하는 멀티 시그 주소를 만들고 각각 1BTC씩 보관하고 있다는 것을 온체인 상에서 기록한 후 거래가 시작된다고 할 수 있습니다.
따라서 최종적으로 거래가 이루어진 후에 온체인 상에 거래 내역이 기록 될 때 한 사람이 2BTC를 초과하는 BTC를 갖고 있다는 위조된 거래를 기록할 수 없게 됩니다. 왜냐하면 채널을 개설할 때 이미 잔고가 기록되어 있기 때문입니다. 그래서 A가 1BTC를 B에게 모조리 전송한다고 하더라도 최대 2BTC만 가질 수 있을 뿐 최종적으로 한 사람이 3BTC를 가진다든가 할 수 없는 것입니다.
계속해서 라이트닝 네트워크의 오프체인 채널 상에서 A가 0.01 BTC를 B에게 30번 전송하고 B가 A에게 0.1 BTC를 5번 빠르게 전송한다면 각각의 전송이 이루어지기 위해서는 A와 B가 각각 자신의 멀티 시그 개인 키로 서명을 해야만 전송이 가능해 집니다.
즉, A와 B가 있을 때 A가 자신이 0.01BTC를 B에게 보내면서 멀티 시그 개인 키로 서명을 하게 되면 B가 그 비트코인을 수령하기 위해서는 자신의 멀티 시그 개인 키로 서명을 해야 하는 것입니다. 따라서 A가 B에게 보냈는데 B가 서명을 하지 않으면 전송이 되지 않습니다. 이렇게 되면 잔고의 변동은 없게 됩니다.
이어서 이런 식으로 여러 번의 거래가 빠르게 체결되더라도 전송 수수료는 따로 지불되지 않습니다. 그리고 이러한 전송이 이루어지는 동안에 결제 채널은 유지가 됩니다. 또한 오프체인에서 총 35번의 전송이 일어나게 되었다고 하면 A에게 남은 BTC는 0.7이고 B에게 남은 BTC는 0.5입니다. 이러한 잔고를 믿을 수가 있는 것은 A와 B 모두 각 거래에 있어서 서명을 했기 때문이고 애초에 2BTC의 예치금 안에서 거래가 이루어졌기 때문이라고 할 수 있습니다.
끝으로 라이트닝 네트워크 거래 채널을 닫는다고 한다면 최종 적인 잔고가 계산되어 비트코인 블록체인의 온체인 상에 기록이 되고 남은 BTC가 A와 B 각자에게 다시 돌아가게 되는 것입니다.
라이트닝 네트워크는 오프체인 상의 거래에 있어 이러한 과정을 거쳐 라이트닝 네트워크 상의 거래를 신뢰할 수 있도록 구성되어 있다고 할 수 있습니다.
답변이 도움이 되길 바랍니다.