비트코인은 하나의 서버가 정보를 모두 가지고 있고 사용자들은 같은 서버에서 정보를 받는 형태가 아닌
각각의 노드가 정보를 주고 받는 탈중앙화 형태이기 때문에 분기가 일어날 수가 있습니다.
분기가 일어난 경우에는 결국 더 길어진 분기가 승리를 하게됩니다.
예를들어 Alice와 Jace가 있는데 둘이 거의 동시에 Nonce값을 찾는데 성공하여 블록생성을 한 후에 각자 자기 주변의 노드들에게 알렸다고 가정해봅시다. 그럼 어떤 노드들은 Alice가 생성한 블록을 Jace가 생성한 블록보다 먼저 전파받을 것입니다. (그 반대의 경우도 있겠지요.)
그럼 Alice의 블록을 전파받은 블록들은 Alice의 블록을 메인이라고 생각하고 현재 블록체인에 이어가고
Jace의 블록은 secondary block으로 취급합니다.
ㅁ - ㅁ - ㅁ - Alice의 블록
- Jace의 블록
이런 형태가 됩니다.
반대로 Jace의 블록을 메인 블록으로 취급하는 노드들도 있을겁니다.
ㅁ - ㅁ - ㅁ - Jace의 블록
- Alice의 블록
이런 형태가 되겠습니다.
이렇게 되면 우선 다음블록을 채굴할때까지 계속 두개의 분기로 나누어집니다. 그러나 다음블록이 채굴되면 두개의 분기중 하나는 패배를 하게됩니다.
예를들어 Alice를 메인블록으로 취급한 노드들중에서 다음 블록 채굴을 성공한 노드가 있다면 블록생성을 한 후에 다른 노드들에게 전파합니다. 그럼 아래와 같은 형태가 됩니다.
ㅁ - ㅁ - ㅁ - Alice의 블록 - 새로운 블록
- Jace의 블록
이제 Alice의 블록이 있는 분기가 Jace의 블록이 있는 분기보다 더 길어지게 되었습니다.
그럼 Jace의 블록을 지지한 노드들은 이제 Alice의 블록 - 새로운 블록이 포함되어 있는 분기를 지지하게 됩니다.
이렇게 두개로 갈라진 분기가 하나로 합쳐지게 됩니다.
이 분기과정에서 orphan block이 생기게 됩니다. 아래링크를 참고해주세요.
비트코인의 orphan block: up-to-date-items.tistory.com/105
'Bitcoin' 카테고리의 다른 글
비트코인의 Mining pool (0) | 2021.03.22 |
---|---|
비트코인의 채굴심화 (Extra Nonce) (0) | 2021.03.22 |
비트코인의 orphan block (0) | 2021.03.21 |
비트코인의 지갑 (0) | 2021.03.19 |
비트코인의 채굴원리 (0) | 2021.03.19 |