×
Crocus
공부한 내용을 정리하는 블로그로 시작한
Crocus는 2014년 1월 14일 부터 시작하여
현재 월 6만명, 총 1,499,763명의 방문자 수를 기록하고 있습니다.
Donation
이제 많은 사용자들이 이용하는 만큼
더 다양한 서비스 개발/제공을 위해 후원금을 모금하고자 합니다.
후원을 해주시는 분들은 Donators 명단에 성명, 후원금을 기입해드리며
Crocus 블로그가 아닌 다른 곳에 정리해둔 저만의 내용을 공유해 드리고자 합니다.
Account
예금주 : 고관우
신한은행 : 110-334-866541
카카오뱅크 : 3333-01-7888060

👉 후원 페이지 바로가기 Donators
익명 : 5000원(Crocus응원합니다.)
busyhuman: 5000원(유용한 지식 감사합니다.)
익명 : 5000원(알고리즘 학습러)

블록체인에서 Finality란? 왜 중요한가?


Finality란 블록체인의 특징중 하나인 거래는 절대 되돌려질 수 없고 수정될 수 없다는 것이다. 하지만 우리가 이전에 봐왔던 “가장 긴 체인의 법칙”을 생각하면 말이 달라진다. 채굴자들은 블록을 생성할 때 가장 긴 체인에 채굴자들 자신이 만들어낸 블록을 붙여 보상을 받으려 한다.


하지만 이 순간에 A와 B가 동시에 채굴하면 체인이 두갈래로 나뉘어 질 수 있게 되고 메인 체인이 두개로 나누어지게되면 여러 노드들이 A 또는 B 체인으로 서로 나뉘게 된다. 이후 이중에서 더 빠르게 가장 긴 체인이 된 블록체인이 다시 메인 체인이 되고 이때 A 체인이 가장 긴 체인이 됐다면 B 체인에 있던 노드들은 A 체인으로 모두 붙기 때문에 B 체인은 자연스레 소멸된다. 이때 B 체인에만 있던 트랜잭션은 다시 멤풀로 가게 된다.



이때 가장 긴 체인의 법칙은 POW 알고리즘에서 과거 거래들이 절대 바뀔 수 없도록 보장한다는 것에대해 문제를 일으킬 수 있다.



현재 블록체인은 마이닝 풀이라는 집단들이 존재한다. 마이닝 풀이란 마이닝을 위해 Hash rate를 집중시켜 자신들이 채굴하고 서로 기여한 Hash rate에 비례하여 보상을 받는 집단인데 이 집단이 커졌고 블록체인 네트워크의 51% 이상의 노드가 하나의 마이닝 풀에서 존재한다 생각해보자.



그리고 그 마이닝 풀에서 처음부터 블록을 만들어 앞서 말했던 가장 긴 A체인을 넘어간다 생각해보자. 그럼 마이닝 풀의 블록체인이 가장 긴 체인이 되고 그 안의 내용은 모두 위조 될 수 있다. 따라서 PoW 방식에서는 Finality의 문제점이 생길 수 있게 된다.

이를 방지하기 위해 이더리움 PoS 합의 알고리즘에서는 검증인이라는 개념을  도입했다.



검증인들은 key checkpoints라는 특정 시점(대략 100 블록마다)에 블록체인을 점검하는 역할을 하게 된다.

이 Checkpoint에서 검증인들이 2/3 이상 특정 블록을 승인하면 그 블록은 finalized가 되고 과거에 조작되지 않았다는 것을 인정받게 된다. 이렇게 한번 검증받게 되면 체크 포인트 전의 어떠한 블록도 지금부터는 변경이 불가능하게 되어 마이닝 풀에서 새로이 시작하는 블록체인을 만들어도 체크포인트 이전의 블록들은 모두 무효화 되기에 새로 만들 수 없게 되는 것이다.








'Applied > Blockchain' 카테고리의 다른 글

이더리움 플라즈마(Ethereum Plasma)란?  (0) 2018.11.01
EVM에 대한 간단한 정리  (0) 2018.10.31
블록체인 Finality 개념, 중요한이유  (3) 2018.10.28
UTXO SET이란  (0) 2018.10.26
SPV(Simple Payment Verification)  (0) 2018.10.02
블록체인 간단한 개념 PPT  (0) 2018.07.22
  1. 임정섭 2019.06.04 14:26

    포스팅 감사합니다!
    질문이 하나 있는데요,
    "체크 포인트 전의 어떠한 블록도 지금부터는 변경이 불가능하게 되어 " 라고 말씀해주셨는데, 변경은 불가능해도 포크하면 결국 finalized 된 블록도 실질적으로 무효화할 수 있지 않나요?

    • 임정섭 2019.06.04 14:27

      혹시 jsrimr@naver.com 으로 얘기를 나눠볼 수 있을까요?

    • 가누 2019.06.04 21:53 신고

      finalized가되면 제가 알기론 그 전의 블록들을 속이려고 처음부터 시작해도 아에 불허되는거로 알고 있습니다.

      자세한 내용은 좀 더 검색해보시면 좋을듯해요