Blockchain에서의 transaction에 대하여

Blockchain May 28, 2023

Transaction

개념

일반적인 의미의 Transaction

개인 간의 거래를 의미 합니다.

graph LR account1(A 계좌) --->|돈| account2(B 계좌) account2 --->|돈| account1

컴퓨터 과학에서의 Transaction

Transaction은 쪼개질 수 없는 작업 처리의 단위 를 뜻합니다.

이해를 돕기 위한 예시

A 은행에서 B 은행으로 송금하려 하는 상황입니다.

아래의 과정을 통해 송금 작업이 이루어질 것입니다.

  1. A 은행 계좌의 잔액을 송금하려는 금액만큼 뺀다.
  2. 송금하려는 금액을 B 은행 계좌의 잔액에 더한다.
graph LR aBank((A 은행)) bBank((B 은행)) transfer[송금] aBank-->transfer-->bBank

송금 작업에서 1, 2 과정은 순서대로 행해져야 하며, 둘 중 하나만 진행되어선 안됩니다.
쪼갤 수 없기 때문에 일부만 동작해서는 안된다는 것이 핵심

Blockchain에서의 Transaction

Blockchain 의 상태를 변환 시키는 하나의 기능을 수행하기 위한 작업의 단위

  • Bitcoin
    A wallet에서 B wallet으로의 bit 이동 (Transfer)
    → A / B wallet의 잔액 변경
  • Ethereum
    1. A wallet에서 B wallet으로의 ether 이동 (Transfer)
       → A / B wallet 의 잔액 변경
    2. Smart contract 의 계약 내용 이행 (Invoke)
       → contract 관련 data 변경

Blockchain 의 내용을 변경하는 행위라고 할 수 있습니다.

Transaction 구조

Bitcoin

설명
Version 번호 채굴자와 node가 transaction 처리에 사용할 규칙을 지정하는 데 사용
입력 counter Transaction 에 포함된 입력의 개수
입력 list 하나 이상의 Transaction 입력이 포함됨
출력 counter 출력의 개수
출력 list transaction에 포함된 출력 목록
Lock 시간 transaction이 유효해지는 가장 빠른 시간을 정의

Ethereum

설명
Nonce Wallet의 Transaction Count
Gas 가격(gasPrice) Transaction 요청자가 지급하는 Gas 수수료의 가격 (단위: wei)
Gas 한도(gasLimit) 사용할 gas의 최대치, 한도가 넘는 gas 가 사용된다면 transaction은 실패한다.
수신자(toAddress) Transaction 요청을 받는 수신자(목적지 주소)
값(Value) 수신자에게 보내는 Coin의 양
Data Smart contract 에 사용되는 data
v, r, s Digital 서명의 세 가지 구성 요소

→ nonce 값을 통해 동일 transaction을 동시에 2번 이상 일으키는 행위를 방지함.

Transaction 특징

  • 이중 지불 (Double spending) 문제를 해결할 수 있음.
    Bitcoin → UXTO / Ethereum → nonce
  • 투명성
    누구나 내역을 확인할 수 있음.

Ethereum에서의 gas

Gas 란?

graph LR user(사용자) ether(((Ethereum Network))) computing[(자원)] result[[작업 결과]] user-->|작업 요청|ether computing-->|사용량 -> Gas|ether ether-->result

Ethereum network 에서 특정 작업을 수행하는데 필요한 computing power의 양을 측정하는 단위
→어떠한 특정 작업이 network의 자원을 얼마나 사용하는 가를 수치화 한 것!

Gas 는 왜 필요한가요?

  • Network 유지에 필요한 보상
    Ethereum network 에서 transaction을 실행시키기 위해서는 network의 자원을 사용해야 합니다. ( Computing 작업)
    → Ethereum network를 사용하는 user들이 자원을 사용하고 그에 적절한 수수료를 부과하여 ethereum network를 유지하는 user[node]들에게 보상으로 제공하기 위해서 입니다.
graph TD user(사용자) transaction[Transaction] ether(((Ether Network))) node1([Node]) node2([Node]) node3([Node]) user-->|요청|transaction transaction-->|수행 & Gas 수수료 수령|ether ether-->|Gas fee|node1 ether-->|Gas fee|node2 ether-->|Gas fee|node3 node1-->|자원|ether node2-->|자원|ether node3-->|자원|ether

  • 악의적인 행위자(Hacker)가 network에 스팸을 보내는 것(ex. DDOS)을 방지합니다.
    → Ether coin을 소지하고 있어야 한다는 것 만으로도 많은 제약이 생기기 때문입니다.

Tags