블록체인의 블록 관리 질문입니다.
블록체인의 블록들의 관리는 어디에서 하는 건가요? 각 개인이 블록들을 만들면서 컴퓨터에 저장하고 주변 컴퓨터로 거래 내용을 보내어 자신의 거래 내역을 상대 블럭에 세겨야 하는데 그럼 컴퓨터가 24시간 켜져있어야 가능 한거 아닌가요?
질문자께서 질문해주신 내용을 중심으로 답변을 드리도록 하겠습니다.
블록체인의 블록들의 관리는 어디에서 하는 건가요? 각 개인이 블록들을 만들면서 컴퓨터에 저장하고 주변 컴퓨터로 거래 내용을 보내어 자신의 거래 내역을 상대 블럭에 세겨야 하는데 그럼 컴퓨터가 24시간 켜져있어야 가능 한거 아닌가요?
일단 블록체인 상에서 트랜젝션의 유효성을 검증하고 블록을 생성하며 거래 내역을 기록하는 일은 마이닝 노드들이 담당하고 있습니다. 그리고 블록체인 전체의 트랜젝션과 블록의 검증은 풀 노드들이 기여한다고 할 수 있습니다.
질문자께서 질문해 주신 내용에 대해 A가 B에게 1 BTC를 전송하는 상황을 가정하고 트랜젝션이 처리되는 과정을 설명해 드리면서 답변을 드리도록 하겠습니다.
A가 B에게 1BTC를 보내는 트랜젝션을 발생시킵니다. 이 트랜젝션이 마이닝 노드들에게 전파되면 해당 마이닝 노드들은 해당 트랜젝션이 유효한지 검증하게 됩니다.
그리고 마이닝 노드는 A가 발생시킨 트랜젝션을 자신의 Mempool에 저장합니다. 즉, Mempool에는 거래의 유효성은 검증되었지만 아직 거래가 완전히 컨펌되지 않은 트랜젝션들이 저장된다고 할 수 있습니다.
마이닝 노드들은 난이도 타겟 값과 같거나 낮은 값을 찾기 위해 해시 함수에 논스를 대입하며 연산을 실행하고, 해시 값을 찾아 새로운 블록을 생성할 수 있게 된 마이닝 노드는 새 블록에 Mempool에 저장된 트랜젝션들을 수수료가 많은 순서로 기록하게 됩니다. 따라서 각 노드가 각자 블록을 생성하는 것이 아니라고 할 수 있습니다.
다음으로 블록 크기가 한정되어 있기 때문에 우선 순위에 따라 블록에 거래내역을 기록하는 것이 완료되면 블록을 생성하고 그것을 다른 노드들에게 전파하여 블록이 검증받게 되면서 1 컨펌을 받게 됩니다. 이런 과정을 통해 트랜젝션이 처리되고 블록이 생성된다고 할 수 있습니다.
이때 노드들이 24시간 블록체인 네트워크에 접속해 있어야 하는가에 대해 의문이 들 수 있습니다. 현재 비트코인의 노드 수는 9,168개이며 전 세계적으로 분포하고 있습니다. 따라서 반드시 24시간 내내 블록체인 네트워크에 노드들이 접속하지 않더라도 네트워크의 유지에는 큰 무리가 없을 것으로 보입니다.
또한 일반적으로 풀 노드의 경우 하루 6시간 이상 접속하여 노드를 유지하고 있어야 하며 마이닝 노드의 경우 24시간 풀로 작동한다고 생각하시면 좋을 듯합니다.
답변이 도움이 되길 바랍니다.