Gom3rye

Mastering Ethereum] Ch6. 트랜잭션 본문

Blockchain

Mastering Ethereum] Ch6. 트랜잭션

Gom3rye 2022. 5. 8. 11:52
트랜잭션이란?
  • 외부 소유 계정 (EOA)에 의해 서명된 메시지
  • EVM에서 상태 변경을 유발하거나 컨트랙트를 실행할 수 있는 유일한 방법
 

-> 컨트랙트를 비롯한 모든 것들이 트랜잭션으로 시작된다!

트랜잭션 구조

네트워크에서 Serialize 되어있다.

- 트랜잭션에 포함되는 데이터

  1. 논스(nonce) : 메시지 재사용을 방지하는 데 사용되는 일련번호
  2. 가스가격(gas price) : 발신자가 지급하는 가스의 가격
  3. 가스 한도(gas limit) : 트랜잭션을 위해 구입할 가스의 최대량
  4. 수신자(recipient) : 목적지 이더리움 주소
  5. 값(value) : 목적지에 보낼 이더의 양
  6. 데이터(data) : 가변 길이 바이너리 데이터 페이로드

트랜잭션 논스란?

  • number once , 해당 주소에서 보낸 트랜잭션 건수 또는 연결된 코드가 있는 계정의 경우 이 계정에서 만든 컨트랙트 생성건수와 동일한 스칼라값

- 논스는 사용성상의 기능과 트랜잭션 복제 방지 면에서 중요하다.

논스 추적

논스는 각 계정에서 발생한 확인된 트랜잭션 건수에 대한 최신 통계이다.

  • 논스의 간격(갭), 중복 논스
  • 동시실행, 트랜잭션 생성 및 논스

트랜잭션 값과 데이터

  • 트랜잭션의 주요 페이로드(payload) : 값(value) + 데이터(data)
  • 지급(payment) : 값만 있는 트랜잭션
  • 호출(invocation) : 데이터만 있는 트랜잭션

특별 트랜잭션 : 컨트랙트 생성

새로운 컨트랙트 → 트랜잭션 (컨트랙트 사용을 위한 트랙잭션)

  • 제로 어드레스(특수대상주소)로 전송 : 컨트랙트 생성에만 사용하려는 의도였으나 제로어드레스를 목적지로하는 트랙잭션
    1. 실수로 인한 이더 손실
    2. 의도적인 이더연소 (이더파괴) : 지정된 주소로 보낸 이더는 영원히 사라짐

디지털 서명

digital signature (署名)은 네트워크에서 송신자의 신원을 증명하는 방법으로, 송신자가 자신의 비밀키로 암호화한 메시지를 수신자가 송신자의 공용 키로 해독하는 과정

디지털 서명 작동 방법

  1. 메시지(트랜잭션)에서 개인키(서명 키)를 사용하여 서명을 만드는 알고리즘
  2. 메시지와 공개키만을 사용하여 서명을 검증 할 수 있는 알고리즘

트랜잭션 전파 & 블록체인에 기록하기

  • 이더리움 네트워크는 '플러드 라우팅(flood routing)' 프로토콜 사용
  • 각 이더리움 클라이언트는 메시(mesh) 네트워크를 형성하는 P2P 네트워크에서 노드(node) 역할을 함

트랜잭션 전파

  1. 서명된 트랜잭션을 생성한 이더리움 노드에서 시작
  2. 트랜잭션은 검증된 후 트랜잭션을 생성한 '직접' 연결된 다른 모든 이더리움 노드로 전송
  3. 각 이웃 노드는 트랜잭션을 수신하자마자 즉시 유효성을 검사
  4. 그들이 동의하면, 사본을 저장하고 모든 이웃에게 전파
  5. 결과적으로 트랜잭션은 네트워크의 모든 노드가 트랜잭션 사본을 가질 때까지 원래 노드에서 바깥쪽으로 flooding(물결처럼 퍼진다)한다.
728x90
반응형