쉽게 설명하는 블록체인, 이더리움이란 뭔가요? - 2 [세상을 바꿀 world computer]

in #kr7 years ago (edited)

머리가 아픈이유  (2).jpg

미리 언급하자면, 이번 내용은 어려울 수 있다.

이더리움의 개념과 기술은 쉽게 배울수 없는게 팩트다.

하지만 누구라도 이해가능하게 설명을 하려고 글을 쓰는 것이 포스팅의 취지이므로...

감히, 이해 가능하게 글을 쓸 수 있다 자신하고 포스팅해본다.

또한, 이 내용을 이해한다면 이더리움의 가치가 세상을 바꿀 수 있다는 것을 믿게된다.

Ethereum이라 쓰고 World Computer라 읽는다.

이전 포스팅에서 비트코인과 이더리움을 비교하며 간단한 개념을 훑어봤다.

스크립팅 언어를 사용하는 비트코인은 '화폐'의 역할 그 이상 그 이하도 하지 않는다. 그래서 '전자계산기'정도의 어플리케이션이라고 비유를 했었고 이더리움은 '컴퓨터'에 비유했다.

가상머신1.jpg

실제로 이더리움은 전세계를 아우르는 거대한 하나의 '가상 컴퓨터'이다.

컴퓨터.jpg

수만개의 노드가 똑같은 연산을 중복하며 똑같은 데이터를 가지고 항상 동일한 상태의 합의에 도달한다.

그렇기에 효율적인 면에서 본다면 엄청난 낭비가 될 수 있지만 이것이 계약에 없어서는 안될 '신뢰'를 구축한다.

똑같은 연산을 하고 똑같은 성능으로 같은 데이터를 가지며 합의도 같기 때문에 일단 위변조가 불가능하다. 또한 하나의 노드를 해킹한다해도 전체를 무용지물로 만들 수 없고 DDOS공격 또한 무섭지 않다.

이렇게 구축된 신뢰를 기반으로 중복된 연산을 어떻게 유용하게 최적화 할 것인가가 이더리움의 제일 큰 숙제라고 할 수 있다.

그리고 여기서 중요한 부분, (어려울 수 있는데 보다보면 별거아님)

Front End code와 Back End code라는 것이 있다.

  • Front End Code : 웹사이트에서 대문의 클릭할 수 있는 메뉴들이나 아이콘등 사용자들이 앞에서 직접 맞닥뜨리는 부분
  • Back End Code: 뒤에서 관리하는 사용자들의 신원을 포함한 데이터베이스

front end.jpg

빨간 원으로 표시된 부분이 모두 Front End라 보면 된다.

Front End Code는 중앙서버나 블록체인이나 사용자들이 직접 접하는 부분이기에 같다. 이 말은 그림처럼 steemit 사이트에서 클릭할 수 있는 메뉴들은 블록체인 기반으로 운영이 된다 하더라도 steemit 서버에서 관리가 가능하다는 것이다.

그러나 다른 것은 Back End Code다.

steemit 회원들의 비밀번호나 신원, 게시글의 정보 등은 블록체인상에서 관리 된다. 그렇기에 steemit에서도 통제가 불가능하다.(스팀잇 계정 분실하면 아무도 못 찾아주는 이유)

또한 만일 steemit이 이더리움 생태계에서 운영 된다면 다른 이더리움 플랫폼을 사용하는 어플리케이션과 데이터베이스를 공유할 수 있게 된다.

이것이 정부행정, 보험, 의료서비스, 금융 등 서로 다른 분야의 데이터를 공유하는데 이를 정부나 하나의 기관이 관리하는게 아닌 분산화된 방식으로 투명하고도 민주적으로 운영이 된다는 것이 핵심.

이더리움의 블록은 어떻게 구성되고 운영될까?

설명에 앞서 우리가 중학교 때 배웠던 함수에 대해 간단히 개념을 짚어보자.

함수.jpg
x값을 집어 넣었더니 y가 나왔다는 이야기이다.

이더리움의 블록도 마찬가지이다.

함수.jpg

그림처럼 124번 블록이 f(x)의 함수역할을 해서 상태 1에서 상태 2로 바꿔준다.

여기서 핵심은 1번부터 123번 블록까지 연결된 블록체인 데이터가 상태 1이라는 것이고 124번이 추가되고 난 1번부터 124번 전체 블록데이터가 상태 2라는 것이다. (124번 블록하나가 상태 2가 아님)

이 이야기는 블록이 추가될때마다 상태가 계속해서 변한다는 것이다.

이런 상태변환을 수만개의 노드들이 똑같이 하나의 컴퓨터처럼 연산한다.

또한, 이런 연산력은 이더리움의 경우 GAS를 구입을 통해 제공받는다. (이전 포스팅에 설명)

이 GAS가 비트코인과 이더리움이 다른점 중에 하나인데 이것보다 더 중요한 차이가 있다.

비트코인은 계좌에 UTXO를 가지고 있고 그것을 소비하거나 말거나가 전부이다.

하지만 이더리움은 UTXO가 아닌 자체토큰인 '이더', 이더를 가지고 있는 '계좌', 'GAS'가 합쳐진 것이 이더리움이다.

[이더리움 = 이더 + 계좌 + GAS]

여기서 가장 핵심은 '계좌'이고 이번 포스팅에 가장 중요하다고 할 수 있다.

이더리움의 계좌는

  1. 외부 소유계좌(EOA) : 개인키를 가지고 통제하는 계좌. 이더를 주고받을 수 있는 일반적인 은행 계좌와 비슷.

2. 계약계좌(Contract Account) : 개인키가 아니라 계약 코드에 의해서 통제된다.

이 계약 코드는 이더리움 플랫폼에서 정해놓은 '헌법'과도 같다. 그렇기에 어떤 강력한 정부가 와도 건드리지 못하고 비탈릭 뷰테린조차도 통제가 불가능하다.

GAS를 구입해 계약 코드를 걸어 놓으면 이 계약 코드의 조건이 만족될 때에만 계약계좌가 메세지를 받고 계약의 내용이 실행된다.

  • 계약계좌는 외부소유계좌와는 다르게 '계약 코드''계약에 필요한 정보들을 저장하는 공간'을 가지고 있고 내부 저장공간의 데이터를 읽고 쓸 수 있다.

예를 들어, 과속을 했을때 과태료로 1ETH를 부과하는 코드를 걸어놓으면 과속을 했을때 메세지를 받고 1ETH가 계약계좌에서 빠져나간다.

이것이 Smart Contract이다.

최대한 쉽게 설명하려고 하지만 모르시는 분들을 위해 언제든지 댓글로 질문을 받습니다.
질문의 내용이 길 경우는 jsralphh@gmail.com으로 보내주시면 감사하겠습니다.

Sort:  

비트코인 백서 읽으면서 용어가 어려워 글을 찾다가 이 새로운 아이디까지 오게 되었네요. 정말 좋은 글 감사합니다~~ 마니 마니 올려주시면 정말 큰 도움이 될 거 같습니다. 풀봇 팔로잉하고 갑니다. 감사합니다!!!

네 감사합니다~ 이해하기 쉬우시다니깐 더 힘내서 글을 쓰려구요

아아 잘 이해되는 것 같아요. 되게 어려웠었는데, 조금씩 이해되는 것 같아요 ㅎㅎ

네 감사합니다 더 좋은글로 보답할게요ㅋㅋ

Congratulations @easyblockchain! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!