이전자료
•
Fork : 블록체인 연결이 2개 이상의 분기로 갈라지는 현상을 의미한다.
•
Fork가 발생하는 이유
◦
블록체인 P2P 네트워크 내에서 모든 참가자들이 독립적으로 참여할 수 있기 때문이다.
•
비트코인과 이더리움의 작업증명(PoW)방식
◦
블록체인에 블록을 추가하기 위해 문제를 품 (Hash 값 찾기) → 그 결과 여러 노드들이 서로 문제를 풀려고 경쟁을 한다.
◦
그런데 어쩌다가 두개의 노드가 비슷한 시기에 문제를 풀게 되었다.
◦
그러면 블록체인에 추가될 후보자로 두개의 블록이 올라가게 된다.
◦
이때 바로 분기가 발생한다.
•
Longest Chain Rule
◦
예시 2개의 노드에서 채굴한다고 가정
◦
A노드와 B노드가 있다
◦
내가 친구에게 송금을 할려고 할때에
◦
트랜잭션이 생기고 트랜잭션 풀이라는 곳에 들어간다.
◦
이제 A,B 에서 블록을 만들기 위해 트랜잭션 풀에 있는 트랜잭션들을 블록에 담는다.
◦
참고로 여기에는 내가 송금했다는 기록이 있을것 이다.
◦
이 과정이 끝나면 노드들이 각자가 만든 블록을 블록체인에 추가하기 위해서 문제를 풀어야 한다.
◦
해쉬값을 찾는 연산을 거쳐야 하는데 어떻게 하다보니 A,B 둘다 풀게 되면
◦
다른 노드들에게 A,B가 내가 풀었다고 다른 노드에게 연락을 한다.
◦
그러면 어떤 노드들은 A노드가 풀었다는 소식 또 다른 노드들은 B가 풀었다는 소식을 듣게 되는데 이렇게 분기가 발생된다.
◦
이러한 분기는 Genesis block에서 차근차근 오른쪽으로 갈때에 처음으로 발생하는 분기점을 나타낸다.
◦
검정노드 같은 경우는 말 그대로 블록체인 장부에 기록되는 블록체인이다.
◦
Dead forks에서 표시되는 저기 블록은 실제로 연산을 수행하였으나, 사용 못하고 버려지게 된다.
•
Longest Chain Rule의 치명적인 단점
◦
Longest Chain Rule의 핵심은 가장 긴 블록을 신뢰하여 선택한 후 그걸 선택해서 장부를 계속 업데이트를 한다는 점 이다.
◦
그러면 남들은 블록을 한 두개씩 만들때에 내 컴퓨터에서 여러개의 블록을 다 만들어버리면?
◦
즉 내 컴퓨터에서 블록을 수십개 만들어버리면 다른 컴퓨터에서는 내 컴퓨터의 블록이 많은걸 확인하고 그걸 신뢰하고 복사해서 장부에 저장하게 된다.
◦
그렇게 되면 코인복사와 코인판매 기록을 조작할 수 있게 되고 이렇게 해킹을 할 수 있다.
◦
누구 블록체인 라인이 Long 한지 까지 판단하면서 장부를 업데이트를 해야하기 때문에 Finality 까지 시간이 오래 걸린다.