<개요>
클레이튼의 네트워크 구조를 살펴보고, 각 노드들의 역할을 파악한 뒤 가장 유명한 블록체인 플랫폼 중 하나인 이더리움과 비교해보고, 그 차이점을 분석해보겠습니다.
<클레이튼 네트워크 구성>
클레이튼은 기존의 public 블록체인들과는 다른 형태의 네트워크 구조를 가집니다. 이더리움과 비트코인 과는 달리, 모든 노드에게 동등한 기회와 능력이 부여되지 않습니다.
누구나 마이너가 될 수 있고, 누구나 네트워크에 트랜잭션을 전파하는 등 모든 노드가 동등한 권한을 가지는 이더리움, 비트코인 과는 달리 클레이튼은 그러한 행위를 할 수 있는 노드들이 제한됩니다. 클레이튼은 기존 public 블록체인의 문제점인 처리속도를 개선하고, Dapp의 활성화를 목표로 하였는데, 합의 과정에 참여하는 노드수를 제한함을 해결책으로 제시하였습니다.
위 그림은 클레이튼의 네트워크를 도식화 해놓은 것인데요, 이더리움과는 다르게, 모든 노드가 그에 맞는 권한, 역할을 가지고 있습니다.
CN 은 실질적으로 합의 프로토콜을 통해 블록을 생성하는 노드들입니다. 비트코인, 이더리움과는 다르게 소수의 CN들만이 이 합의과정에 참여할 수 있습니다. PoW나 PoS같은 알고리즘이 아닌, IBFT 알고리즘을 사용하며, 이를 통해 다른 플랫폼 보다 빠른 속도로 블록을 검증하고, 생성합니다. CN이 되기 위해선, 엄격한 심사가 필요합니다.
PN 은 CN들에 연결된 프록시 노드입니다. CN들은 인터넷을 통한 각종 공격을 막기위해서 CN들 자신들만의 private network로 연결되어 있습니다. CN들은 외부와 통신하기 위해 PN이라는 노드를 따로 두고, 외부의 노드들과 CN은 이 PN을 통해서만 정보를 주고 받을 수 있습니다. CN과 PN을 합쳐서 CoreCell(CC)라고도 합니다.
EN 은 실질적으로 PN과 통신하여 블록의 정보를 받아서 이용하는 노드들입니다. 모든 사용자는 EN이 될 수 있으며, PN과 통신하여 블록체인을 이용할 수 있습니다.
소수의 CN들만이 블록 생성에 가담하므로 기존의 블록체인 보다는 분산 이라는 성질은 약하지만, 모든 노드들이 경쟁을 통해 마이닝을 하는 기존의 블록체인보다 TPS 가 훨씬 빠르므로 Dapp이 활성화 될 수 있는 계기가 될 것입니다.
<합의 알고리즘-IBFT>
위 설명에서 CN들이 사용하는 합의 알고리즘이 이더리움, 비트코인과는 다르다고 설명했는데, 좀 더 자세히 알아보겠습니다.
CN들은 매 순간마다 그들중에서 한명의 Proposer를 뽑고, 나머지는 validator가 됩니다. 이 중 proposer가 트랜잭션들을 담고, 정렬해서 블록을 만들고, 이를 나머지에게 검증받아 최종적으로 블록이 완성되게 됩니다. 아래 그림을 통해 좀 더 자세히 설명해보겠습니다.
- 매 순간 마다 Proposer가 결정되면, Proposer가 트랜잭션들을 담아서 블록을 생성합니다.
- 블럭을 다른 노드들(validator)에게 전파합니다.
- 블럭을 받은 노드들은, 해당 블럭을 받았음을 확인하고, 확인 메세지를 나머지 노드들에게 전파합니다.
- 전파받은 블록을 검증합니다. 검증하면서 서로 메세지를 주고 받는데요, 이때 2/3이상이 합의한다면, 이 블록은 제대로된 블록으로 인정받아, 체인에 연결됩니다.
<이더리움과의 차이>
위에서 언급한 바와 같이, 기존의 블록체인과는 많은 차이들이 있는데, 가장 많이 사용되어 왔고, 동시에 스마트컨트랙트를 지원하는 플랫폼인 이더리움과 비교를 해보았습니다.
이더리움은 모든 노드가 마이닝이 가능하고, 정보를 열람할 수 있지만, 클레이튼은 그 부여된 권한에 따라 할 수 있는 일이 제한됩니다. 소수의 CN이 블록을 생성하는 클레이튼의 경우 분산화는 덜 하지만 합의과정이 매우 빠르다는 특징이 있으며, 모든 노드가 동등하게 합의과정에 참여하는 이더리움의 경우 PoW특성상 느리지만, 분산화가 매우 잘 된다는 특징이 있습니다.
분산화가 다른 블록체인에 비해서 적다라는 단점이 있긴 하지만, 데이터의 무결성과 투명성 은 다른 블록체인과 동등하게 보장하면서 동시에 빠른 TPS를 보장하므로, 빠른 TPS를 요하는 IoT나 스마트 팩토리, 또는 물류사업 등 위 성능을 요하는 어플리케이션에 맞게 사용한다면 다른 블록체인 플랫폼보다 월등한 성능을 낼 수 있을것같습니다.
<의문점>
이더리움의 경우 모든 노드가 마이닝을 할 수 있으므로, 특정 사람이 던진 트랜잭션이 의도적으로 거부될 확률이 적습니다. A가 마이너 B와 원수지간이라서 A가 보내는 트랜잭션은 블록에 담지 않는다고 해도(B가 A의 계정주소를 안다면…….) B 말고도 많은 마이너가 있기 때문에, A는 블록체인 플랫폼을 이용하는 데에는 문제가 없습니다. 하지만 클레이튼의 경우는 어떨까요? 현재 Klaytnscop 참조결과 23개의 CN들이 있습니다. (2019/9/14 기준) 생각보다 수가 적은데, 이정도 숫자면, 서로 합의하에 악의적인 행동을 할 확률이 매우 높다고 생각합니다. 예를 들어 저 23개의 노드들이 합의해서 특정 지역의 ip로부터(예를들면 북한)오는 트랜잭션은 블록에 담지말자! 라고 하면 어떨까요? 또는 특정 계정에서 오는 트랜잭션은 블록에 담지말자! 라고 합의하면 어떻게 될까요?
긴 글 읽어주셔서 감사합니다.