이더리움 백서

JeongMin Kim·2023년 3월 26일
0

🎯개인적으로 이해한 내용을 정리한 기록입니다. 틀린 내용 / 이해 오류가 많을 수 있으니 정확한 해설이나 정보를 찾으시는 분들은 다른 문서를 참고하시는 게 더 안전합니다!

🎯(오류를 발견하셨다면, 알려주시면 수정하겠습니다)

세션 전에, 비트코인 백서와 달리 양이 너무 많고 자료가 많이 없어서, 모든 줄을 이해하지 못했다.

세션을 하면서는 처음 접하는 내용도 있고, 헷갈리는 부분도 있었는데, 이해하고 있는 것을 정리하는 것보다 이해못한 부분을 이해해서 올리는 것이 나에게 더 유익할 것 같아, 이해한 부분보다는 세션에서 다뤘던 내용 중 어려웠던 내용을 중심으로 정리해보고자 한다.

1. 이더리움이란

일반인을 위한 가장 쉬운 설명은 '비트코인의 진화버전'이라고 생각하면 된다. 아래 그림을 참고하면 좋다

출처: Mental Outlaw의 How Ethereum Works 중

자세하게,
비트코인은 화폐의 용도로만 사용될 수 있기 때문에 조건을 블록체인에 넣을 수 없었다. 하지만 이더리움의 경우에는 조건을 반영하여 블록을 만들 수 있으니 비트코인의 진화형이라고 할 수 있는거다.

튜링 불완전성과 튜링 완전성

이 때 비트코인이 복잡한 것을 다루지 못하는 걸 튜링 불완전성이라고 하고, 이더리움이 복잡한 것을 다룰 수 있는 것을 튜링 완전성이라고 한다.

2. 이더리움의 목적

그럼 이러한 진화 버전은 어디에 사용하기 위해 만들어진 것일까?

이더리움의 목적은 분명합니다. 비트코인이 제3자의 신뢰기관 없이 통용 가능한 디지털자산을 만들었다면, 이더리움은 제3자의 신뢰기관 없이 통용 가능한 애플리케이션 플랫폼을 만들려고 했습니다."

이더리움 백서 톺아보기 - 3편에서 가져온 부분.

이더리움은 분산 애플리케이션을 위한 대체 프로토콜을 통해 누구나 스마트 컨트랙트를 만들 수 있도록 한다.

3. 어카운트, 트랜잭션, 메시지

세션에서 다룬 내용 중에 이 내용이 가장 이해가 어려웠어서 이 부분 내용을 다뤄보고자 한다. 백서에서는 설명이 따로 되어있어서 이 세가지 개념이 연결되어있다고 생각을 못 했는데, 세션에서 설명을 들으며 이 세 개념이 연결되어 있다는 것을 알 수 있었다.

그림 하나로 정리하면 대략 이렇다.

(⚡여기서부터는 진짜.. 부정확한 정보가 많을 수 있으니 정보를 위해 글을 읽는 사람이라면 넘겨야 한다⚡)

일단 거래가 일어나는 상황을 가정할 때, 어카운트와 트랜잭션, 메시지가 있다.

3.1 어카운트

이더리움 백서에는 이렇게 나와있다.


출처 : 이더리움 백서 톺아보기 - 4편

어카운트는 우리가 인터넷에 들어갈 때 사용하는 ID 계정이라고 생각하면 되고, 논스, 이더잔고, 계약 코드, 저장공간을 가지고 있다고 한다.

이더리움 계정에는 두 가지 종류, 즉 외부소유계정(EOA)과 컨트랙트 계정(CA)가 있다. 외부소유계정(EOA)은 우리가 일반적으로 사용하고 있는 이더리움 계정으로 입/출금이 가능한 계정이고, 컨트랙트계정(CA)은 스마트 컨트랙트의 주소로 프로그래밍 언어로 쓰인 코드(code)와 저장공간을 가진 계정이다.
일반적으로 사람에 의해 통제되는 계정이 외부 소유 계정이며, 사람에 의해 통제되기 때문에 사람이 다룰 수 있는 비밀키가 존재하고 이 비밀키를 통해 이더리움 네트워크에 다양한 명령을 요청할 수 있다. 반면, 컨트랙트 계정에는 비밀키가 존재하지 않는다.

이에 더하여 추가적인 내용들이 있으나, 정확하게 이해하지는 못했다.

3.2 트랜잭션

아래는 백서 내용

여기서 가스가 처음 나오게 된다.

가스 : 이더리움의 자원을 사용하는 데 필요한 연료

이더리움과 같은 블록체인에서는 많은 사람들이 동일한 데이터를 저장하고 동일한 연산을 중복되게 실시하므로 사용할 수 있는 자원에 한계가 있다. 따라서 공유지의 비극과 같은 일이 일어나는 것을 위해 자원에 비용을 매긴 것이 가스이다. 즉, 수수료와 비슷한 개념이라고 생각하면 된다.

3.3 메시지

컨트랙트 계정은 다른 컨트랙트 계정에게 메시지를 전달할 수 있다. 이를 통해 스마트 컨트랙트 프로그램은 서로 다른 스마트 컨트랙트 프로그램들과 다양한 정보들을 주고 받을 수 있고, 서로 다른 스마트 컨트랙트 프로그램들에게 다양한 명령들을 요청할 수 있다.

세션에서 배우기로, 메시지는 가스가 필요하지 않고, 블록체인 위에 기록될 필요도 없다고 한다.

이렇게 개념을 다 생각해본 후에 그림으로 한 번에 정리해보면 도움이 된다. 세션에서 들어주신 예시인데, 구성 요소들로만 이해를 하다가 실제 예시를 들어서 생각하니 조금 이해를 할 수 있었다.

0개의 댓글