아하
생활
강한에뮤83
강한에뮤83
19.11.29

노드는 올바른 블록 검증을 어떻게 하나요?

블록체인의 블록이 매번 생성될때마다 올바른 블록인지에 대한 검증을 하는것으로 알고 있습니다.

노드들은 올바른 블록 검증을 어떻게 하는건가요?

55글자 더 채워주세요.
1개의 답변이 있어요!
  • 까칠한담비242
    까칠한담비242
    19.11.30

    질문해주신 내용에 대해 이더리움 2.0에 적용될 캐스퍼 프로토콜의 사례를 통해 답변해드리도록 하겠습니다. 이와 관련하여 이더리움 2.0의 검증 방식은 투표를 통해 검증을 하는 Consensus-by-bet의 원리가 적용되어 있다고 할 수 있습니다.

    우선 이더리움 2.0 세레니티 단계에 접어들게 되면 우선 비콘체인이 도입되고 누구나 이더리움을 32ETH 이상 스테이킹하면 검증인으로서 검증 노드를 운영할 수 있게 됩니다.

    이때 검증인은 50블록마다 생성된 체크 포인트를 검증하고 확정하는 역할을 하게 되고 이러한 검증 및 확정은 검증 노드들의 투표로 이루어집니다. 이러한 투표 행위는 베팅 행위로도 볼 수 있는데, 그 이유는 어떻게 투표를 하느냐에 따라 보상 여부가 달라지며 잘못된 투표를 할 경우 처벌까지 받을 수 있기 때문입니다.

    구체적으로, 검증인들은 같은 블록 높이에 있는 다른 체크 포인트에 중복 투표를 해서는 안 되며, 투표할 체크 포인트 안에 포함되는 다른 체크 포인트에도 중복 투표할 수 없게 됩니다. 그리고 이것은 일종의 베팅 규칙으로도 볼 수 있습니다. 만약 중복 투표를 허용할 경우 블록의 검증이 제대로 되지 않고 검증 노드가 어떤 선택을 하더라도 손해를 보지 않게 될 수 있는 문제점이 있기 때문에 이러한 규칙이 있는 것입니다.

    그리고 이러한 규칙을 어기게 되면 스테이킹한 이더리움 코인의 일부를 몰수당하는 처벌을 받게 되므로 부정한 투표를 막을 수 있을 것으로 보입니다. 또한 규칙을 어기거나 의도적으로 잘못된 투표를 했을 때의 이익보다 규칙을 지키고 올바른 투표를 했을 때의 이익이 더 크다면 검증 노드들이 올바른 선택을 하게 될 확률이 높아지게 됩니다.

    끝으로 이러한 투표를 통한 블록 검증은 빠르게 이루어지면서도 justified, finalized의 두 가지 상태로 두 번에 걸쳐 투표를 통해 진행되므로 검증의 신뢰성이 담보될 수 있다고 생각합니다. (첫 번째 검증에서 justified 상태로 타당성을 갖게 되고 두 번째 검증에서 finalized 상태로 확정성을 획득하게 됨)

    답변이 도움이 되길 바랍니다.