대중 과학: Ethereum Yellow Paper의 해석(3/7)
편집자 주: 이 기사의 출처는이더리움 애호가(ID: Ethfans)이더리움 애호가(ID: Ethfans)
, 저자: Lucas Saldanha, 번역가 및 교정자: IAN LIU & A Jian, 승인을 받아 Odaily에서 복제.
다시 한 번 신나는 시간입니다. Ethereum Yellow Paper에 대한 또 다른 블로그 게시물로 돌아왔습니다! 이 기사에서는 이더리움의 가스 및 결제에 대해 자세히 알아보고, 이더리움 이면의 경제학을 이해하고, 이더리움 생태계에서 수수료가 왜 중요한지 설명합니다.
이 블로그 게시물을 읽고 나면 트랜잭션 비용이 Gas라고 불리는 이유를 알게 되고, gasPrice와 gasLimit의 차이를 이해하고, 패키징할 트랜잭션을 선택하는 채굴자 노드의 전략을 이해하게 될 것입니다. (이 블로그 게시물은 Ethereum Yellow Paper의 5장을 참조합니다.)
보조 제목
소개하다
소개하다
이더리움을 처음 배우기 시작했을 때 처음 접한 혼란은 거래 수수료와 관련이 있었습니다. 내 질문은 "Dapp과 같은 서비스를 무료로 받을 수 있는데 왜 Dapp에 비용을 지불합니까?"였습니다.
이제 이더리움 네트워크를 계산을 수행하고 데이터를 읽고 쓸 수 있는 거대한 컴퓨터로 생각해보자. 집에 있는 컴퓨터와는 다른 이 거대한 컴퓨터(이더리움)는 모든 사람이 공유하며 이더리움 계정만 있으면 누구나 이더리움 전송 및 스마트 계약 배포 등 전체 플랫폼과 상호 작용할 수 있습니다. 그러나 분산 시스템의 고유한 한계로 인해 "누가 이러한 서비스에 대한 비용을 지불할 것인가"라는 질문에 대답하기가 더 어렵습니다.
Gas
보조 제목
Gas는 Ethereum의 모든 계산의 가격 단위이며 Ethereum은 Gas를 사용하여 "누가 서비스 비용을 지불하는지"의 문제를 해결합니다. 다른 이더리움 계정으로 돈을 이체하시겠습니까? 전화 연락처를 저장하기 위해 스마트 계약을 배포하시겠습니까? 문제 없습니다. 가스 요금을 먼저 지불하세요.
자동차와 연료의 관계를 생각하기 쉽습니다: A에서 B로 운전하려면 약간의 연료를 소비해야 하며 마찬가지로 Ethereum EVM에서 특정 작업을 수행하려면 약간의 연료도 소비해야 합니다. 가스 요금을 지불하십시오. 자동차가 더 멀리 운전하고 싶을수록 더 많은 연료가 필요하고, 이더리움에서 더 많은 계산을 수행할수록 더 많은 가스를 지불해야 합니다.
또 다른 관점에서 이더리움은 자원 남용을 피할 수 있는 사용자 지불 모델을 채택합니다. 각 작업에 대해 비용을 지불하면 가능한 한 간결하고 효율적으로 코드를 작성할 수 있으며 Gas의 존재는 공격자가 잘못된 작업을 통해 Ethereum 네트워크를 범람시키는 것을 방지할 수 있습니다. (공격자가 잘못된 작업을 수행하기 위해 많은 돈을 지불하려는 경우가 아니면)
보조 제목
가스 가격 및 가스 제한
가스를 이해했으므로 이제 가스의 가격 책정 방법에 대해 이야기할 시간입니다. 먼저 자동차와 연료의 예로 돌아가 보겠습니다.
자동차 연료 탱크의 용량이 50리터인 경우 연료를 채우는 데 얼마를 지불해야 합니까? 주유소에서 리터당 가격에 따라 다르겠죠? Ethereum의 Gas 가격은 동일합니다! 10 Gas 비용의 트랜잭션을 수행하려는 경우 지불하는 수수료는 Gas 단위당 가격에 따라 다릅니다.
그렇다면 가스 단위당 가격은 어떻게 알 수 있습니까? 오해의 소지가 있는 말이 있습니다. 원하는 만큼 주문할 수 있습니다. 기술적인 관점에서 볼 때 잘못된 것은 없지만 Gas의 가격을 알기 위해서는 더 많은 지식이 필요합니다.
이더리움 분석 시리즈의 이전 기사를 읽으면 이더리움 트랜잭션 구조에 gasPrice 및 gasLimit가 포함되어 있음을 기억해야 합니다.
gasPrice는 트랜잭션 발신자가 가스 단위당 지불하고자 하는 가격(Wei로 측정)을 나타냅니다. 즉, 트랜잭션 발신자는 트랜잭션 발신자가 지불할 의사가 있는 가스 단위당 가격을 사용자 정의할 수 있습니다. 거래 비용이 10 Gas이고 우리가 3 Wei/Gas를 지불할 용의가 있다고 가정하면 이 거래를 전송하는 데 드는 총 비용은 30 Wei입니다(실제 값이 아니라 모든 사람이 계산 방법을 이해할 수 있음).
gasLimit은 트랜잭션 발신자가 트랜잭션을 실행하기 위해 수락할 수 있는 Gas의 양을 나타냅니다. 때로는 트랜잭션을 실행하는 데 얼마나 많은 Gas가 필요한지 정확히 알 수 없거나 스마트 계약에 무한 루프 버그가 있기 때문에 gasLimit가 없으면 보낸 사람의 계정 잔액이 잘못 실행됩니다. gasLimit은 오산이나 버그로 인해 누군가가 계정의 모든 이더를 소비하는 것을 방지하기 위한 보안 메커니즘입니다.
보조 제목
갱부
갱부
블록은 트랜잭션 모음을 포함하는 데이터 구조이며 이더리움의 채굴자 노드는 체인에 블록 생성을 담당합니다. 블록을 생성할 때 채굴자는 트랜잭션 캐시 풀(패키징을 기다리는 트랜잭션 더미)에서 트랜잭션을 선택하고 블록 생성을 시작합니다.
지금은 이더리움 채굴 알고리즘에 대해 자세히 다루지 않겠습니다(후속 기사에서 논의될 수도 있음). 채굴은 비용이 많이 드는 과정이라는 점만 기억하면 됩니다. 그것을 할 광부가 없습니다!
이더리움에서는 채굴자가 블록을 성공적으로 생성할 때마다 일정한 양의 블록 보상과 삼촌 블록 참조에 대한 보상(여기서는 확장되지 않음)을 얻을 수 있으며 동시에 이 블록에 포함된 모든 거래 수수료를 받을 수 있습니다. gasPrice가 트랜잭션에 설정될수록 채굴자는 더 많은 트랜잭션 수수료를 받을 수 있습니다. 광부 보상에 대해 더 알고 싶다면 여기를 참조하십시오.
간단한 시나리오를 가정해 봅시다. Bob은 계정에 200 wei가 있고 John은 계정에 100 wei가 있으며 둘 다 90 Gas 비용이 드는 거래를 보내려고 합니다.
블록으로 묶을 트랜잭션 선택 링크에 들어갈 때 채굴자들은 수수료가 더 높은 트랜잭션을 선택하는 경향이 있습니다. 이 예에서 Bob의 gasPrice는 John의 두 배입니다; 두 트랜잭션 모두 90 Gas가 필요하므로 Bob의 트랜잭션을 선택한 채굴자는 두 배의 가스 가격 보상을 받을 수 있습니다.

이미지 설명
-채굴자들은 가스 가격이 가장 높은 트랜잭션을 선택합니다-
거래 발신자에게 지불함으로써 광부에게 보상하는 메커니즘은 이더리움에서 자체 규제 경제 시스템을 형성합니다. 트랜잭션 발신자는 트랜잭션 비용을 줄이기 위해 가능한 모든 조치를 취하는 반면 채굴자는 항상 이익을 극대화하기를 희망하며 둘은 균형을 이룹니다. 트랜잭션 발신자로서 gasPrice를 더 높게 설정하면 채굴자가 트랜잭션을 패키징하려는 동기가 더 강해지고 트랜잭션이 블록에 더 빨리 포함될 수 있음을 의미합니다.
보조 제목
결론적으로
결론적으로
이 기사에서 우리는 이더리움 트랜잭션을 실행하면 자동차가 연료를 소비하는 것처럼 가스를 소비한다는 것을 배웠습니다. 이 기사가 컴퓨팅 비용과 이더리움 서비스를 받기 위해 비용을 지불해야 하는 이유에 대한 아이디어를 제공했기를 바랍니다.
우리는 또한 gasPrice와 gasLimit의 중요성에 대해 논의했는데, 스마트 계약에 버그나 계산 착오가 있는 경우 gasPrice는 사용자가 이더를 잃지 않도록 보호할 수 있습니다.
또한 거래 수수료의 경제적 메커니즘과 채굴자가 수익을 극대화하기 위해 거래를 선택하는 방법도 연구합니다. 이제 우리는 거래가 더 일찍 패키지화될 수 있도록 채굴자에게 보내는 거래를 더 매력적으로 만들기 위해 gasPrice를 조정하는 방법을 알고 있습니다.


