블록체인 기술에서 말하는 완결성이란 & 완결성이 중요한 이유

1. 완결성이란?

과거의 거래장부내역을 다시 돌아가 볼 수 없도록 하는 것입니다. 블록체인의 특징 중 한 가지는 바로 돌이킬 수 없다는 것입니다. 이것은 비가역성이라 불립니다. 새로운 블록이 생성되되려면 검증과정을 거쳐 블록체인에 추가됩니다. 그리고 한 번 추가된 블록은 절대로 되돌아가 고쳐질 수 없습니다. 결국, 완결성이란 새로운 블록이 생성되고 체인에 추가됨으로써 그 전의 거래장부내역을 다시 돌아가 볼 수 없음을 말하는 것입니다. 하지만, 대부분의 블록체인들은 느린 TPS 속도 때문에 Finality(완결성)가 아닌 Probability(완결에 대한 가능성)를 제공합니다.

완결성을 설명하는 그림

2. 완결에 대한 가능성이란?

하나의 블록이 생성되어 체인에 연결되기 전까지 검증과정을 거쳐야하는데, 이 과정이 PoW에서는 10분이나 걸리게 됩니다. 그리고 비트코인과 같은 경우에는 너무나도 많은 노드들의 거래결제내역을 동시에 처리해야하므로 처리가 되지 못한 거래결제내역들이 많이 존재합니다. 이를 위하여 완결성이 아닌 완결에 대한 가능성을 제시하는 것입니다. 이 말은 대부분의 블록체인들이 100%의 완결성이 아닌 99%의 완결성을 제공한다는 것입니다. 바로 결제 즉시 거래내역이 체인에 붙는 것이 아니라 언젠가는 100%가 될 것이라는 약속을 해주는 것입니다.

이중지출 문제를 해결하기 위해 비트코인에서는 하나의 블록이 추가될 때 6번의 검증을 거칠때까지 기다리는 것이 일반적입니다. 이더리움에서는 25번의 검증을 거치게 됩니다. 그러므로 많은 양의 거래내역을 처리할 때 더 높은 검증 숫자를 가질 수록 이중지출 문제를 해결하기가 더 쉬워집니다. 하지만, 더 높은 검증 숫자를 가졌다는 것은 그만큼의 높은 보안을 갖췄다는 것이지만 이와는 반대로 거래를 결제 시 걸리는 시간은 오래 걸리게 됩니다.

밑의 표를 본다면 비트코인의 경우 PoW를 통해 블록이 채굴되는 평균시간은 10분입니다. 하지만 완결성까지 걸리는 시간은 6번의 검증을 거쳐 1시간이나 걸립니다. 이더리움도 같은 PoW이지만 블록이 채굴되는 평균시간은 15초이고, 완결성까지 걸리는 시간은 25번의 검증을 거치지만 6분밖에 걸리지 않습니다.

여러 블록체인들에서 걸리는 평균 완결성 시간

3. 완결성은 왜 중요할까?

암호화폐를 상용화하기 위해 가장 중요한 것은 거래를 결제할 때 걸리는 속도입니다. 그러므로 완결성은 상용화에도 중요한 역할을 합니다. 완결성은 어느정도의 시간을 기다려야 블록체인에 거래내역이 비가역적인 상태가 됩니다. 하지만, 아무도 1시간이나 기다려 블록이 추가될때까지 기다릴 사용자는 없을 것입니다. 그러므로 완결성은 보안의 문제뿐만 아니라 암호화폐를 실제 사용하기 위해서 그만큼 중요한 역할을 하게 됩니다.

4. PoW의 완결성

대부분의 PoW블록체인 시스템은 가장 긴 체인 알고리즘을 채택하는 특징을 가지고 있습니다. 그렇다면 왜 긴 체인 알고리즘을 채택하게 되었을까요? 채굴자들은 블록을 채굴할 때, 블록을 가장 긴 체인에 블록을 붙이려고 합니다. 그리고 이것은 체인이 한 개라도 있을 경우, 어떤 경우에라도 가장 길 체인에 연결할 수 있습니다.

만약 체인이 두 개의 포크로 갈라져진다면, 두 개의 채굴자들이 같은 거래장부내역을 가진 블록을 채굴하게 됩니다. 이때 가장 활발한 주요 체인은 두 개의 체인으로 나뉘어지고 어떤 것이 유효한 체인인지를 알기 힘들어집니다. 이러한 경우, 두 개의 포크 모두 계속해서 블록을 만들어 유효성을 검증했다고 했을 때. 체인 중에 하나가 블록을 검증하여 다른 체인보다 더 긴 체인을 만들었을 때, 가장 긴 체인이 가장 유효한 블록이 되어 추가됩니다.

가장 긴 체인은 공식적으로 인정받는 체인이 되고 좀 더 짧았던 체인 위에서 채굴되었던 거래내역들은 거부됩니다. 하지만, 짧은 체인이 항상 거부되었을 때, 항상 거래내역이 포함되지 않는 것이 아닙니다. 때로는 짧은 체인 위에서 거부되었던 거래내역들이 길었던 체인의 블록 속에 포함될 수도 있습니다.

PoW 완결성에 영향을 미치는 공격은 대표적으로:
1.이기적인 채굴
2. 51% 공격이 있습니다.

5. PoS의 완결성

PoS의 경우, 각기 다른 블록체인들마다 완결성에 도달하는데 모두 다른 방법을 사용합니다. 예를 들어, DPoS나 PoA 등등과 같은 경우들을 예로 들 수가 있습니다. 이더리움에 PoS를 도입한 프로젝트인 캐스퍼 FFG를 예로 들어보겠습니다. 여기서는 채굴자가 아닌 검증자라는 개념이 대신 도입됩니다.

검증자는 블록체인을 특정 구간에서 검증을 해야하는 의무를 가지고 있습니다. 캐스퍼 FFG는 대략적으로 특정구간마다 100개의 블록을 만들어야 합니다. 이 특정구간들에서는 검증자의 3분의 2가 특정한 블록을 검증을 마치면 완결성을 마칩니다. 한 번 완결되면, 특정 구간에서 블록을 바꾸는 일은 절대 불가능합니다. 이 특정구간들은 한 번 지나면 절대 바뀌지 못하는 것입니다.

PoS 완결성에 영향을 미치는 공격은 대표적으로
1. Nothing at Stake
2. 시빌 어택

6. 결론

빠르고 안전한 완결성을 가지기 위해 현재 많은 연구가 진행되고 있습니다. 많은 검증횟수를 거치면서도 완결성에 빨리 도달할 수록 TPS는 더 높은 값을 가질 수 있습니다. 완결성에 빨리 도달할 수록 높은 속도로 많은 거래결제내역을 처리할 수 있습니다.

https://medium.com/coinmonks/blockchain-finality-pow-and-pos-35915a37c682