안녕하세요 :)
거래는 spent transaction과 unspent transaction(UTXO)로 나눠지게 되는데 풀 노드(full node)를 돌리실 때에는 단지 UTXO set이 아닌 spent transaction까지 포함한 전체 블록체인을 다운받게 되고 각 거래의 유효성(validity)을 모두 검증합니다. 비트코인의 풀 노드들은 신규 블록을 받을 때마다 신규 블록에 포함되어 있는 거래들은 UTXO set에 포함시키고 기존 UTXO 중 신규 거래들에 의해 참조된 UTXO는 배제시키는 방식으로 UTXO set을 지속적으로 업데이트해나가게 됩니다.
두 번째 질문에 대해서는 사용자가 각 거래를 생성할 때 자신의 개인키와 해시함수(hash function)을 사용하여 해당 거래에 전자서명(signature)을 하게 됩니다. 따라서 거래의 내용이 위변조되는 경우에는 거래의 서명 자체가 변경되기 때문에 비트코인 프로토콜에 의해 유효하지 않다고 판단되어 받아들여지지 않습니다. 또한 거래들은 merkle tree라는 구조에 의해 merkle root에 최종 해시값이 저장되는데 merkle root값은 거래 중 하나만 변경되어도 완전히 달라지기 때문에 실질적으로 거래 내용 자체를 단순히 위변조하는 것은 불가능하다고 보시면 됩니다.
도움이 되셨으면 좋겠습니다 :) 참고자료로는 Mastering Bitcoin(2nd Ed): https://github.com/bitcoinbook/bitcoinbook이 가장 좋다고 생각합니다.
RE: 비트코인 블록체인 거래 및검증 프로세스 질문 드립니다..