1. 이더리움의 등장배경
블록(block)과 트랜잭션(transaction)이란?
-
블록체인은 블록단위로 기록이 되고 다른 노드들과 동기화도니는 상태와 상태의 전이를 일으키는 트랜잭션으로 구성 되어있다.
-
블록체인은 디지털 자산을 다루는 시스템이므로 주로 상태는 잔고 정보를 의미하고 트랜잭션은 자산 소유권의 이동을 표현한다.
-
블록은 참여자들이 트랜잭션에 의해 변화한 상태를 서로 공유하는 단위이다.
-
두 개의 블록이 공존하는 상태를 포크라고 하며, 이러한 상태가 발생하지 않도록 하는 것이 중요하다.
블록 상태(block state)의 표현
-
블록 상태는 블록이 생성된 시점에서 새로운 트랜잭션의 유효성을 판단하기 위한 지표이다.
-
블록 상태는 이전까지 블록에 담겼던 모든 트랜잭션들의 수행 결과이다.
-
어떤 블록의 상태는 이전까지 블록에 담겼던 모든 트랜잭션들을 수행해봄으로써 도출해내고 검증할 수 있다.
프로그램 상태의 전이(transaction)
-
프로그램은 명령어에 의해 상태가 변경된다.
-
트랜잭션에 의해 디지털 자산의 소유권에 해당하는 데이터가 변경되는 것은 크게 보면 소유권 데이터를 처리하는 프로그램의 상태가 변경되는 것과 유사하다.
이더리움의 등장 배경
-
블록체인을 확장시켜서 디지털 자산의 이동 뿐만 아니라 일반적인 프로그램의 상태 변경에도 활용하기 위해 등장함
-
프로그램 가능한 블록체인을 만들기 위해 등장함
2. 이더리움의 역사
-
2013년, 비탈릭 부테린이 이더리움 백서를 작성하여 공개
-
2014년, 비탈릭 부테린의 주도로 이더리움 재단 설립
이더리움 재단:
- 이더리움 개발의 주축이 되는 단체
- ICO를 통해 초기 자금모집(3만1천개의 비트코인을 개발자금으로 확보)
3. 이더리움의 기술적 이해
스마트 컨트랙트
-
비탈릭 부테린과 가빈우드에 의해 이더리움으로 구현 되었다.
-
블록체인 상에 영구히 기록된 스크립트이다.
-
이더리움의 경우, Solidty라는 문법을 이용함.
-
트랜잭션은 명령어, 그 중에서도 특히 여러 명령어를 실행하는 스크립트의 함수 호출명령어에 대응된다.
-
하지만 프로그램을 실행보기 전에는 종료가 될지 안될지 알 수 없다.(이를 해결하기 위해 수수료 개념을 도입)
수수료
-
종료되지 않는 프로그램을 실행하게 될 경우, 블록 채굴에 문제가 생긴다.
-
이더리움은 프로그램의 각 명령어에 비용(gas)을 부과하였다.
-
따라서, 무한히 지속되는 프로그램을 실행할 수 없다.
활용분야: DApp(탈중앙화 어플리케이션)
-
스마트 컨트랙트로 이루어진 어플리케이션
-
이더리움 위에서 수많은 DApp 생태계가 꾸려져 있다.
-
크립토 키티, 크립토 좀비 등이 대표적인 이더리움의 DApp이다.
기술적 한계
확장성 문제(Scale문제)
-
이더리움의 경우 탈중앙화를 지키며 확장성 문제를 해결하기 위해 여러 연구 진행 중
-
이를 해결하기 위한 방법으로 플라즈마, 샤딩, 라이젠네트워크 등을 예로들 수 있음
익명성 문제
-
기본적으로 블록체인에서는 모든 거래가 투명하게 공개 됨
-
숨기고 싶은 거래 혹은 시스템적으로 숨겨야 하는 트랜잭션도 모두 공개됨
-
영지식 증명, 믹싱, 프라이빗 블록체인 등의 기술이 연구 됨
진입장벽의 문제
-
블록체인이 활성화 되려면 참여자가 많아야 하는데 참여자들에게 진입장벽이 너무 높음
-
일반적인 사용자가 참여하기에 알아야할 지식들이 많다.
'블록체인' 카테고리의 다른 글
블록체인 공부 - 비트코인(Bit coin, BTC)편 (0) | 2019.09.18 |
---|