저번 포스팅을 통해서는 블록 체인(BlockChian)이 무엇인지에 대해서 알아봤는데요.
이번에는 가상 자산을 대표하는 양대산맥인 비트코인과 이더리움 중 이더리움에 대해서 알아보도록 하겠습니다.
이더리움(Ethereum)
Ethereum을 개발한 Vitalik Buterin(비탈릭 부테린)은 Bitcoin의 Script보다 더 세련된 언어(튜링 완전한 언어, turing completeness)를 구사하기 위해 새로운 BlockChain Network를 만들어 여러가지 분산 애플리케이션(Decnetralized Applicaiton, dApp)을 이용할 수 있는 Platform을 만들기로 결심하게 되는데 이것이 바로 Ethereum Platform입니다.
BitCoin이 튜링 불완전한 Script를 사용했다면, Ethereum은 튜링 완전한 언어인 Solidity(Java Script)와 Serpent(Python)을 사용하였으며, 이를 통해 복잡한 다중 계약인 Smart Contract와 분산 애플리케이션(Decnetralized Applicaiton, dApp)을 구현할 수 있게 되었습니다.
Ethereum은 거래나 결제 뿐만 아니라 계약서, 이메일 등 다양한 Application을 투명하게 운영할 수 있는 확장성을 제공해줬으며, 당연히 많은 NFT들이 Ethereum을 기반(ERC-721, ERC-1555)으로 만들어지게 되었습니다.
참고로 Ethereum의 계좌는 다음과 같이 구분할 수 있습니다.
외부 소유 계좌 (EOA) : 개인 키를 자기고 통제하는 계좌이며, ETH를 주고 받을 수 있는 일반적인 은행 계좌와 비슷
계약 계좌 (Contract Account) : 개인 키가 아닌 계약 코드에 의해서 통제되며, 계약 계좌는 외부 소유 계좌와는 다르게 계약 코드와 계약에 필요한 정보들을 저장하는 공간을 가지고 있으며, 내부 저장 공간의 데이터를 읽고 쓸 수 있음
용어 설명
튜링 완전한 언어 : 튜링 완전(Turing Complete)이란 어떤 프로그래밍 언어나 추상 머신이 튜링머신과 동일한 계산 능력으로 문제를 풀 수 있다는 의미
튜링 머신 : 앨런 튜링이 1936년에 제시한 개념으로 계산하는 기계의 일반적인 개념을 설명하기 위한 가상의 기계
Decnetralized Applicaiton (dAPP) : 탈중앙화된 블록체인 플랫폼을 기반으로 작동하는 앱
Smart Contract : BlockChian을 기반으로 금융 거래, 부동산 계약, 공증 등 다양한 형태의 계약을 체결하고 이행하는 것을 의미함
Ethereum GAS
그런데 여기에는 한 가지의 문제가 있었습니다. 수많은 사람들이 복잡한 Smart Contract를 설정하면 모든 Node(BlockChain Network 참여자)가 Application을 실행하는 과정에서 해당 Smart Contract들이 모두 BlockChain에 기록되어야 했습니다. 그러나 이런 작업은 많은 자원을 요구하는 일이었기 때문에 Network의 과부하가 발생할 수 있었습니다.
이를 방지하기 위해 도입된 것이 바로 Ethereum의 GAS 입니다. GAS란 Ethereum에서 이더(Ether, ETH)의 이전이나 Smart Contract을 실행하는 과정에서 Transcation을 검증하고 BlockChain에 기록하는 과정에서 수수료를 책정하기 위해 만들어졌습니다.
이러한 GAS는 Transcation을 생성하는 사용자가 직접 설정할 수 있어 Ethereum을 빠르게 전송하고 싶은 사람이 높은 GAS를 지불하고 반대로 천천히 전송해도 되는 사람은 낮은 GAS를 지불함으로써 Network의 과부하를 방지할 수 있었습니다.
가스비는 "GAS 가격 * GAS 한도"로 계산할 수 있습니다.
일반적으로 Ethereum에서 표준 GAS 한도는 21,000GAS 입니다. GAS 가격은 ETH의 하위 단위인 Gwei(기가웨이)를 사용하는데, 통상 1,000,000,000 Gwei는 1ETH 입니다.
예를 들어 GAS 가격이 10 Gwei라고 하면, 최대 GAS 한도의 GAS 가격은 210,000 Gwei라는 것을 알 수 있습니다.
210,000 Gwei는 0.00021 ETH이므로, 0.00021 * 1 ETH를 계산하면 Ethereum Network에서 특정 Transcation을 발생시키기 위해 얼마의 수수료를 지불해야하는 지 계산할 수 있습니다.
Ethereum Classic
Ethereum이 Hard Fork되어 생기게 된 Ethereum Classic을 설명하기 위해서는 The DAO(Decentralized Autonomous Organization) Project에 대해서 이야기를 해야될 것 같습니다.
DAO Project는 2016년 3월 Ethereum Platform을 기반으로 한 세계 최대의 디지털 자산 크라우드펀딩 프로젝트였습니다.
투자자들은 ETH를 투자해 투자한 만큼의 DAO Token을 받고, Project가 성공할 경우 자신들이 보유한 DAO Token만큼 수익 배분금을 받게되는 구조였습니다.
하지만 해당 Project의 Smart Contract 설계 상 취약점이 있었고 해당 취약점을 악용한 Hacker들이 The DAO의 계좌에 있는 360만 ETH(당시 640억원)를 해킹했습니다. 다행히 The DAO에서 인출한 ETH는 27일의 유예 기간 이후에 출금하도록 설계되어 대응을 할 수 있는 시간이 있었습니다.
Ethereum의 설계자 Vitalik Buterin은 Ethereum Network의 Soft Fork를 제안하며 Hacker를 BlackList에 추가하고 도난 당한 자금을 이동하지 못하도록 Code Snippet을 추가했습니다.
얼마 후 Hacker로 추정되는 사람이 Ethereum 채굴자들에게 뇌물(100만 ETH, 100 BitCoin)을 주어 Soft Fork를 저지하려는 계획을 세웠고 이에 긴장감이 고조되기 시작했습니다. 그러나 Ethereum의 Soft Fork가 진행되기 전에 Code에서 취약점이 발견되었고 Soft Fork가 이뤄질 수 없었습니다.
Ethereum의 출금을 막기 위해 Hard Fork가 제안되었고 결국 실행될 수 있었는데요. Hard Fork는 Ethereum Network의 역사를 DAO 해킹 이전으로 롤백하고 DAO의 ETH를 다른 Smart Contract에 재할당하여 투자자가 자금을 인출할 수 있도록 했습니다.
그러나 모든 사람들이 이러한 변경을 원한 것은 아니었고 BlockChain의 역사를 되돌리는 것을 거부한 사람들이 현재 Ethereum Classic으로 알려진 사전 포크 Version을 지원했습니다.
이렇게 Ethereum은 Ethereum과 Ethereum Classic으로 나눠지게 되었습니다.
용어 설명
Decentralized Autonomous Organization (DAO) : 특정 주체가 책임지는 것이 아니기에 대표할 수 없고(탈중앙화, Decentralized), 별도의 명령이나 관리가 필요 없는(자율, Autonomous) 조직(Organization)
Soft Fork : 기존 BlockChian의 기능을 일부 수정하는 Fork를 의미합니다. 기본 구조는 변경되지 않고 부분적인 기능 개선만 이뤄지도록 할 수 있음
Hard Fork : BlockChain의 기본 기능 자체를 수정하는 Fork로서, 변경된 이후에는 이전 BlockChian과 완전히 다른 Protocol을 가진 BlockChain으로 변경됨
Ethereum 2.0
위에서 설명했듯이 Ethereum은 Network의 과부하를 방지하기 위해 GAS라는 개념을 도입하였는데, 그럼에도 불구하고 낮은 효율성과 높은 GAS 요금으로 비판을 받았습니다.
Ethereum이 점점 더 대중화됨에 따라 이를 이용하는 사용자와 응용 프로그램이 기하 급수적으로 증가하기 시작했고 기존에 예상했던 것보다 더 많은 양의 Traffic이 발생하게 되었습니다.
이를 해결하기 위해 Ethereum은 Ethereum 2.0을 계획하게 됩니다.
1. 작업 증명(PoW)에서 지분 증명(PoS) 방식으로 변경
기존의 Ethereum의 증명 방식은 PoW 방식으로 BlockChain Network가 성장함에 따라 더 높은 Computing Performance가 필요해지게 되었습니다. 이로 인해 Ethereum의 확장성을 제한하게 되었고 이를 해결하기 위해 PoS 방식으로 변경을 계획하게 되었습니다.
변경된 PoS 방식은 최소 32 ETH를 보유한 사람들 모두 거래 검증 및 확인에 참여할 수 있게 되었으며, PoS는 PoW보다 에너지 효율성이 높아 더이상 더 많은 Computing Performance가 필요하지 않게 되었습니다.
2. Ethereum의 확장성 향상
기존의 Ethereum은 Network의 혼잡도와 높은 GAS 요금으로 사용자들로부터 많은 비판을 받아왔습니다. 그 이유는 Ethereum 1.0의 Network에서는 초당 약 30개의 Transcation만 지원할 수 있어 지연과 혼잡이 발생했기 때문입니다.
Ethereum 2.0은 확장성 문제를 해결하기 위해 Shard Chain을 구현하여 초당 최대 100,000건의 Transcation을 달성할 수 있었습니다.
3. 더 안전한 Ethereum
Ethereum 2.0은 보안적인 요소도 충분히 고려하였습니다. Ethereum 2.0에 ETH를 예치하려면 최소 16,384명의 검증인이 필요하기 때문에 기존보다 더욱 더 탈중화되어 안전한다고 볼 수 있습니다.
Ethereum은 2022년 9월 15일에 Merge 되었음
용어 설명
Shard Chain: Sharding 기술을 SideChain에 적용하여 Chain을 병렬적으로 늘려 성능을 높임
이것으로 이더리움(Ethereum)에 대한 기본적인 개념은 어느정도 정리를 한 것 같습니다. 알아야 할 내용들이 너무나도 많기 때문에 사실 상 수박 겉핧기 식의 내용이지만 계속 공부를 해서 더 많은 내용들을 공유드릴 수 있도록 하겠습니다.
오늘도 블로그에 방문해주셔서 감사합니다.
'가상 자산 > 가상 자산과 관련된 모든 것' 카테고리의 다른 글
트래블룰이란? (2) | 2022.10.22 |
---|---|
스테이킹(Staking)이란? (0) | 2022.10.10 |
비트코인(BitCoin)이란? (0) | 2022.10.09 |
블록 체인(Block Chain)이란? (0) | 2022.10.03 |
루나 코인은 살아남아 반등할 수 있을까? (0) | 2022.05.13 |
댓글