pow(proof of work)방식 질문입니다!!
만약 이더리움에서
어떠한 miner가 mining을 하면 그것에 대한 대가로 수수료를 reward받는걸로 알고있습니다.
근데 miner가 만든 block이 메인체인이 아니게 될수도 있는 경우가 생길텐데
miner가 만든 블록에 대한 수수료는 만들자마자 받는것이 아니라 메인체인으로 되면 받나요??
(fork가 된 경우 reward는 어떻게 받나요? )
그렇다면 fork가 되었을때 메인체인이 아닌 fork된 다른 체인의 블록 내부의 트랜잭션은
처리가 되지않을텐데 이 트랜잭션들은 어떤 방식으로 다시 처리하게 되나요?
(트랜잭션 풀(?) 그런곳에서 다시 대기하는건가요? 아님 사용자에게 알려주는건가요)
위 그림에서 짧은 fork에서는 블록 reward가 발생하지 않는다는데 이유가 궁금합니다.
전체적인 설명을 드린 후에 개별 질문에 대한 답변을 추가하는 방식으로 답변을 드리도록 하겠습니다.
질문자께서 말씀하신 것처럼 블록체인에서 블록이 생성될 때 우연히 동시에 블록이 생성되어 블록체인이 분기(Fork)되는 경우가 있고 이때 블록체인은 무엇을 메인 체인으로 볼 것인가 하는 것을 결정하게 됩니다.
비트코인의 경우는 길이가 가장 긴(더 긴 블록체인을 완성한) 체인이 메인 체인으로 인정받아 계속해서 이어지게 됩니다. 이때 생성되었지만 메인 체인에 포함되지 못하고 버려진 블록을 일반적으로 고아 블록이라고 합니다. (이더리움의 경우에는 엉클 블록이라고 부름) 이때 고아 블록을 생성할 경우에는 채굴 보상을 받지 못합니다.
하지만 이더리움에서 도입한 고스트 프로토콜에서는 이 엉클 블록까지도 메인 체인에 포함될 수 있습니다. 고스트 프로토콜이란 이더리움 블록체인에서 동시에 블록이 생성될 경우 어느 것을 메인 체인으로 볼 것인지를 결정하는데 필요한 약속이며 가장 무거운 체인을 선택하는 규약입니다.
앞서 말씀드렸듯이 보통 가장 길이가 긴 블록체인을 메인 체인으로 삼지만 이더리움의 고스트 프로토콜에 따르면 엉클 블록을 생성한 경우에도 채굴 보상을 지급(일반 블록 채굴의 93.75% 수준)하며 메인체인에 엉클 블록을 포함시킨 채굴자는 일종의 트랜젝션 수수료로 일반 채굴 보상의 3.125%의 추가 보상을 받을 수 있게 됩니다.
이처럼 이더리움의 고스트 프로토콜에 따르면 단순히 블록의 길이가 가장 긴 체인이 메인체인이 되는 것이 아니라 분기된 같은 경로 상에 있는 엉클 블록(최대 2개)까지 다 합쳤을 때 가장 많은 블록을 포함하고 있어 가장 무거운 체인을 메인 체인으로 삼게 됩니다.
이렇게 되면 엉클 블록들이 발생되더라도 메인체인을 일관되게 이어나갈 수 있고 엉클 블록을 생성한 사람에게도 보상을 줄 수 있으며 단순히 길이가 긴 체인을 선택하는 것에 비해 더 많은 블록을 포함한 무거운 체인을 빠르게 선택하므로 블록체인의 분기 상황에서 유효한 메인체인을 선택하는 시간을 줄여 안정적으로 이어나갈 수 있게 된다고 할 수 있습니다.
miner가 만든 블록에 대한 수수료는 만들자마자 받는것이 아니라 메인체인으로 되면 받나요??
(fork가 된 경우 reward는 어떻게 받나요?)
-> 일반적으로 Fork가 발생하지 않은 경우는 블록 생성 후 채굴 보상이 바로 지급되지만 Fork가 된 경우에는 일반적으로는 길이가 가장 긴 체인에 포함된 블록을 생성한 마이너에게만 보상을 지급합니다. (고아 블록 생성시 보상 없음) 그러나 앞서 살펴보았듯이 이더리움의 경우에는 엉클 블록 생성자에게도 채굴 보상을 지급합니다.
그렇다면 fork가 되었을때 메인체인이 아닌 fork된 다른 체인의 블록 내부의 트랜잭션은
처리가 되지않을텐데 이 트랜잭션들은 어떤 방식으로 다시 처리하게 되나요?
(트랜잭션 풀(?) 그런곳에서 다시 대기하는건가요? 아님 사용자에게 알려주는건가요)
-> 일반적으로는 Fork가 되었을 경우 생성된 블록에 포함된 트랜젝션의 차이가 있을 수 있지만 비슷한 시간대에 생성된 블록의 경우 거의 비슷한 트랜젝션을 기록하고 있는 경우가 많습니다. 그리고 차이가 나는 부분도 Mempool에 저장되어 있다가 이어지는 블록에 포함되어 처리되므로 문제가 없습니다. 그리고 이더리움 블록체인의 경우는 엉클 블록까지 포함하여 메인체인을 결정하므로 문제가 없다고 할 수 있겠습니다.
위 그림에서 짧은 fork에서는 블록 reward가 발생하지 않는다는데 이유가 궁금합니다.
-> 흰색 블록은 고아 블록으로 메인 체인에 포함되지 못한 길이가 더 짧은(Shorter) 체인이므로 보상이 주어지지 않는다는 것을 설명한 것으로 이해됩니다.
답변이 도움이 되길 바랍니다.
