RE: 블록체인에 대해 공부해보자! - 소프트웨어의 중앙화
일반적으로 채굴자들은 각기 다른 트랜잭션이 담긴 블록들을 채굴하는데요.(중복된 트랜잭션이 있는 경우도 있습니다) 채굴에 성공한 채굴자는 자신이 채굴한 블록을 다른 노드들에게 전파합니다.
'나 채굴했어!'
하고 말이죠. 그리고 그 블록을 전파받은 채굴자들은 이후 블록 생성을 위해 트랜잭션을 담아 채굴하기 시작합니다. 답을 드리자면, 거래가 일어나면 동시다발적으로 모든 장부에 기록되지 않습니다.
두 번째 질문에 답해드리자면, 비트코인 코어에 누군가 악의적으로 거래를 기록할 수가 없는 구조입니다. 사용자가 거래를 생성할 때 자신의 개인키를 이용하여 전자 서명을 하게 되는데 전자 서명이 다를 시 소프트웨어에 의해 유효하지 않다고 판단하여 해당 트랜잭션은 제외됩니다.
추가적으로, merkle tree 방식을 사용하기 때문에 거래 내역이 하나만 바뀌어도 merkle root의 값이 바뀌기 때문에 트랜잭션에 대한 위변조는 거의 불가능하다고 알고 있습니다.
풀노드를 사용하는 네트워크 참여자들은 주변 노드들의 블록체인을 대조하여 검증하는 방식을 사용하기 때문에 위변조된 거래를 받아들일 가능성은 없다고 보시면 됩니다.
제가 글에서 말씀드린 부분은 소프트웨어 자체의 검증 생략 버그입니다. 지금은 이 버그가 수정이 되었습니다. 소프트웨어로 블록 생성과 검증이 이루어지기 때문에 소프트웨어에 대한 업데이트는 주기적으로 이루어져야 합니다. 스팀의 경우, 증인 노드가 소프트웨어 업데이트를 하지 않으면 증인 순위에서 밀려나죠.
질문 주셔서 감사합니다! 언제든 편안하게 질문해주세요!