고아 블록에 대해 학습해 보겠습니다.
위와 같이 블록체인에서 분기가 이루어지는 경우가 있을 수 있습니다. 채굴이 비슷한 시간에 이루어져, A , D 블록이 생성되어 A와 가까운 블록노드는 A블록이 릴레이 되고, D블록도 마찬가지입니다. 따라서 경쟁하는 두 개의 네트워크 즉, 두개의 체인을 동시에 갖게 됩니다.
이 후로 그다음 블록을 찾는 자가 이 체인의 주인이 됩니다. 한번 더 두 개의 블록이 동시에 생성될 확률은 적으므로, 메인체인은 길어지게 되고, 현재 길이를 유지하게 되는 엉클체인이 되어버립니다. ( 경쟁하고 있는 두 체인 중 더 높은 해싱 파워 또는 해시율이 높은 쪽이 이길 확률이 매우 높습니다. )
진정한 메인체인이 결정되고, 엉클체인은 버려지게 되는데, 이때 D 블록의 트랜잭션은 유실되지 않고, mempool로 돌아가게 됩니다. 트랜잭션마다 수수료가 다른 것을 전 시간에 공부했었습니다. 수수료가 높은 것 우선으로 빠져나오게 되는데요. 엉클 블록의 트랜잭션이 멤풀로 돌아가게 되고, 성공한 블록의 멤풀에 해당되는 트랜잭션들이 빠져 나오는(제거되는) 순서입니다. 그렇지 않은 것은 멤풀에 머물게 됩니다. ( 유의해야 할 점은 네트워크에 전파되는 시간이 있기 때문에 정확히 이렇다 라는 것은 아닙니다 )
분기가 발생하였을 때 비트코인 같은 경우에는 체인 성공을 판가름하기 전 5~6번의 확인을 거친다고 합니다.
< 참고 >
http://wiki.hash.kr/index.php/%EA%B3%A0%EC%95%84%EB%B8%94%EB%A1%9D
블록체인*암호화폐를 공부 중인 비전공자입니다. 혹시 잘못된 내용이 있다면 말씀해 주시면 감사하겠습니다 :)