블록체인2017. 7. 6. 14:58


1. 이더리움


분산어플리케이션을 만들기위한 프로토콜

- 빠른 개발

- 보안

- 타앱과 상호작용

튜링완전언어를 통해서 구현하려고 함.


2. 튜링완전언어


스마트 컨트렉트, 분선애플리케이션을 작성 가능, 소유권에 대한 규칙, 트랜잭션포맷, 상태변환함수등을 생성 가능.


3. 스마트컨트랙트


어떤 가치를 가지고 있고 특정 조건을 만족해야함 그 가치를 얻을 수 있도록 함.

튜링완전, 가치인지, 블록체인인지, 상태등의 개념이 포함된다.


4. 이더리움 어카운트


이더리움상태를 가지고 있다.


- 20바이트주소

- 상태변환

- nonce

- 잔고(ETH) : eth는 트랜잭션수수료를 지불하는데 사용된다.

- 계약코드(존재시)

- 저장공간


외부소유어카운트 : 개인키로 통제된다. 메세지전송시 트랜잭션을 만들고 서명한다.

컨트랙트어카운트 : 컨트랙트키로 통제된다. 메세지수신시 코드활성화하여 읽거나 저정하고, 메세지 전송 또는 컨트랙트들을 생성한다.


컨트랙트 : 이더리움 실행환경안에서 살아있는 일종의 자율에이전트로 메세지나 트랜잭션이 도착하면 특정코드를 실행하고 이더잔고와 영속적인 변수들을 추적하기 위해 저장소를 통제한다.


5. 트랜잭션


외부소유어카운트가 보내고자 하는 메세지를 가지고 있는 서명된 데이터 패키지를 말한다.


- 메세지 수신처

- 발신처를 확인할 수 있는 서명

- 발신처가 수신처로 보내는 이더의 양

- 추가 옵션 데이터 필드

- STARTGAS 값 : 트랜잭션 실행 허용 최대 계산 단계수

- GASPRICE 값 : 매 계산단계마다 발신처가 지불하는 수수료


데이터필드는 도메인등록서비스를 예를 들면 등록하고자 하는 도메인과 IP주소가 될것이다. 따라서 컨트렉트는 데이터로부터 이 값들을 읽어서 저장소 내 적당한 위치에 저장한다.


STARTGAS와 GASPRICE는 DDoS공격을 막기 위한 중요한 역할을 한다. 계산량, 네트웍 밴드위스, 저장소등에 비례하여 비용을 지불하게 하여 악의적인 공격을 막는다. 


6. 메세지


트랜잭션과 별개로 컨트랙트가 다른 컨트랙트에게 메세지를 전달할 수 있다. 이 메세지는 별도로 저장할 필요가 없는 실행환경에서만 존재하는 가상의 오브젝트이다.


- (암묵적인) 메세지 발신처

- 메세지 수신처

- 이더

- 추가 옵션 데이터 필드

- STARTGAS 값


임의 컨트랙트가 실행중에 CALL opcode를 만나게 되면 메세지를 생성하고 트랜잭션과 동일하게 해당 코드를 실행하는 수신자 어카운트에 도달하게 된다. 따라서 컨트랙트는 외부 실행자를 통하지 않고 동일하게 다른 컨트랙트와 관계를 맺을 수 있다.



Posted by 삼스