이더 리움 계정, 거래, 블록 당 가스 및 가스 한도

Hudson Jameson의 우수한 기사 러시아어 번역

추가 한 항목은 기울임 꼴로 표시됩니다.

이 기사는 사람들이 이더 리움 네트워크에서 블록 크기를 선택할 때 계정, 거래, 가스 및 채굴 자의 역할의 기본 메커니즘을 이해하도록 돕는 것을 목표로합니다. 수정을 환영합니다 🙂

계정이란 무엇입니까?

EOA 및 계약 계정

Ethereum 네트워크에는 두 가지 유형의 계정이 있습니다.

이 구분은 향후 Metropolis 업데이트에서 더욱 추상적이 될 것입니다.

외부 계정 (EOA)

외부 통제 계정 :

계정 계약

계약 :

이더 리움 블록 체인의 모든 움직임은 계정의 거래로 인해 됩니다. 계약 계정이 거래를 수신 할 때마다 거래의 일부로 수신 된 지침 및 입력 매개 변수에 따라 코드가 실행됩니다. 계약 코드는 새 블록을 확인하는 작업의 일부로 네트워크에 참여하는 * 각 노드의 Ethereum Virtual Machine (EVM)에 의해 실행됩니다.

* 나는 네트워크상의 노드의 의미를 보는 것이 좋습니다 Andreas Antonopoulos의 연설을 번역 한이 비디오 , 그것은 비트 코인에 관한 것이지만 원칙은 어쨌든 매우 유사합니다 .

거래 및 메시지 란 무엇입니까?

거래

이더 리움에서 “트랜잭션”이라는 용어는 외부 계정 (EOA)에서 블록 체인의 다른 계정으로 보낼 메시지를 저장하는 서명 된 * 데이터 패킷을 의미합니다.

거래 내용 :

메시지

계약에는 다른 계약에 “메시지”를 보낼 수있는 기능이 있습니다. 메시지는 직렬화되지 않고 이더 리움 런타임에만 존재하는 가상 개체입니다. 함수 호출로 생각할 수 있습니다.

메시지에 포함 된 내용 :

메시지는 외부 계정이 아닌 계약에 의해 생성된다는 점을 제외하면 거래와 매우 유사합니다. 현재 코드를 실행중인 계약이 메시지를 생성하고 실행하는 CALL 또는 DELEGATECALL 작업을 트리거하면 메시지가 생성됩니다. 메시지는 종종 “내부 트랜잭션”이라고도합니다 ( “내부 트랜잭션”-etherscan의 모든 주소에서 이러한 탭을 볼 수 있습니다. 예를 들어 여기 ). 거래와 마찬가지로 메시지는 수신자의 계정이 코드를 실행하도록합니다. 따라서 계약은 외부 계정과 동일한 방식으로 다른 계약과 상호 작용할 수 있습니다. 사람들은 “메시지”를 의미 할 때 “트랜잭션”이라는 용어를 사용하는 경우가 많으므로이 용어는 단계적으로 폐지됩니다.

가스 란 무엇입니까?

이더 리움은 이더 리움 가상 머신 ( 이더 리움 가상 머신-EVM )이라는 블록 체인 런타임 환경을 사용합니다. 네트워크에 참여하는 각 노드는 블록 검증 프로토콜의 일부로 EVM을 실행합니다. 그들은 블록의 모든 트랜잭션을 통해 확인하고 EVM 내부의 트랜잭션에 의해 트리거 된 코드를 실행합니다. 네트워크의 모든 전체 노드 *는 동일한 계산을 수행하고 동일한 값을 저장합니다. 계약 시작이 모든 노드에서 중복된다는 사실은 계약을 매우 비싸게 만들고, 결과적으로 블록 체인을 외부에서 수행 할 수있는 계산에 사용하지 않는 인센티브를 생성합니다. 각 작업에는 가스 단위로 표시되는 자체 가격이 있습니다. 계약이 사용할 수있는 각 작업에는 일정량의 가스가 필요합니다. 다양한 작업에 필요한 구식 가스량 목록은 여기에서 볼 수 있습니다.

가스 및 거래 가치

각 거래에는 가스 한도 ( startGas 라고도 함) 값과 가스 단위당 지불하고자하는 커미션을 포함해야합니다. 채굴자는 거래를 블록에 포함하고 수수료를 받을지 여부를 선택할 수 있습니다. 현재 모든 거래는 조만간 블록에 포함되지만 거래 수수료의 크기는 거래가 블록에 포함되는 속도에 영향을줍니다.원본 메시지 및 후속 메시지 (원래 메시지에 의해 발생했을 수 있음)를 포함하여 트랜잭션으로 인해 발생한 트랜잭션에 의해 사용 된 총 가스량이 가스 한도보다 작거나 같으면 트랜잭션이 성공합니다. 가스의 총량이 가스 한도를 초과하면 발생한 모든 변경 사항이 0으로 재설정되지만 거래는 여전히 유효한 것으로 간주되며 채굴자가 수수료를 상각 할 수 있습니다. 블록 체인은 거래를 수행하려는 시도가 있었지만 충분한 가스가 제공되지 않았고이 거래를 계산하는 동안 발생한 모든 변경 사항이 취소되었음을 보여줍니다. 한도 미만이 사용 된 경우 초과 가스는 모두 Ether 형태로 보낸 사람에게 반환됩니다. 가스 비용의 예비 추정치는 대략적인 값에 불과하므로 많은 사용자가 거래가 승인 될 수 있도록 고의적으로 높은 가스 한도를 설정합니다. 이것은 정상입니다. 사용하지 않은 모든 가스는 반환됩니다 *.
* 그러나 지나치게 큰 가스 ​​한도를 설정해서는 안됩니다. 블록 당 가스 한도를 초과하면 채굴자가 거래를 거부합니다. 또한 ICO 중에 가스 한도를 지나치게 높게 설정하지 마십시오. ICO 전후에 갑자기 트랜잭션을 보내면 트랜잭션이 오류를 반환하고 전체 가스 한도가 사용됩니다 (이 경우 수십 또는 수백 달러의 비용이들 수 있습니다. 필요한 ICO에 참여할 수도 없습니다)

거래 비용 계산

거래 당 이더 리움 비용은 다음 두 가지 요소에 따라 달라집니다.

총 비용 = gasUsed * gasPrice

사용 된 가스

EVM의 각 작업에는 소비되는 일정량의 가스가 할당됩니다. gasUsed는 트랜잭션에서 수행 된 모든 트랜잭션에 대한 모든 가스의 합계입니다.

사용 된 가스를 계산하는 EstimatesGas API가 있으며 사용할 수 있지만 몇 가지주의 사항이 있습니다.

gasPrice (가스 가격)

사용자는 거래를 생성하고 서명하고, 각 사용자는 지불 할 가스 가격을 결정할 수 있습니다 (0 일 수도 있음). 그러나 Ethereum 고객 (Homestead)의 기본 가스 가격은 0.02e12wei (20Gwei)입니다. 때문에 채굴 자들은 수입을 최적화하기 위해 노력하고 있으며 대부분의 거래는 20Gwei의 가스 가격으로 보내집니다. 채굴 자들이 더 낮은 (또는 제로) 가스 가격으로 거래를 수락하도록 설득하는 것은 어려울 것입니다 *

* 번역을 약간 변경했습니다. 기사의 정보가 오래되었습니다 (0.05e12 wei). 게다가 실제로 몇 초가 아닌 1 ~ 3 분을 기다릴 의사가 있다면 가스 가격 2Gwei로 거래를 보낼 수 있습니다. em> .

거래 가격의 예

허락을 받아 멋진 MyEtherWallet 팀에서이 예제와 비유를 빌려 보겠습니다. 아름답게 쓰여진 가스 가이드를 읽어보세요. 그들은 또한 훌륭한 유틸리티가있는 페이지를 가지고 있는데, 무엇보다도 에테르를 하위 단위 (wei, Gwei 등)로 변환 할 수 있습니다.

가스 한도는 자동차의 리터 / 갤런 / 연료 단위 수로 생각할 수 있습니다. 가스 가격은 리터 / 갤런 / 연료 단위당 비용으로 생각할 수 있습니다.

자동차를 타는 경우 가격은 갤런 (단위) 당 2.50 달러 (가격)입니다. 이더 리움에서는 가스 (단위) 당 20Gwei (가격)입니다. 전체 가스 탱크를 채우려면 $ 2.50 = $ 25에 10 갤런이 필요합니다. Ethereum을 사용하면 20Gwei = 0.00042 ETH에서 21,000 가스.

따라서 총 거래 수수료는 0.00042 Ether입니다.

토큰을 보내는 데 일반적으로 ~ 50,000 ~ ~ 100,000 가스가 필요하므로 총 거래 수수료는 0.001 ETH ~ 0.002 ETH로 증가합니다.

“블록 당 가스”란 무엇입니까?

블록 당 가스 제한은 블록에 들어갈 수있는 트랜잭션 수를 결정하기 위해 블록에 허용되는 최대 가스량입니다. 예를 들어, 5 개의 트랜잭션이 있고 각 트랜잭션에는 10, 20, 30, 40 및 50의 가스 한도가 있습니다. 블록 당 가스 한도가 100이면 처음 4 개의 트랜잭션이 블록에 들어갈 수 있습니다. 채굴자는 블록에 넣을 거래를 결정합니다. 일부 채굴 자들은 마지막 2 개의 트랜잭션을 블록 (50 + 40)에 넣으려고 할 수 있으며 첫 번째 트랜잭션 (10)만을위한 공간이있을 것입니다.현재 블록 당 가스 한도보다 많은 가스를 사용하는 트랜잭션을 활성화하려고하면 네트워크에서 거부되며 이더 리움 클라이언트는 “트랜잭션이 블록 당 가스 한도를 초과했습니다”라는 메시지를 표시합니다. 예제는 Ethereum StackExchange의이 게시물에서 가져온 것입니다.

ethstats.net에 따르면이 글을 쓰는 시점에서 블록 당 가스 한도는 4,712,357 가스이며, 이는 가스 한도가 21,000 인 약 224 개의 트랜잭션이 1 블록에 들어갈 수 있음을 의미합니다 (평균적으로 새 블록이 15-20 초마다 생성됨). ). 이 프로토콜을 사용하면 블록 채굴자가 모든 방향으로 블록 당 가스 제한을 1/1024 (0.0976 %)까지 조정할 수 있습니다.

블록 가스 한도는 누가 결정합니까?

광부. 규제 된 프로토콜과는 별도로 최소 가스 제한이 4,712,388 인 전략이 대부분의 클라이언트에 대한 기본값입니다. 광부는 이것을 변경할 수 있지만 많은 사람들은 기본 설정을 변경하지 않고 그대로 둡니다.

블록 당 가스 제한은 어떻게 변경됩니까?

Ethereum 채굴자는 geth 또는 Parity에 연결하는 ethminer와 같은 채굴 프로그램을 사용합니다. geth 및 Parity에는 채굴자가 변경할 수있는 설정이 있습니다. geth에서 채굴을위한 명령 줄 설정은 여기에 있고 Parity에 대한 설정은 여기에 있습니다.

Ethereum DoS 란 무엇입니까?

최근 이더 리움 네트워크의 속도 저하, 거래로 막힘, 사용 불능에 대한 의견이 많이 나왔습니다. 이러한 의견은 속도 저하를 이더 리움 네트워크의 “DoS”로 설명합니다. Ethereum 네트워크에서 서비스 거부 ( 서비스 거부 ) 사건은 블록이 지속적으로 가득 차고 보류중인 트랜잭션이 많을 때 발생합니다. 아시다시피 채굴자는 거래에 첨부 된 수수료에 따라 블록에 포함 할 거래를 선택할 수 있습니다. 대기열 (또는 기술적으로는 트랜잭션 풀)에 수십만 개의 트랜잭션이있는 경우 비표준 시간당 지연이 발생할 수 있습니다. DDoS (분산 서비스 거부) 사건은 악의적 일 수도 있고 아닐 수도 있습니다.

악성 DoS

지난 가을, 이더 리움은 소위 트랜잭션 스팸 공격을 통해 알려지지 않은 사람이나 그룹의 공격을 받았습니다. 공격은이 게시물에 설명되어 있습니다.

공격자는 클라이언트 (노드 및 채굴 자)가 계산하기 어렵지만 네트워크에 추가하기에는 매우 저렴한 스마트 계약에서 특정 코드를 지속적으로 호출하여 DoS 공격을 수행했습니다.

공격 중에 채굴 자들은 블록 당 가스 한도를 150 만 개로 줄이고 다른 경우에는 2 백만 개로 줄 이도록 요청 받았습니다. 채굴 자에게 네트워크 공격 중에 블록 당 가스 제한을 줄 이도록 요청받은 다른 경우도있었습니다.

비 악성 DoS

이와 같은 사고는 네트워크에 “대기열”트랜잭션이 너무 많아서 처리하는 데 비정상적으로 오랜 시간이 걸리는 경우에 발생합니다. 최근 일부 ICO의 인기로 인해 네트워크에서 거래 정체가 발생했습니다. Infura의 직원들은 그러한 사건의 기술적 세부 사항에 대한 게시물을 작성했습니다.

블록이 계속 꽉 차 있어도 블록 당 가스 제한이 변경되지 않는 이유는 무엇입니까?

주된 이유 : 광부가 적응 형 가스 캡을 사용하지 않습니다.

이더 리움 프로토콜에는 채굴자가 가스 한도에 투표 할 수있는 메커니즘이 내장되어 있으므로 하드 포크없이 용량을 늘릴 수 있습니다. 이 메커니즘은 원래 채굴 자들이 최소 470 만 개 가스 한도에 투표하는 표준 전략과 결합되었지만 필요한 양이 더 많을 경우 최근 (지수 슬라이딩 1024 블록) 평균 가스 한도의 150 %에 도달 할 수있어 용량이 증가함에 따라 증가 할 수 있습니다. 스팸 방지에는 한계가 있습니다.

위의 악성 DoS 섹션에서 설명한 바와 같이, 과거에 채굴 자들은 새로운 패치가 출시 될 때까지 공격을 억제하기 위해 블록 당 기본 가스 설정을 변경하라는 메시지를 받았습니다. 문제는 일부 채굴 풀이 공격이 중단 된 경우에도 설정을 다시 변경하지 않았다는 것입니다.약 한 달 전에 채굴 자들은 적응 형 가스 한도 기능을 다시 도입하기 위해 가스 한도 및 가격 설정을 변경하라는 요청을 받았습니다. 최근 ICO는 블록을 매우 빠르게 채우고 이더 리움 네트워크를 지연 시켰습니다.

ETH 주유소 *는 채굴 풀이 블록 당 가스에 투표하는 방법에 대한 최신 정보를 찾는 모든 사람에게 훌륭한 리소스입니다.

* 현재 최소 안전 가스 가격에 대한 최신 정보도 볼 수 있습니다 (작성 당시에는 가스 한도가 21,000 인 정기 거래의 경우 0.7Gwei 또는 약 $ 0.003입니다. !)

블록 체인에 관한 저의 다른 교육 기사와 진행중인 ICO에 대한 생각은 텔레 그램 채널에서 찾을 수 있습니다. https://t.me/intelligent_crypto_investor