안녕하세요. 개발자 모도리입니다.
올해 5월쯤 정리했던 내용 묵혀두고 있기 아까워서 올려봅니다 :)
이더리움 개념 정리
목차
이더리움이란?
비탈릭 부테린은?
이더리움 탄생 배경
이더리움의 특징들
이더리움이란?
2015년 비탈릭 부테린이 개발한 2세대 블록체인
Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third-party interference.
비트코인 스크립트로 할 수 있는 작업(서명, 검증 등)이 많긴 하지만 모든 경우의 프로그래밍을 다 지원하지는 않는다. 특히 반복문을 지원하지 않아서 공간 비효율적이다.
반복문이란?
프로그래밍 언어에서 동일한 명령을 반복적으로 실행할 수 있게 해주는 명령어
for, while 등이 있다.
반복문 사용 전
printf("Give me 1 ETH");printf("Give me 2 ETH");printf("Give me 3 ETH");printf("Give me 4 ETH");printf("Give me 5 ETH");
반복문 사용 후
for(i=1;i<=5;i++){printf("Give me %d ETH",i);}
비트코인이 반복문을 사용하지 않았던 이유
코드 실행 시 무한 루프에 빠지는 것을 방지하기 위해서
=> 튜링 완전한 프로그래밍 언어 지원 & Gas Fee 도입
2. 가치의 불투명성(Value-blindness)
코인의 가치를 외부에서 받아와서(오라클 문제) 해당 가치만큼을 분배하려고 할 때, 비트코인의 경우 UTXO에서 일부만 사용이 불가능하다. 일부만 사용하기 위해서는 전체를 input으로 하고 일부를 수신자에게 보내고 나머지를 자신에게 보내는 비효율적인 작업을 해야 한다.
=> 어카운트 개념 도입
3. 상태의 단순성(Lack of state)
비트코인은 애초에 지불 수단으로 개발되었기 때문에, 비트코인을 주고 받는 용도로 밖에 사용할 수 없다. 다른 데이터를 넣을 수 없다. 그리고 UTXO는 사용되었다/사용되지 않았다 라는 두 가지 상태 밖에 표현할 수 없다.