1. 트랜잭션 생성
- 트랜잭션 요청: 사용자가 특정 자산을 전송하거나 스마트 계약을 실행하고자 할 때 트랜잭션을 생성합니다. 이 요청은 일반적으로 지갑 소프트웨어를 통해 이루어집니다.
- 트랜잭션 내용: 트랜잭션에는 송신자 주소, 수신자 주소, 전송할 자산의 양, 수수료, 디지털 서명 등이 포함됩니다.
2. 트랜잭션 서명
- 디지털 서명: 송신자는 자신의 개인 키를 사용하여 트랜잭션을 서명합니다. 이 서명은 트랜잭션의 진위성을 확인하는 중요한 요소입니다.
- 서명 검증 가능성: 네트워크의 다른 노드들은 송신자의 공개 키를 사용해 서명을 검증할 수 있습니다.
3. 트랜잭션 전파
- 네트워크 전파: 서명된 트랜잭션은 블록체인 네트워크에 전파됩니다. 각 노드는 이 트랜잭션을 받아 메모리 풀(Mempool)에 저장합니다.
- 풀(Pool) 저장: 메모리 풀은 아직 블록에 포함되지 않은 트랜잭션들의 집합입니다.
4. 트랜잭션 검증
- 서명 검증: 다른 검증자들은 트랜잭션의 서명이 유효한지 확인합니다.
- 잔액 확인: 송신자의 계좌에 충분한 잔액이 있는지 확인합니다.
- 이중 지불 방지: 이미 처리된 트랜잭션과 중복되지 않는지 확인합니다.
- 형식 검증: 트랜잭션의 구조가 네트워크 규칙에 맞는지 확인합니다.
5. 트랜잭션 블록 포함
- 블록 생성: 검증자는 메모리 풀에서 여러 트랜잭션을 선택하여 새로운 블록을 생성합니다. 이 블록에는 유효한 트랜잭션들이 포함됩니다.
- 블록 전파: 생성된 블록은 네트워크에 전파되어 다른 노드들에 의해 수신됩니다.
6. 블록 검증 및 합의
- 블록 검증: 다른 검증자들은 새로운 블록의 유효성을 확인합니다. 이는 서명, 트랜잭션의 유효성, 그리고 블록 헤더의 정확성을 검증하는 과정을 포함합니다.
- 합의 알고리즘: 각 블록은 블록체인 네트워크의 합의 알고리즘(예: Proof of Work, Proof of Stake 등)에 따라 검증됩니다. 다수의 검증자가 동의해야 블록이 최종적으로 승인됩니다.