$460,782의 실수: Blockmason Link가 이 이더리움 개발자에게 3,150 Ether을 절약해줄 수 있었던 방법

$460,782의 실수: Blockmason Link가 이 이더리움 개발자에게 3,150 Ether을 절약해줄 수 있었던 방법

in 분류되지 않음

몇 분 사이에 50만불 가까이 잃어 보신 적이 있나요? 어떤 사람들에게는 상상도 하기 힘든 금액입니다. 아마 투자 은행가 같은 이들에게는 반올림 오차 같은 것이겠죠. 하지만, 2019년 2월 19일, 어떤 이가 바로 그런 실수를 했습니다. 4건의 거래에서, 알려지지 않은 거래 당사자가 거래 수수료로 3,150 Ether (ETH)을 낭비했습니다. 이 금액은 현재 환율로 계산하면 미화 $460,000 이상의 자금을 낭비한 것입니다.

이렇게 질문하게 됩니다. 대체 어떻게 된 걸까요? 가장 중요한 것은, 해당 개발자, 거래소, 또는 기타 거래 당사자가 어떻게 이런 실수를 방지할 수 있었을까요? 정확히 어떻게 이런 큰 손실이 발생했는지 알아보죠.

이더리움 거래 또는 “가스” 수수료 이해하기

어떤 실수를 한 건지 알아보기 전에, 이더리움 블록체인에서 거래 수수료가 부과되는 방식을 이해하는 게 도움이 될 것입니다. 이더리움 거래 수수료에는 두 가지 구성 요소가 있습니다. “가스 한도” “가스 가격”입니다. (주의: 자동차에 연료를 주입하는 게 이런 수수료 부과를 이해하는 가장 간단한 비유이기 때문에 “가스”라고 하는 것입니다.)

“가스 한도”는 사는 지역에 따라 갤런이나 리터 같이 사용되는 연료 단위와 유사합니다. “한도”인 이유는 거래를 처리하기 위해 이더리움 블록체인 채굴자에게 사용할 의향이 있는 가스 단위의 최대 수를 시사하기 때문입니다.

“가스 가격”은 해당 연료 단위에 지불할 비용입니다. 가스 가격을 올리거나 내리는 것이 거래가 처리되는 시기에 영향을 미칠 수 있습니다. 높은 가스 가격을 지불한다면, 거래가 블록체인으로 더 빨리 채굴되거나 처리될 가능성이 높습니다. 낮은 가스 가격은 향후 블록이 채굴되길 기다려야 할 수도 있다는 것을 의미할 수도 있습니다.

그런 사실을 병합하여, 이더리움 거래 수수료 합계액을 “가스 한도” x “가스 가격”으로 계산할 수 있습니다. ETH Gas Station에 따르면, 현재 “표준” 가스 가격은 5 gwei(1 gwei는 0.000000001 Ether)이며, “가스 한도”는 21,000입니다. 둘을 곱하면, 거래 수수료가 0.000063 ETH으로, 미화로 대략 $0.009입니다.

링크에 관심이 있으세요?
즉시 업데이트 받기
공식 카카오톡에 참여하고

개발자가 그렇게 낮은 비용으로 이더리움 블록체인에 거래를 작성할 수 있다는 사실이 이런 거대한 $460,728의 실수에 대해 훨씬 더 좌절감을 느끼게 만듭니다.

한 번의 아주 작은 코딩 실수 = 3,150의 낭비된 Ether

이제 가스 가격으로만 3,000의 낭비된 Ether을 초래한 4건의 거래를 살펴보죠. 2월 19일에 진행된 이 4건의 거래에서 보실 수 있듯이, 총 3,150 Ether이 거래 수수료로 지불됐습니다:

2,100 ETH: https://etherscan.io/tx/0x1f73b43dc9c48cc131a931fac7095de9e5eba0c5184ec0c5c5f1f32efa2a6bab

420 ETH: https://etherscan.io/tx/0x464e50e8ade15ad883f80fd173f6afd85efdf15413892625fe0146fbe5fecd92

420 ETH: https://etherscan.io/tx/0xcb59748b9b7b9732f04b66dde0009a1e4856a50ed8ff68a0dedbaa5e57807d31

210 ETH: https://etherscan.io/tx/0x5691ddae752652bd579da5b45e84d5b90ae35acce5cbd308a1574c31f722608f

각 거래가 21로 나뉜다는 것을 알아차리셨나요? 이는 우연이 아닙니다. 저희가 위에서 알려드렸던 것처럼, 일반적으로 사용되는 가스 한도는 21,000입니다. 그게 이 사건이 개발자가 저지른 코딩 오류라는 주장의 단서 중 하나입니다.

각 예에서, 거래된 Ether의 총 가치는 거래 수수료에 21,000을 곱한 값입니다. 이 4건의 거래는 한 월렛에서 다른 월렛으로 Ether을 이체하고자 의도했을 것입니다. 개발자 코드의 실수로 (가스 가격 대신) 거래 가치를 가스 한도에 곱하고 해당 합계를 거래 수수료로 사용했을 가능성이 있습니다.

예를 들어, 첫 번째 거래는 0.1 Ether을 보내려는 것인데 거래 수수료가 2,100 Ether이었습니다.

21000 (가스 한도) * 0.1 Ether (거래 금액) = 2,100 Ether (실수로 계산된 거래 수수료)

이 거래를 원래 의도했을 거래와 비교하세요:

21000 (가스 한도) * 0.000000005 Ether (가스 가격) =  0.000063 Ether (적정한 거래 수수료)

보셨듯이, 코드의 작은 계산 오류가 상당한 손실을 초래할 수 있습니다!

저희 최신 프로젝트인 Link가 이런 문제를 완전히 방지할 수 있었다는 것을 저희가 직접 말씀드린다는 점을 양해해 주세요. Link는 앱, 웹 및 기타 소프트웨어 개발자가 아무런 블록체인 경험 없이도 자신들의 애플리케이션에 스마트 계약과 이더리움 같은 프로그래밍 방식의 블록체인을 사용하게 해주는 저희의 서비스 개념 인프라입니다.

Link를 사용하면, 개발자가 프로그래밍 방식의 블록체인에 작성된 모든 스마트 계약을 위한 고전적이고 전통적인 웹 기반 API를 만들 수 있습니다. 개발자가 자신의 앱에서 사용하고 싶은 스마트 계약을 Link에 추가하면, 다른 모든 API처럼 이러한 스마트 계약을 읽고 작성할 수 있습니다.

Link가 이더리움 거래 수수료 계산을 처리하므로, 저희 사용자는 누구도 위에서 말씀드린 사례와 같은 실수에 대해 걱정하실 필요가 없습니다. 개발자는 가스나 다른 비용을 계산할 필요 없이 이더리움 블록체인에 작성하는 애플리케이션을 운영할 수 있습니다.

이더리움이나 다른 프로그램 방식의 블록체인을 사용하시는 개발자라면, 여기에서 Link에 대해 더 알아보실 수 있습니다: https://blockmason.link/ko/.

마지막으로, 외부자의 관점으로는 거래 수수료로 막대한 과도 지출을 하는 것의 진짜 동기를 아는 게 불가능하다는 점을 유념하세요. 일부 Reddit 사용자들은 채굴자나 다른 당사자가 훔친 Ether을 세탁하려는 것이라고 생각했습니다. 어떤 이들은 “팻 핑거” 오류로 의도된 가스 금액이나 소프트웨어 코드의 잘못된 라인을 잘못 입력했을 거라 생각합니다. 어떻게 되었든지 간에, 거의 50만불 가치의 Ether을 쉽게 방지할 수 있는 버그로 잃는 것은 비극인 게 분명합니다.

만약 귀하가 3,150 Ether을 수수료로 잃은 개발자라면, 저희에게 연락해 주세요. Link의 작동 원리와 향후 어떻게 이런 실수를 막을 수 있는지 얼마든지 보여드리겠습니다!

공식 카카오톡에 참여하고소식을 확인하세요!