1. 이더리움이란 무엇인가?

▶️ 이더리움 = 스마트 컨트랙트(Smart Contract)라는 프로그램을 실행하는 오픈 소스에 기반을 둔, 전 세계에 걸쳐 탈중앙화된 컴퓨팅 인프라스트럭처

블록체인을 사용하여 시스템의 상태변화를 동기화하고 저장하며, 이더(ether)라는 암호화폐를 이용하여 실행자원 비용을 측정하고 제한한다.

 

✅ 비트코인과의 비교

비트코인 매우 제한된 스크립트언어
스크립트 언어가 의도적으로 지불 조건에 대한 단순한 참/거짓 평가에만 제한
이더리움 임의성과 무한 복잡성을 가진 코드를 실행할 수 있는 가상버신(Virtual Machine)을 운영하는 범용 프로그래밍이 가능한 블록체인
이더리움 언어는 튜링 완전(Turing Complete)언어다.
(이것은 이더리움이 범용 컴퓨터로 직접 작동할 수 있음을 의미한다)

이더의 사용 목적 = 월드 컴퓨터로서의 이더리움 플랫폼 사용료를 지불하기 위한 유틸리티 화폐

✅ 이더리움의 구성 요소

피어투피어 네트워크
(P2P network)
이더리움은 TCP포트 30303으로 접속 가능한 이더리움 메인네트워크에서 실행되며, D=Vp2p라는 프로토콜을 실행한다
합의 규칙
(consensus rules)
이더리움의 합의 규칙은 기준 사양인 황서에 정의되어있다.
트랜잭션
(transaction)
이더리움 트랜잭션은 to, from, value 및 data payroad가 포한된 네트워크 메시지다
상태 머신
(state machine)
- 이더리움 상태 전이는 바이트코드(byte code, 기계어 명령어)를 실행하는 스택기반 가상머신인 EVM(Ethereum Virtual Machine, 이더리움 가상 머신)에 의해 처리된다.
- 스마트 컨트랙트라는 EVM프로그램은 고수준 프로그래밍 언어(예.솔리디티)로 작성되고, EVM에서 실행되도록 바이트코드로 컴파일 됨
데이터 구조
(data structures)
이더리움의 상태는 트랜잭션 및 시스템 상태가 머클 패트리샤 트리라고 하는 시리얼라이즈 된 해시 데이터 구조로, 각 노드의 데이터베이스에 저장된다
합의 알고리즘
(consensus algorithm)
-  이더리움은 비트코인의 합의 모델인 나카모토합의를 사용한다
- 나카모토 합의는 순차 단일 서명 블록을 사용하여 작업증명(PoW)의 중요도 가중치가 가장 긴 체인(현재상태)을 결정한다
- 조만간 지분증명(PoS) 가중 투표 시스템인 코드명 캐스퍼(casper)로 전환할 계획이다

경제적 보안성
(economic security)
이더리움은 현재 이대시(Ethash)라는 작업증명(PoW) 알고리즘을 사용하지만, 향후엔 지분증명(PoS) 알고리즘을 사용할 예정이다.
클라이언트
(clients)
이더리움은 클라이언트 소프트웨어를 상호운용할 수 있는 몇 가지 구현체를 갖고있는데, 가장 유명한 것은 게스와 패리티다.

이더리움: 범용 블록체인

<비트코인>

트랜잭션이 상태전이를 일으켜 코인의 소유권을 변경하는 탈중앙화된 합의 상태머신이라고 생각할수있다.

상태전이는 여러 블록이 채굴된 후 모든 참가자가 시스템의 공통(합의)상태로 수렴할 수 있도록 합의규칙에 의해 제한된다

 

<이더리움>

이더리움 또한 탈중앙화 상태머신이다.

그러나 화폐 소유 상태만 추적하는 대신 이더리움은 범용 데이터 저장소를 추적한다

(즉, 키-밸류 튜플로 표현할 수 있는 모든 데이터를 저장할 수 있는 저장소의 상태전이를 추적한다,)

 

이더리움에는 코드와 데이터를 저장하는 메모리가 있으며,

이더리움은 블록체인을 사용하여 이 메모리가 시간에 따라 어떻게 변하는지를 추적한다,

범용컴퓨터-이더리움
공통점
이더리움은 상태머신에 코드를 로드하고 그 코드로 실행하고 그 결과 상태를 저장할 수 있다.
범용컴퓨터-이더리움
차이점
이더리움의 상태변화가 합의규칙에 의해 관리된다.
이더리움의 상태가 전체적으로 배포된다

 

✅ 이더리움과 튜링완전

- UTM(Universal Turing machine) = 튜링머신을 시뮬레이션하는데 사용할수있는 시스템

이더리움 가상머신이라는 상태 머신상에서 메모리에 데이터를 읽고 쓰면서 저장된 프로그램을 실행하 수 있는 이더리움 기능은 튜링완전시스템을 가능하게 하므로 UTM이라고 볼수있다.

이더리움은 한정된 메모리라는 제한조건에서 모든 튜링머신으로 계산될 수 있는 어떠한 알고리즘도 계산할 수 있다.

 

이더리움의 획기적인 혁신은 저장된 프로그램 컴퓨터의 범용 컴퓨팅 아키텍처와 탈중앙화된 블록체인을 결합하여 탈중앙화된 단일상태(싱글톤) 월드 컴퓨터를 만든 것이다.

이더리움 프로그램은 '어디에서나' 실행되지만, 합의규칙에 의해 보장되는 공통상태를 만들어낸다

문제 튜링완전은 특히 개방형 액세스 시스템에서는 정지문제로 인해 매우 위험하다.
튜링완전은 이더리움이 어떠한 복잡한 츠로그램이라도 계산할 수 있음을 의미하지만, 이러한 유연성은 보안과 자원관리에 몇가지 어려운 문제를 발생시킨다.
응당없는 기계는 껐다가 다시 켜도 되지만, 공개 블록체인에서는 불가능하다.

이더리움은 스마트컨트랙트가 종료될지 혹은 실제로 스마트 컨트랙트를 실행하지 않고 얼마나 오랫동안 실행될지를 예측할 수 없다
(경우에 따라서는 무한실행의 가능성도 있다)
노드가 유효성 검사를 시도할 떄 우연히 또는 의도적으로 스마트 컨트랙트가 영원히 지속하도록 만들 수 있다(사실상 서비스 거부공격)

이더리움이 사전에 자원사용을 예측할 수 없다면 스마트 컨트랙트가 사용하는 자원을 어떻게 제한할까?
해결 이러리움은 가스(gas)라는 과금 메커니즘을 도입한다.
가스는 각 프로그램이 사용할 수 있는 리소스를 제한해서 이더리움 튜링완전 계산을 허용하게 하는 메커니즘이다.

EVM이 스마트 컨트랙트를 실행하게 되면, 가스는 각 명령어(계산, 데이터 접근 등) 비용을 일일이 계산한다.
각 명령어는 가스단위로 미리 정해진 비용이 있다.
스마트 컨트랙트를 실행시킬 때 트랜잭션은 스마트 컨트랙트를 실행하는 데 사용할 수 있는 가스의최대 사용량을 가지고 있어야 한다.
만약 계산에 소비되는 가스의 총량이 트랜잭션에서의 가스 가용량을 초과한다면 EVM은 실행을 중지한다 (Out Og Gas)

트랜잭션을 위해 가스가 구매되고, 계산을 수행하고, 사용하지 않은 가스는 발신자에게 반환한다.

 

728x90

'5. Blockchain > Mastering Ethereum' 카테고리의 다른 글

6. 트랜잭션(Tx)  (0) 2022.07.14
5. 지갑  (0) 2022.07.14
4. 암호학  (0) 2022.07.14
2. 이더리움 기초  (0) 2022.07.14
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유