일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 미쉬킨의화폐와금융 #미쉬킨 #화폐금융론 #화폐와금융 #경제학 #교양 #경제지식 #경제공부
- vp #vc #did #신원인증 #블록체인
- 블록체인 #layer2 #레이어2 #이더리움스케일링
- 자료구조 #알고리즘
- html #js #parsing
- 페이스북유니버시티 #마케팅교육 #마케팅캠프
- #경제상식 #화폐 #금융 #화폐금융론 #경제학 #경제기본 #경제지식 #경제근육 #투자지식 #경제공부 #경제학전공 #금융이란 #화폐란 #금융시장 #금융시장역할 #화폐역할 #화폐역기능 #금융역기능 #
- #국제채권시장 #유로본드 #유로커런시 #유로달러 #외국채 #금융중개기관 #간접금융 #거래비용#다우존스공업평균지수 #나스닥종합지수 #FTSE100 #DAX #CAC40 #straittimes #항생지수 #거래비용 #유동성 #위
- Today
- Total
평행우주 : world 1
[블록체인이론] 이더리움 트랜잭션 가스, 수신자, 값과 데이터 본문
트랜잭션 가스
가스는 이더리움의 연료
가스는 이더가 아니라 이더에 대한 자체 환율을 가진 별도의 가상 화폐
이더리움은 가스를 사용하여 트랜잭션이 사용할 수 있는 자원의 양을 제어한다
튜링 완전 모델은 DoS 공격이나 실수로 막대한 자원을 소모하는 트랜잭션을 피하기 위해 이러한 미터링이 필요하다
가스는 이더 가치의 급격한 변화와 함께 발생할 수 있는 변동성으로부터 시스템을 보호하고,
가스가 지급하는 다양한 자원의 비용 사이의 중요하고 민감한 비율을 관리하기 위해 가스를 이더와 분리한다
트랜잭션의 gadPrice 필드는 트랜잭션 생성자가 가스와 교환하여 지급할 가격을 설정할 수 있게 한다
가격은 가스 단위 당 웨이 단위로 측정된다
지갑은 신속한 트랜잭션 컨펌을 위해 가스비를 조정할 수 있다 (가스비가 높을수록 트랜잭션이 빨리 처리된다
+) 최소 허용 가스비는 0이다. 즉, 지갑이 완전히 무료인 트랜잭션을 생성할 수 있음을 의미한다. 프로토콜에 무료 트랜잭션을 금지하는 것은 없다
트랜잭션 목적지 주소가 컨트랙트인 경우, 필요한 가스양을 추정할 수는 있지만, 정확하게 결정할 수는 없다
이는 컨트랙트가 각기 다른 실행경로로 이어지는 조건을 가질 수 있어 총 가스 비용이 다를 수 있기 때문이다
지급할 가스의 양은 트랜잭션이 블록에 포함되기 전에 얼마나 많은 다른 트랙잭션이 해당 기능을 호출했는지에 따라 다르다
트랜잭션 수신자
to 필드에 트랜잭션 수신자가 지정된다
20바이트 이더리움 주소를 포함한다
주소는 EOA 또는 컨트랙트 주소일 수 있다
이더리움은 이 필드를 더 검증하지 않는다
모든 20바이트 값은 유효한 것으로 간주한다
20바이트 값이 개인키가 없거나 상응하는 컨트랙트가 없는 주소의 경우에도 트랜잭션은 여전히 유효하다
이더리움은 주소가 공개키(따라서 개인키)에서 올바르게 파생되었는지 여부를 알 수 있는 방법이 없다
이더리움 프로토콜은 트랜잭션의 수진자 주소를 검증하지 않는다
(해당하는 개인키 또는 컨트랙트가 없는 주소로 보낼 수 있다)
그러면 이더가 연소되어 영구적으로 사용할 수 없게 된다
유효성 검사는 사용자 인터페이스 수준에서 수행되어야 한다
트랜잭션을 잘못된 주소로 보내면, 대부분의 경우에 해당 주소에 대응하는 개인키도 알 수 없고, 서명도 만들 수 없어
보내진 이더는 영원히 소실된 것으로 간주할 수 있다
주소확인은 사용자 인터페이스 수준에서 처리해야 한다고 가정한다
트랜잭션 값과 데이터
트랜잭션의 주요 페이로드는 값과 데이터라는 2개의 필드에 포함된다
값만 있는 트랜잭션은 지급(payment)
데이터만 있는 트랜잭션은 호출(invocation)
값과 데이터 모두를 사용한 트랜잭션은 지급과 호출
값과 데이터 모두 없는 트랜잭션은 단지 가스 낭비일 뿐이지만, 가능하다
EOA 및 컨트랙트에 값 전달
값을 포함하는 이더리움 트랜잭션을 구성하면 지급과 동일하다
이러한 트랜잭션은 대상 주소가 컨트랙트인지 여부에 따라 다르게 작동한다
EOA 주소의 경우 또는 블록체인의 컨트랙트로 표시되지 않은 주소의 경우
이더리움은 상태 변경을 기록하여 주소 잔액에 보낸 값을 추가한다
이전에 주소가 표시되지 않은 경우, 클라이언트 내부 상태 표현에 추가되고 잔액은 지급 금액으로 초기화
컨트랙트는 함수가 호출될 때 또는 함수에 코딩된 조건에 따라 즉시 예외를 발생시켜 입금을 거부할 수 있다
함수가 예외 없이 성공적으로 끝날 경우,
컨트랙트 상태가 이더 잔액이 증가됨을 반영해 업데이트 한다
EOA 또는 컨트랙트에 데이터 페이로드 전달
트랜잭션에 데이터가 포함된 경우, 받는 주소는 컨트랙트 주소일 가능성이 높다
물론, 이더리움 프로토콜에서 완전히 유효한 데이터 페이로드를 EOA에 보낼 수 없다는 의미는 아니다
그러나 이 경우, 데이터 해석은 EOA에 접근하는 데 사용하는 지갑에 달려있다
대부분의 지갑은 자신이 제어하는 EOA에 대한 트랜잭션에서 수신된 모든 데이터를 무시한다
+)
미래에는 지갑이 컨트랙트 방식대로 데이터를 해석할 수 있도록 하는 표준이 등잘할 수 있으므로 트랜잭션은 사용자 지갑 내부에서 실행되는 함수를 호출할 수 있다
중요한 차이점은 EOA에 의한 데이터 페이로드의 해석은 컨트랙트 실행과 달리 이더리움의 합의 규칙의 적용을 받지 않는다는 것
트랜잭션이 컨트랙트 주소로 데이터를 전달한다고 가정해보자
이 경우 데이터는 EVM에 의해 컨트랙트 호출로서 해석된다
대부분의 컨트랙트에서는 이 데이터를 함수 호출로 사용하며, 명명된 함수를 호출하고 인코딩 인수를 함수에 전달한다
ABI 호환 컨트랙트(모든 대부분의 컨트랙트)로 전송된 데이터 페이로드는 다음을 16진수로 시리얼라이즈한 인코딩이다
함수 선택기
함수 선택기는 함수 프로토타입의 keccak-256해시의 처음 4바이트이다.이렇게 화면 컨트랙트에서 호출할 함수를 정확하게 식별할 수 있다
함수 인수
함수의 인수는 ABI 사양에 정의된 다양한 기본 유형에 대한 규칙에 따라 인코딩된다
'텃밭 1 : BlockChain > 이론' 카테고리의 다른 글
[블록체인이론] 특별 트랜잭션 : 컨트랙트 생성 (0) | 2022.03.27 |
---|---|
[블록체인이론] 키와 주소 그리고 공개키 암호화 (0) | 2022.03.27 |
[블록체인이론] 이더리움 트랜잭션 논스 (정의, 추적, 중복문제) (0) | 2022.03.17 |
[블록체인이론] 이더리움 트랜잭션 (0) | 2022.03.17 |
[블록체인이론] 클라이언트 종류와 노드 (0) | 2022.03.17 |