이더리움 - 차세대 스마트 컨트랙트와 탈중항화 애플리케이션 플랫폼
정확한 원문 해석은 번역본에서 참고하는 것이 더 좋습니다.
이더리움 백서 원문
이더리움의 목적은 스크립팅의 개념과 on-chain-meta-protocols, 그리고 알트코인의 기능을 한데 묶은 것이다. 나아가 개발자로 하여금 임의로 합의기반 애플리케이션을 작성할 수 있게 하여 확장성, 표준성, 기능적 완정성, 개발의 편의성을 제공하고 나아가 이러한 패러다임을 한번에 달성할 수 있게 끔 하는 것이다. 이더리움은 블록체인이라는 근본적인 기반을 제공하여 이러한 것을 달성하였다. 누구든지 스마트 컨트랙트, 분산 애플리케이션을 작성하고, 소유권에 대한 임의의 규칙, 트랜잭션형식, 상태변환 함수 등을 생성할 수 있다. 이는 비트코인의 스크립팅 보다 훨씬 더 강력한 기능을 제공하는 것이다.
이더리움에서 상태는 어카운트라고 하는 오브젝트로 구성되어 있다. 어카운트는 다음 네개로 구성되어 있다.
이더는 이더리움의 기본 내부 암호-연료고, 이는 트랜잭션의 수수료를 지불하는데 사용한다. 이런 어카운트는 두가지 종류가 있다.
트랜잭션이란 외부 소유 어카운트가 보낼 메시지를 가지고 있는 서명된 데이터 패키지를 의미한다. 트랜잭션은 아래오 같이 구성되어 있다.
처음 세 항목은 모든 코인에서 표준적으로 사용되는 값이다. STARTGAS와 GASPRICE는 계산낭비 드응 ㄹ방지하기 위해 각각 트랜잭션의 코드 실행 단계를 제한 하는 역살을 한다. 보통 1gas이지만, 더 많이 드는 경우도 있다. 트랜잭션의 모든 데이터는 바이트당 5gas 의 수수료가 든다.
컨트랙트는 다른 컨트랙트에 메시지를 전달 할 수 있다. 메시지는 다음의 것을 포함한다
메시지 실행시 가스가 부족하게 되면 ,실행과 그 실행에 의해 실행된 다른 실행들은 모두 되돌려 지만, 그 부모 실행은 돌려질 필요가 없다. 이는 컨트랙트가 다른 컨트랙트를 호출하는 것은 안전하다는 것을 의미한다.
이더리움 컨트랙트는 EVM code라고 불리우는 로우레벨 스택기반 바이트 코드 언어에서 실행된다. 보통 코드 실행은 0부터 현재 카운터를 증가시키면서 반복저긍로 연산을 수행하는 무한루프이고, 코드가 마지막에 도달하거나, 오류, STOP, RETURN 등을 만나면 멈춘다. 연산 수행을 위해서는 데이터를 저장하는 아래 세가지 타입의 공간에 접근 가능해야 한다.
비트코인 블록체인과 유사하지만, 어느정도 차이점이 있다. 이더리움은 비트코인과 다르게 트랜잭션 리스트와 최근 상태 복사본을 가지고 있다는 것이다. 블록넘버와 난이도 또한 블록내에 저장되다. 블록 검증 알고리즘은 아래와 같다.
이더리움을 이용하면, 총 세가지 종류의 애플리케이션을 제작할 수 있다.
이더리움 프로토콜은 범용적인 프로그래밍 언어를 통해, 블록체인상 에스크로나 인출한도 설정, 금전계약 등의 기능을 제공하는 가상화폐의 업그레이드 버전으로 구성되어 있다. 이더리움 프로토콜은 이런 기능을 직접 제공하는 것이 아니라, 튜링완전 언어를 통해 거의 모든 형태의 이체방식이나 애플리케이션을 만들어낼 수 있도록 지원한다. 이더리움은 단순 화폐 차원을 뛰어 넘는다. 분산저장공간이나, 분산컴퓨팅, 분산예측시장 프로토콜은 이더리움이 할 수있는 많은 응용개념 중 하나에 불과하다. 이러한 새로운 개념들은 이더리움이 컴퓨터 산업의 효율성을 폭발적으로 증강시킬 수 있는 가능성을 가지고 있으며, P2P프로토콜에 경제적인 레이어를 씌워 엄청난 혁신을 가져올 수 있을 것이다. 마지막으로, 컴퓨터나 금융이 관련없는 분야에서도 다양한 애플리케이션이 나올 것이다.
이더리움 프로토콜이 제공하는 임의상태변환이라는 개념은 잠재력을 지닌 플랫폼을 만들 수 있게 해준다. 기존의 하나의 목적에 특화된 폐쇄된 구조와 달리, 이더리움은 자유롭게 조정이 가능한 오픈된 구조다 이더리움이 몇년이내에 다양한 분야에서 많은 분야의 서비스를 설께할 수 있도록 튿화된 기반이 될 수 있을 것이다.