여기서는 비트코인 백서와 거의 유사한 내용이다
https://velog.io/@leedc0101/%EB%B9%84%ED%8A%B8%EC%BD%94%EC%9D%B8-%EB%B0%B1%EC%84%9C-%EC%9A%94%EC%95%BD
저번 비트코인 백서에서 UTXO에 대한 개념을 이해하지 못했었는데
이더리움 백서를 통해 조금 이해할 수있었다.
UTXO란?
Unspent Transaction Output (쓰지 않은 거래 기록)
거래 기록을 토대로 거래하는 방식
A가 B에게 10비트코인을 준다고 할때
"내 지갑에 10비트코인 있으니까 이거 줄게!" 가 아니라
"전에 C에게 10비트코인 받았던 기록 보이지? 이거 줄게!"
이런 느낌
이더리움은 분산 어플리케이션 제작을 위한 대체 프로토콜을 만들며
튜링 완전 언어를 내장하고 있는 블록체인임
따라서 유용한 개발 기법과 개발 시간 단축, 높은 보안성을 통해 생태계를 구축
또한 스마트 컨트랙트를 이용해 누구든 분산 어플리케이션 작성 가능
이더리움에서 state는 어카운트로 이루어져있음
이더리움 어카운트는 다음 네 개의 필드를 갖고 있음
트랜잭션이란 보낼 메시지를 갖고 있는 서명된 데이터 패키지를 말하고, 다음을 포함
4~6번은 이더리움에서 추가된 것
4번 데이터 필드는 스마트 컨트랙트를 가능하게 하는, 기능적 부분을 포함하는 곳
5,6번은 DoS 공격을 막기 위해 추가된 수수료, 악의적인 반복 공격을 막도록 해준다.
계산이 많아질 수록 비싸지는 수수료
컨트랙트는 다른 컨트랙트에게 메시지 전달 가능
메시지는 따로 저장될 필요가 없고, 이더리움 실행환경에서만 존재하는 가상의 오브젝트임
다음 항목을 포함함
계좌를 변경하는 매커니즘에 대한 설명이다.
이더리움 컨트랙트 코드는 EVM 코드로 작성된다.
연산을 수행하기 위한 데이터 타입은 3가지가 있다.
이더리움 블록체인은 비트코인 블록체인과 유사하나, 몇 가지 차이점이 있다.
언뜻 보면, 모든 state를 블록에 저장하는 것이 비효율적으로 보일 수 있다.
하지만, state를 패트리시아 트리(머클 트리와 비슷) 구조로 저장해서 저장공간을 절약 가능
크게 3가지로 나뉜다