관리 메뉴

평행우주 : world 1

[블록체인이론] 이더리움 트랜잭션 본문

텃밭 1 : BlockChain/이론

[블록체인이론] 이더리움 트랜잭션

parallelworlds 2022. 3. 17. 07:03

트랜잭션

외부소유계정(EOA)에 의해 서명된 메세지

이더리움 네트워크에 의해 전송되고 이더리움 블록체인에 기록된다

EVM에서 상태 변경을 유발하거나 

컨트랙트를 실행할 수 있는 유일한 방법

글로벌 싱크톤 상태 머신인 이더리움을 트랜잭션은 상태 머신을 움직여서 상태를 변경할 수 있게 만든다

즉 모든 것은 트랜잭션으로 시작된다

 


이더리움 네트워크에서 시리얼라이즈되어 전송되는 트랜잭션의 기본 구조

시리얼라이즈된 트랜잭션을 수신하는 각 클라이언트와 어플리케이션은 자체 내부 데이터 구조를 사용해 트랜잭션을 메모리에 저장하며,

네트워크에서 시리얼라이즈된 트랜잭션 자체에는 존재하지 않는 메타데이터가 포함되어 있다

네트워크 시리얼라이제이션은 트랜잭션의 유일한 표준 형식이다

 

 

트랜잭션은 다음 데이터를 포함하는 시리얼라이즈된 바이너리 메세지다

논스

발신 EOA에 의해 발행되어 메세지 재사용을 방지하는 데 사용되는 일련번호

 

가스가격

발신자가 지급하는 가스의 가격 (웨이)

 

가스한도

이 트랜잭션을 위해 구입할 가스의 최대량

 

수신자

목적지 이더리움 주소

 

목적지에 보낼 이더의 양

 

데이터

가변 길이 바이너리 데이터 페이로드

 

V, R, S

EOA의 ECDSA 디지털 서명의 세 가지 구성요소

 

 

트랜잭션 메세지의 구조는 이더리움에서 간결한 바이트 시리얼라이제이션을 위해 특별히 만들어진 RLP 인코딩 체계를 사용하여 시리얼라이즈된다.

이더리움의 모든 숫자는 8비트 배수 길이의 빅엔디안 정수로 인코딩 된다

명확성을 위해 여기에 필드 라벨(수신자, 가스한도 등)이 표시되지만, 이 필드 값들은  RLP로 인코딩된 필드 값이 들어 있는, 시리얼라이즈된 트랜잭션 데이터의 일부가 아니다

일반적으로 RLP는 필드 구분자 또는 라벨을 포함하지 않는다

 RLP의 길이 접두어는 각 필드의 길이를 식별하는 데 사용된다

따라서 정의된 길이를 초과하는 것은 구조상 다음 필드에 속한다

 

 

발신자 EOA를 식별하는 주소에 '발신자'데이터가 없는데,

EOA의 공개키를 ECDSA 서명의 v, r, s 구성요소로부터 알아낼 수 있으며,

이는 공개키를 통해 주소를 알아낼 수 있음을 의미한다

즉, 주소는 공개키에서 파생될 수 있다

'발신자'필드가 표시된 트랜잭션이라면, 시각화하는 데 사용된 소프트웨어에 의해 추가된 것

클라이언트 소프트웨어에 의해 자주 추가되는 다른 메타데이터는 블록번호와 트랜잭션 ID를 포함한다

이 데이터는 트랜잭션에서 파생되며, 트랜잭션 메세지 자체의 일부는 아니다

 

 

 

 

Comments