본문 바로가기

블록체인

이더리움이란? ( 기초 )

이더리움이란?

튜링 완전한 ( '어떠어떠한 조건이면 어떠어떠한 행동을 하라'를 컴퓨텨가 할 수 있음 ) 프로그래밍 언어를 가지고 있어서 Smart contrant나 Dapp ( decentralized application ) 을 구현 할 수 있다. 단어 하나하나를 풀어서 보자.

Smart Contract, Dapp

'내일 비트코인이 +10% 상승하면 친구들한테 0.1ETH 보내줘야지' 와 같은 것이 스마트 컨트렉트이다. 조건을 명시해놓으면 자동적으로 무조건 실행이 된다. 이 스마트 계약은 블록체인 위에 기록되기 떄문에 누구도 조건을 바꾸거나 임의로 실행시키지 못한다.

중앙중개기관 없이 다양한 종류의 서비스를 사용자들에게 제공하는 것이 Dapp이다. 흔히 우리가 스마트폰에 받아서 사용하는 것이 app이고, 이 앱에서 사용하는 서비스가 Back-end에 있는 것이 아니라, 분산화된 p2p network에서 실행되는 것이다.

각각의 node는 이더리움 가상머신을 통해 동일한 연산을 수행

위에서 Dapp의 서비스가 분산화된 p2p network에서 실행된다고 했다. 좀 더 쉽게 얘기하면, 모든 참가자(node)들의 컴퓨터에서 동일한 연산을 수행하여 이를 동일한 상태에 합의하는 것이다.





자체 암호화 화폐 토큰인 이더(ether)가 있으면 계좌간 송금 및 가스 구입을 통한 이더리움의 자원(연산력, 저장공간, 네트워크 사용량) 사용에 쓰인다.

계좌에는 2가지 종류의 계좌가 있음

1. 외부소유계좌 ( EOA : externally owned account ) : 우리가 생각하는 일반적인 계좌, private key를 가지고 통제할 수 있는 계좌
2. 계약계좌 ( Contract Account ) : 계약의 코드에 의해 통제되는 계좌.

계좌의 구조

1. nonce : 거래가 반복되어 시행되는 것을 막기위한 카운터값
2. ether balance ( 이더량 )
-------------------------------------
3. contract code
4. storage

가스

블록체인은 데이터의 저장 및 가공의 높은 중복성이 특징이다. ( 잘못된 짓을 검증하기 위해 모든 컴퓨터가 뻘짓하고 있음... ) 즉, 공유지의 비극을 막기 위해 한정된 자원에 비용을 매길 필요가 있다. 

정지 문제의 가스의 필요성 : 무한 루프가 걸린 계약이 돌게 되면 모든 컴퓨터가 정지되어 버리는 문제.


Dapp은 결국 서비스를 돌리기 위해 가스비를 지불해야 하는데, 이를 기업 입장에서는 어떻게 처리할 것인가? ( 수수료와 같은 문제 )