본문 바로가기
블록체인

이더리움 기본개념

by 매화of사군자 2021. 5. 9.

인프런 강의 중 "이더리움 입문 바이블:모드 이더리움 입문자를 위하여"를 학습한 후 정리한 내용입니다.


비트코인은 은행과 같은 중앙 기관의 중재없이 돈을 송금하는 데에 사용된다. 비탈릭 부테린은 이런 개념을 송금 뿐만 아니라 다양한 분야에 적용하고자 하였다.

 

이더리움은 퍼블릭 블록체인 기반의 분산 컴퓨팅 플랫폼이다. 이 플랫폼은 중단 시간, 검열, 사기 또는 제 3자의 간섭없이 항상 실행되도록 보장한다. 플랫폼에 있는 모든 노드들은 서로 연결되어 있으며 코드와 데이터의 전체 복사본을 가지고 있다.

 

이더리움은 기존의 서버-클라이언트 아키텍쳐와 다르게 모든 클라이언트들이 응용 프로그램의 자체 인스턴스와 통신한다. 모든 클라이언트가 연결할 중앙 서버가 없다. 그러므로 상호작용하려는 모든 노드는 실행중인 블록체인의 전체 복사본이 필요하다.

 

우리나라에는 원(\)이라는 통화가 있듯이 이더리움에는 이더(ether)라는 통화가 있다. 이 이더를 각 나라의 화폐와 교환할 수 있는 거래소가 존재하는 것이다. 1이더는 10^18 웨이이다. 이 개념은 가스 개념을 이해할 때 필요한 개념이므로 이러한 단위가 있다는 것을 언급하고만 지나간다.

 

이더리움에는 기존 서비스의 아이디와 패스워드와 같은 로그인 기능과 비슷한 인증을 할 수 있도록 만들어주는 것이 주소이다. 이더리움의 주소에는 각 해당 개인키가 있다. 즉 이더리움에 접속, 상호작용하려면 주소 + 개인키의 쌍이 있어야 한다는 것이다. 이더리움의 주소는 공개되어 있지만 개인키는 공개되어있지않다. 주소 + 개인키는 그 어디에도 저장되어 있지 않다. 사용자만이 이 정보를 통제할 수 있는것이다.

 

주소 + 개인키의 조합을 계정이라고 한다. 계정에는 2가지 유형이 있는데 각 외부 소유 계정(EOA), 컨트랙트 계정이라고 불리운다.  EOA는 공개 주소 + 개인키 조합을 말하며 컨트랙트 계정에는 상응하는 개인키가 없다. 컨트랙트 계정은 스마트 컨트랙트를 블록체인에 배포할 때 생성된다. 다른 계정과 이더를 송수신하고 관련된 코드를 담고 EOA나 다른 컨트랙트의 호출을 받아 트랜잭션을 발생시킨다.

 

이더리움에서의 지갑이란 이더리움 계정을 저장하고 관리하는 데 사용되는 소프트웨어 라이브러리이다. 지갑의 종류에는 비결정적 지갑결정론적 지갑이 있다. 결정론적 지갑은 모든 키가 시드(seed)라는 단일 시작 지점에서 파생된다. 이 시드를 활용하여 사용자는 다른 정보를 입력하지 않고 지갑을 쉽게 백업하고 복원할 수 있게 해준다.(메타마스크에서 처음에 기억하고 입력하라고 하는 문자열을 말한다.)

 

이더리움은 퍼블릭 블록체인으로써 블록을 합의하는데에는 비용이 발생한다.(보상이 없다면 그 누구도 자신의 시간과 노력을 들여 블록을 합의해주지 않기 때문이다) 이더리움에서 트랜잭션을 실행하려면 채굴자에게 보상을 주어야한다. 이때의 보상이 이더이다. 그렇다면 이 이더는 얼마나 주어야할까? 답을 내기 전에 가스라는 개념에 대해서 알아야한다. 가스란 스마트 컨트랙트안에 있는 연산의 단위(얼마나 연산이 힘든지)이다. 가스 가격은 트랜잭션 생성자가 "저는 이 트랜잭션 가스당 XXX만큼의 Gwei를 지불할 생각이 있습니다"라고 말하는 것과 같다. 만약 트랜잭션이 10000 가스를 소비하고 가스가격을 3Gwei로 설정하면 해당 트랜잭션에 대한 수수료로 10000 * 3 Gwei를 지불하게 됩니다. 그러므로 이더는 얼마나 주어야할까?에 대한 답은 트랜잭션 발생자 마음에 달려있다고 할 수 있습니다. 가스 가격이 높을수록 채굴자들은 더 빨리 처리하므로 가스 가격이 높을수록 트랜잭션이 더 빨리 처리됩니다. 가스 한도는 트랜잭션 발생자가 얼마 이상의 수수료가 발생하게 된다면 해당 트랜잭션 실행은 취소되며 더 이상 트랜잭션은 발생하지 않습니다.

댓글