이더리움과 스마트 컨트랙트

이더리움이란 무엇인지, 그 위에서 스마트 컨트랙트가 어떻게 실행되는지, 이더는 어디에 쓰이는지, 쉽게 바꿀 수 없는 코드의 위험은 무엇인지 알아봅니다.

3 분 · 559 단어업데이트: #기초#이더리움#스마트 컨트랙트

비트코인은 은행을 거치지 않고도 인터넷으로 가치를 보낼 수 있음을 보여 줬습니다. 이더리움은 이 아이디어를 한 걸음 더 밀고 나갔습니다. 블록체인이 결제뿐 아니라 어떤 프로그램이든 실행할 수 있다면 어떨까요? 2015년에 출범한 이더리움은 블록체인 위에 존재하며 작성된 그대로 실행되는 프로그램, 즉 스마트 컨트랙트의 대표 플랫폼이 됐습니다.

이더리움이란

이더리움은 전 세계의 수많은 독립적인 컴퓨터가 유지하는 퍼블릭 블록체인입니다. 비트코인처럼 잔액과 트랜잭션의 공유 기록을 관리합니다. 비트코인과 달리 프로그램의 코드와 데이터까지 보관하며, 모든 노드가 그 코드를 실행해 같은 결과에 도달할 수 있습니다.

이더리움의 기본 화폐는 이더(ETH)입니다. 이더의 주된 역할은 두 가지입니다.

  • 트랜잭션과 스마트 컨트랙트 실행에 드는 수수료, 즉 가스비 지불
  • 이더리움이 지분증명을 쓰기 때문에, 스테이킹을 통한 네트워크 보안

스마트 컨트랙트란

스마트 컨트랙트는 블록체인에 배포되어 고유한 주소를 갖는 프로그램입니다. 일단 배포되면 누구나 트랜잭션을 보내 그 함수 중 하나를 호출할 수 있습니다. 그러면 컨트랙트는 코드에 따라 움직입니다. 자금을 보관하거나 보내고, 데이터를 기록하고, 다른 컨트랙트를 호출할 수 있습니다.

자판기를 떠올리면 쉽습니다. 알맞은 입력을 넣으면, 점원이 판매 여부를 판단할 필요 없이 기계가 미리 정해진 결과를 내놓습니다. 「컨트랙트(계약)」라는 말은 다소 오해를 부릅니다. 스마트 컨트랙트는 법적 계약이 아니라, 동작을 예측할 수 있는 코드일 뿐입니다.

어떻게 실행되나

이더리움의 스마트 컨트랙트는 모든 노드가 구현하는 표준 실행 환경인 이더리움 가상 머신(EVM) 안에서 실행됩니다. 개발자들은 보통 솔리디티(Solidity) 같은 언어로 컨트랙트를 작성하고 EVM 코드로 컴파일합니다. 모든 노드가 같은 입력에 대해 같은 코드를 실행하므로, 모두가 같은 새 상태에 도달합니다.

EVM의 모든 연산에는 가스 비용이 매겨집니다. 이는 끝없이 실행되거나 네트워크에 과부하를 주는 프로그램으로부터 네트워크를 보호합니다. 트랜잭션을 시작한 사람이 그 트랜잭션이 사용한 연산 비용을 냅니다.

일반 프로그램과 무엇이 다른가

  • 투명성: 컨트랙트 코드와 그 활동 내역이 블록체인에 공개됩니다.
  • 불변성: 배포된 코드는 일반적으로 수정할 수 없습니다. 일부 컨트랙트는 업그레이드할 수 있게 만들어지는데, 이는 누군가 이를 바꿀 권한을 쥐고 있다는 뜻입니다.
  • 중앙 운영자 없음: 일단 배포되면 컨트랙트는 네트워크가 돌아가는 한 계속 작동합니다.
  • 조합성: 컨트랙트끼리 서로 호출할 수 있어, 개발자들은 기존 서비스 위에 새 서비스를 쌓아 올립니다.

스마트 컨트랙트로 만드는 것들

  • 토큰: 많은 암호화폐와 스테이블코인은 공통 표준을 따르는 스마트 컨트랙트입니다. 서로 대체 가능한 토큰을 위한 ERC-20이 대표적입니다.
  • 탈중앙화 거래소와 대출 프로토콜. 흔히 디파이(DeFi)라는 이름으로 묶입니다.
  • NFT: 특정 대상의 소유권을 나타내는 고유한 토큰으로, ERC-721 같은 표준을 따릅니다.
  • DAO: 구성원들이 컨트랙트를 통해 공동 자금의 사용처를 투표로 정하는 조직입니다.

주요 이정표

이더리움은 노드 운영자들이 채택하는 네트워크 업그레이드를 통해 변화합니다. 중요한 몇 가지는 다음과 같습니다.

  • 2015년: 작업증명 방식으로 이더리움 메인넷 출범.
  • 2021년 8월: 런던 업그레이드로 EIP-1559가 도입되어 수수료 구조가 바뀌고, 수수료의 일부가 소각되기 시작.
  • 2022년 9월: **더 머지(The Merge)**로 이더리움이 작업증명에서 지분증명으로 전환.

이후의 업그레이드들도 네트워크의 세부 사항을 계속 바꾸고 있으며, 예정된 업그레이드는 이벤트 캘린더에서 확인할 수 있습니다.

알아 둬야 할 위험

코드가 작성된 그대로 실행된다는 사실은 강점이자 위험입니다.

  • 버그: 컨트랙트에 실수가 있으면 공격자가 이를 악용할 수 있고, 도난당한 자금은 대개 되찾을 수 없습니다.
  • 업그레이드 키: 팀이 컨트랙트를 바꿀 수 있다면, 이용자는 그 팀이 정직하게 행동하고 키를 안전하게 관리하리라고 믿어야 합니다.
  • 악성 컨트랙트: 사기꾼들은 정상처럼 보이지만 승인한 사람의 지갑을 털어 가는 컨트랙트를 배포합니다.
  • 되돌릴 수 없음: 잘못된 주소나 유해한 컨트랙트로 보낸 트랜잭션은 취소할 수 없습니다.

보안 업체의 감사는 위험을 줄여 주지만 없애 주지는 않습니다. 감사를 받은 컨트랙트도 공격당한 사례가 있습니다.

확장성과 레이어 2

모든 노드가 모든 트랜잭션을 실행하기 때문에 이더리움 메인 네트워크의 처리 용량은 제한적이며, 수요가 많을 때는 수수료가 오릅니다. 더 많은 활동을 처리하기 위해 많은 프로젝트가 트랜잭션을 따로 처리한 뒤 결과를 이더리움에 다시 기록하는 레이어 2 네트워크를 활용합니다.

핵심 정리

  • 이더리움은 스마트 컨트랙트라는 프로그램을 실행하는 블록체인입니다.
  • 이더는 가스비를 내는 데 쓰이고, 스테이킹을 통해 네트워크를 지킵니다.
  • 스마트 컨트랙트는 투명하고 바꾸기 어려워 신뢰에 도움이 되지만, 그만큼 버그의 대가가 큽니다.
  • 토큰, 디파이, NFT, DAO는 모두 스마트 컨트랙트 위에 만들어집니다.