본문 바로가기
Blockchain

[Blockchain] 블록체인 트랜잭션이란

by 개발자 염상진 2022. 6. 14.

 

블록체인은 블록(Block)과 체인(chain)으로 구성됩니다. 각 블록들은 체인으로 연결되어 하나의 거대한 네트워크를 구성하고 있습니다. 블록을 자세히 들여다보면 헤더(header)와 바디(body)로 구성됩니다. 헤더에는 메타데이터가 삽입되고, 바디에는 트랜잭션 리스트들이 삽입됩니다.

 

블록은 거래의 기록단위인 트랜잭션들을 포함합니다. 특정 블록 헤더의 메타데이터를 가지고 여러 정보를 얻어올 수 있습니다. 예를 들어 블록은 체인 중 몇번째 블록인지, 블록에는 몇개의 트랜잭션이 담겼는지, 블록 생성자, 블록 크기, 전송량 등의 정보를 메타데이터에서 얻을 수 있습니다. 

 

 

트랜잭션이란 무엇일까요? 쉽게 말하면 데이터베이스의 상태를 변화시키는 일련의 논리적 기능을 수행하는 작업 단위라고 생각하시면 됩니다. 데이터베이스를 변환시키는 만큼 민감한 작업이기 때문에 ACID 특성을 지킬 필요가 있습니다.

트랜잭션이란?

 

블록체인의 트랜잭션

 

블록체인의 트랜잭션 또한 작업 수행의 논리적 단위라고 할 수 있습니다. 블록체인 네트워크 상 모든 활동들은 트랜잭션을 통해 이루어집니다. 트랜잭션이 수행되면서 블록체인의 상태가 변환됩니다. 예를 들어 A가 B에게 1BTC를 전송하게 되면 자신의 BTC 잔액은 1이 차감되고 B의 잔고는 1BTC가 추가됩니다. 

블록에는 헤더와 바디로 구성되고 바디에는 여러개의 트랜잭션들이 담깁니다. 트랜잭션은 발신자와 수신자, 데이터 등의 정보를 담고 있습니다. 

 

 

 

비트코인 vs 이더리움 트랜잭션 데이터 차이

 

블록체인 네트워크들은 각자 상이한 데이터 구조를 가지고 있습니다. 대표적인 블록체인 프로젝트인 비트코인과 이더리움도 상이한 트랜잭션 데이터를 가지고 있습니다. 두 블록체인의 가장 큰 차이점은 논스(Nounce) 유무입니다. 비트코인은 이중지불을 해결하기 위해 UTXO(Unspent Transaction Outputs)를 사용하고, 이더리움은 Account 기반 시스템으로 논스(Nounce)값을 카운터로 사용해 각 트랜잭션들이 단 한번만 처리되게 합니다.

 

비트코인 트랜잭션 구조

  Description
버전 번호 채굴자, 노드들이 트랜잭션 처리시 지켜야 할 규칙 지정
입력 카운터 트랜잭션에 포함된 입력의 개수
입력 리스트 블록의 첫 트랜잭션은 코인베이스 트랜잭션이 됩니다. 입력 리스트에는 최소 하나 이상의 트랜잭션 입력이 포함됩니다.
출력 카운터 출력의 갯수를 의미합니다.
출력 리스트 트랜잭션에 포함되는 출력 리스트입니다.
로크(Lock) 시간 트랜잭션이 유효해지는 최단 시간을 정의합니다.

 

이더리움 트랜잭션 구조

논스(Nounce)란 발신 주소의 속성이며, 발신 주소 컨텍스트 내에서만 의미를 가질 수 있습니다. 블록체인 계정 상태에 명시적으로 저장되지 않고, 해당 주소에서 발생된 트랜잭션을 카운팅해서 동적으로 계산됩니다. 

이더리움 트랜잭션 논스(Nounce)는 거래 전송(Transaction)마다 1씩 증가합니다. 또한 논스는 계정에서 유일한 값이며 동일한 논스는 존재하지 않습니다. 논스는 중복되지 않고 순차적이므로 같은 논스에 여러 트랜잭션 전송이 발생하는 경우 해당 논스 중에서 가장 비싼 가스비를 지불한 트랜잭션이 처리되게 됩니다. 이더리움에서는 이 과정으로 이중지불 문제를 방지합니다.

  Description
논스(Nounce) 발신 EOA에 의해 발행되어 메시지 재사용을 방지하는데 사용되는 일련번호 입니다.
가스 가격(Gas Price) 발신자가 지불하는 가스가격
가스 한도(Gas Limit) 해당 트랜잭션을 위해 구입할 최대 가스량
수신자(Recipient) 목적지 이더리움 주소
값(Value) 송신할 이더(ETH)의 양
데이터(Data) 가변 길이 Binary Data payload
v, r, s EOA의 ECDSA 디지털 서명 세가지 구성 요소

 

예를 들어 논스가 0인 트랜잭션 전송 이후 논스가 2인 트랜잭션을 전송할 경우 이 트랜잭션은 어떤 블록에도 포함되지 않고 누락된 논스가 나타날 때 까지 멤풀(Mempool)에 저장하게 됩니다. 다음 논스 1인 트랜잭션이 전송되면 논스 2 트랜잭션이 블록에 포함됩니다.

멤풀(Mempool)이란?

현재 블록에 포함되지 않은 트랜잭션들이 모여있는 공간.

 

 

 

 

 

[Blockchain] 비트코인 vs 이더리움

비트코인(Bitcoin) 비트코인은 중앙집중식 은행이 필요없습니다. P2P 기술을 활용해 네트워크의 협력을 통해 트랜잭션이 관리됩니다. 비트코인은 오픈소스로 누구에게나 공개되어 있으며, 누구도

about-tech.tistory.com

 

 

[Blockchain] 암호화폐는 화폐기능을 가질 수 있을까?

암호화폐는 물물교환, 금속화폐를 거쳐 신용화폐를 사용하는 현 시점에도 정체를 알 수 없는 화폐입니다. 그럼에도 불구하고 암호화폐가 기존의 화폐 시스템에 영향을 미칠 것이라는 건 자명한

about-tech.tistory.com

 

 

[Blockchain] 블록체인은 왜 등장했는가 ?

2008년 서브프라임 모기지론은 전 세계 금융시장을 초토화 시켰습니다. 상환능력이 없는 사람들이 비싼 집을 빌리고, 대출 상환이 힘드어지면서 디폴트를 발생시켰습니다. 즉, 돈을 갚지 못한것

about-tech.tistory.com

 

댓글