블록체인은 블록 + 체인, 블록이 다른 블록들과 연결되어 있는 구조다.
블록은 Header + Body 구조이며
Header는 MetaData,
Body는 Transaction Lists
로 구성되어 있다.
MetaData는 해당 블록을 설명하는 데이터다. 다음과 같은 정보를 담고 있다.
아래 사진은 블록과 트랜잭션의 구조를 보여주고 있다.
이더리움 트랜잭션 논스의 특징은 2가지가 있다.
거래 전송시(Transaction) 논스는 1씩 증가한다
논스는 계정에서 유일하며, 동일한 논스가 존재하지 않는다
논스는 발신 주소의 속성이며, 발신 주소의 컨텍스트 안에서만 의미를 갖는다.
논스는 중복되지 않고 순차적이기 때문에 같은 논스에 여러 트랜잭션 전송이 발생했다면 해당 논스 중 제일 높은 가스비를 지불한 트랜잭션이 처리된다.
이더리움은 이런 방법으로 이중 지불 문제를 방지한다.
만약 논스가 0인 트랜잭션 전송 후 논스가 2인 트랜잭션 전송하면, 두 번째 트랜잭션은 어떤 블록에도 포함되지 않는다. 이더리움 네트워크는 누락된 논스가 나타날 때까지 기다리는 동안 두 번째 논스를 멤풀(Mempool)에 저장한다.
논스가 1인 누락된 트랜잭션을 전송하면, 두 트랜잭션이 처리가 되고 블록에 포함된다.