합의 알고리즘의 궁극적인 목표는 옳은 정보(공유되는 정보) 정하는 것
- 합의 알고리즘 시작은 채굴(올바른 블록 해시값 추출 ) 하는 것임
- 합의 알고리즘은 최종 완성은 다른 노드들과 체인 정보를 동기화 하는 것으로 이루어짐
이웃 노드들과 지속적으로 통신을 주고 받음
이웃 노드들과 통신 과정에서 비교를 통하여 규칙에 따라서 한쪽 노드의 정보로 동기화 과정을 이룸
이러한 과정을 지속적으로 반복하여 네트워크 내 모든 노드들이 같은 체인 정보를 갖게 됨
가장 긴 체인이 옳은 체인이라는 규칙이 산정 된다면 서로 다른 두 노드가 길이를 비교후, 더 긴체인을 지닌 노드가 더 짧은 체인을 지는 노드에게 자신의 체인 정보를 넘겨줌
최종적으로 두 노드는 같은 체인 정보를 지니게 됨
블록 동기화 과정
동시 체굴 / 분기
마지막 블록헤더 비교 다르면 대기
새로운 체인이 생겨서 이전 해시값을 이전 블럭의 값들이 같지 않으면 다른 값도 같이 넘겨줌
동시 채굴이 된 상황을 분기(fork)가 일어났다고 표현
분기가 일어나면서 일시적인 네트워크 내에 3개 종류의 데이터들의 공유되고 있음
결국 가장 긴 체인 1개 체인으로 최종적으로 동기화됨
체굴은 불록(데이터 단위)을 만드는 행위
적절한 논스값을 찾으면 채굴 성공 -> 블럭 생성
서로 다른 두 노드가 통신 행위를 하면 그 결과 Tx가 나옴
블록을 만드는 이유는 이러한 거래들을 담아서 주변 노드들에게 알리기 위함임 -> 그 결과적으로 거래가 검증이 되고 완료가 되기 때문
? 합의 알고리즘에 따라 내가 블록을 만들려면 어떻게 해야하나요?
? 그렇다면 비용이 발생하지 않나요? (전기세)
? 그럼 누가해요?
? 그 경제적 보상은 뭔가요?
? 합의 알고리즘 목표와 미치는 영향은?
? 만약 모든 채굴자가 일시적으로 채굴을 멈춘다면?