악의적인 의도를 가진 노드를 검증하기 위한 방법은?
블록체인은 크게 프라이빗 블록체인과 퍼블릭 블록체인으로 나뉘어지는 걸로 알고 있습니다.
허가된 사용자만 참여가 가능한 프라이빗 블록체인에 반해,
퍼블릭 블록체인은 누구나 자유롭게 참여가 가능한 걸로 알고 있습니다.
퍼블릭 블록체인에서 만약 악의적인 의도를 가진 참여자가 있다면,
이를 어떤식으로 검증하고 해결할 수 있나요?
일단 질문자께서 질문해주신 내용과 관련하여 블록체인 상에서 악의적인 노드가 무엇인지 알아볼 필요가 있다고 생각합니다.
원래부터 악의적인 목적으로 블록체인 네트워크에 참여한 것은 아닐지라도 블록체인 상에서 합의에 참여하여 블록을 생성해야하는 노드임에도 블록 생성에 참여하지 않는 것도 결과적으로 악의적인 노드가 될 수 있습니다.
또한 거래 내역을 조작하려는 노드, 투표로 대표 노드를 선정하는 경우 담합이나 부정 투표를 하려는 노드, 대표 노드임에도 블록체인 상에서 발생한 문제에 대한 의사결정에 참여하지 않는 경우 그 외에 블록체인의 안전성이나 보안성을 저해하는 행위를 하는 노드들이 악의적인 노드가 될 수 있습니다.
우선 블록을 생성해야하는 의무가 있음에도 블록 생성에 참여하지 않는 노드들의 경우 블록체인 상에서 어느 노드가 블록을 생성했는지 내역을 확인할 수 있으므로 대표 노드에서 제외시키는 방식으로 처벌할 수 있습니다.
다음으로 거래 내역을 조작하려는 노드들의 경우, 폴카닷 블록체인에서는 이러한 악의적 노드(비잔틴 노드)에 해당하는 Validator(검증자)를 찾아, 검증자가 검증을 위해 하면서 동결시켜 놓은 코인을 소각시킴으로써 처벌하고 그 코인의 일부를 보상으로 받는 감시자인 Fishermen들이 있어 블록체인이 원활하게 운영될 수 있습니다.
이어서 대표 노드를 뽑는 투표에서 담합이나 부정 투표가 있는 경우 투표 내역이 일반적인 투표와 다른 방식으로 나타나게 되므로 투표를 조작한 것이 아니냐는 의심을 살 수 있습니다. 이것에 대한 구체적인 증거가 있다면 이오스 헌법에 따라 직접적으로 BP에서 제외하는 처벌을 할 수 있습니다. 그리고 증거가 없어 직접적인 처벌은 어렵더라도 대표 노드를 뽑는 투표에 영향을 줄 수 있다는 점에서 견제 시스템이 존재한다고 볼 수 있습니다.
그리고 대표 노드임에도 대표 노드들이 중요한 의사 결정을 할 때 참여하지 않는 노드가 있다면 투표를 통해 BP에서 제외하거나 불성실한 활동에 대한 패널티를 주는 방법을 마련할 것으로 보입니다.
끝으로 위에서 말씀드린 것 외에도 블록체인의 안정성이나 보안성, 운영과 관리, 유지 측면에서 부정적인 영향을 주는 노드가 있다면 처벌이나 배제를 통해 블록체인을 운영해 나가고 있다고 할 수 있습니다.
답변이 도움이 되길 바랍니다.