이더리움이란?
튜링 완전한 ( '어떠어떠한 조건이면 어떠어떠한 행동을 하라'를 컴퓨텨가 할 수 있음 ) 프로그래밍 언어를 가지고 있어서 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은 결국 서비스를 돌리기 위해 가스비를 지불해야 하는데, 이를 기업 입장에서는 어떻게 처리할 것인가? ( 수수료와 같은 문제 )
'블록체인' 카테고리의 다른 글
블록체인이 모바일결제에 미치는 영향 (1) | 2018.07.05 |
---|---|
블록체인 전송 앱 조사 (0) | 2018.07.04 |
초보 개발자가 바라보는 블록체인 (3) | 2018.06.22 |
[1일차] 이더리움 테스트넷 연결하기 ( web3j ) (0) | 2018.06.19 |
웹 개발자들이 해보는 이더리움 프로그래밍 (0) | 2018.01.26 |