마스터링 이더리움

 

 

 

 

목차

1장_이더리움이란 무엇인가

3장_이더리움 클라이언트

4장_암호학

6장_트랜잭션

10장_토큰

 

 

들어가는 말,

결론부터 말하자면 오늘 나는 마스터링이더리움 목표한 1,3,4,6,10장을 읽기는하였으나,

온전히 흡수하지 못했다.

하지만, 내가 지금까지 공부했던 내용 + 책에서 본 내용으로, 헷갈리는부분을 

질문하면서 다져갈 수 있어서 좋았다.

그래도 블록체인의 큰 원리는 이해를했으니 내일은 디파이분석하고, 목요일부터 한 번 코딩으로 달려보아야겠다!

 

메타버스를 구현하고싶다면? 참고해 볼 만한 사이트

https://threejs.org/

 

Three.js – JavaScript 3D Library

 

threejs.org

 

오늘 1,3,4,6,10장 정리를 해보자.

 

 

1장 이더리움이란 무엇인가 

4pg-5pg 개빈우드의 인물

 나는 비탈릭만 알고있었는데, 여기에서 개빈우드라는 인물이 나왔다.

 개빈은 이더리움을 블록체인 기반의 컨트랙트를 이용하여 프로그래밍 가능한 화폐를 만들기 위한 플랫폼으로 보는 것에서 범용 컴퓨팅 플랫폼으로 비전의 미묘한 변화를 일으키는 데 크게기여했다.

블록 체인 기반의 컨트랙트는 디지털 자산을 보유하고 사전 설정된 규칙에 따라 보유한 자산을 이동시킬 수 있다. 

 

5pg 프로토타입 코드를 배포했다.

     프로토타입이란?

https://damandler.tistory.com/entry/%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85%EC%9D%B4%EB%9E%80-%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85-%EB%9C%BB-%EC%95%8C%EA%B8%B0

 

6pg 이더리움 개발의 4단계

각 단계마다 주요 변경사항이 발생하였는데, 이전 버전과 호환되지 않는 방식으로 기능을 변경하는 '하드포크' 라고 하는 하위 버전이 포함될 수 있다. 

 

하드포크란 ?

새로운 블록생성 규칙을 적용한 블록을 기존 블록체인과는 별개로 새로운 블록체인을 시작하는 것을 말한다.

https://kobasp.tistory.com/entry/%ED%95%98%EB%93%9C%ED%8F%AC%ED%81%AC%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-%ED%95%98%EB%93%9C%ED%8F%AC%ED%81%AC-%EB%9C%BB%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

어느시점부터 하드포크가되겠다!

몇 번째 블록부터 우리는 새로 합의된 클라이언트를 사용하겠다! 

 

 

3장 이더리움 클라이언트 

이더리움 클라이언트 이더리움 블록체인에 참여하는 노드이다.

 

즉, 블록이 생성되면 정보를 전파받는 역할을 하는것이다.

52pg 풀노드를 위한 하드웨어 요구사항

최소 요구사항(블록들을 다운받기위해서 필요한 최소 요구사항)  : 

  • 2코어 이상의 CPU
  • 적어도 80GB의 여유 스토리지 공간
  • 최소 4G RAM SSD(HDD의 경우 8GB 이상)
  • 다운로드 속도가 초당 8MBit인 인터넷 서비스

59pg 이더리움기반 블록체인의 첫번째 동기화

위의 풀노드와 연관지어 생각하였는데, 일반적으로 이더리움 블록체인을 동기화 할 때 클라이언트는 처음부터,

즉 제네시스 블록이후 모든 블록 및 트랜잭션을 다운로드하고 유효성을 검사한다.

 

4장 암호학 

이더리움 기반 기술 하나는 컴퓨터 보안에 광범위하게 사용되는

수학의  분야인 암호학(cryptography)이다.

 

*암호학 : 비밀을 맑히지않고 비밀의 지식을 증명하거나(ex. 디지털 서명을사용),

데이터 진위성을 증명하는데 ('해시'라고도 알려진 디지털 지문을 사용)사용할 있다.

 

이런 유형의 암호화 증명은 이더리움 플랫폼(실제로 모든 블록체인 시스템) 작동을 위한 중요한 수학 도구이며, 이더리움 애플리케이션에도 광범위하게 사용된다.

 

모든 사람이 상태 업데이트의 정확성을 확인 있고, 합의에 도달 있다.

향후에는 영지식 증명과 동형 암호화같은 고급 암호화 도구를 사용하여 여전히 합의를 가능하게 하면서도 암호화된 계산을 블록체인에 기록할 있을 것이다.

 

장에서 이더리움에서 사용하는 암호 방식, 개인키와 주소의 형태로 자금의 소유권을 제어하는데 사용되는 공개키 암호화를 소개한다.

 

키와 주소 68pg

이더리움은 외부소유계정(EOA) 컨트랙트(contract)라는 가지 유형의 계정 갖고있다.

디지털 개인키, 이더리움 주소, 디지털 서명을 통해 외부 소유계정의 이더 소유권을 확립한다.

  • 계정주소는 개인키에서 직접 파생 되고, 개인키는 계정(account)이라고도                                                      불리는 단일 이더리움 주소를 고유하게 결정한다.

 

6장 트랜잭션 

 

외부소유계정(EOA) 의해 서명된 메시지이다.

이더리움 네트워크에 의해 전송되고 이더리움 블록체인에 기록된다.

기본 정의는 놀라울 정도로 매력적인 의미를 담고있다.

https://opentutorials.org/course/2869/18360

 

  • 트랙잭션 EVM에서 상태 변경을 유발하거나 컨트랙트를 실행할 있는유일한 방법이다.
  • 모든 것은 트랜잭션으로부터 시작된다.

트랜잭션 구조

다음 데이터를 포함하는 시리얼라이즈 바이너리 메시지

  • 논스, 가스가격, 가스한도, 수신자, , 데이터, v,r,s(EOA ECDSA 디지털 서명의 세가지 구성요소):

 

논스(nonce) 트랜잭션에서 가장 중요하고 이해하기 어려운 구성요소 하나다.

논스: 해당 주소에서 보낸 트랜잭션 건수 또는 연결된 노드가 있는계정의 경우 계정

       에서 만든 컨트랙트 생성 건수와 동일한 스칼라

 

트랜잭션을 세는 논스의 중요성에 대해 알아보자 :

  1. 트랜잭션 생성 순서대로 포함된다는 점에서 생기는 사용성상의 기능이며,
  2. 트랜잭션 복제 방지라는 주요 기능에서의 측면이다.

트랜잭션은 이더리움 시스템의 모든 활동의 시작점

트랜잭션 EVM 컨트랙트를 평가하고, 잔액을 업데이트하며,

일반적으로 이더리움 블록체인의 상태를 수정하는 '입력'이다.

 

 

10장 토큰 

254pg 화폐는 번째 (app) 뿐이다.

 

화폐, 자원, 자산, 접근, 지분, 투표, 수집, 신원, 증명, 유틸리티 ..

 

토큰 사용 :  유틸리티 또는 지분

현재 이더리움에 있는 거의 모든 프로젝트가 일종의 토큰으로 시작한다.

 

프로젝트에서는 토큰의 역할을 명확히 하고 시작하자.

대다수 프로젝트는 '유틸리티 토큰' 또는 '지분 토큰' 같은 가지 방법

하나로 토큰을 사용한다.

 

유틸리티 토큰 :

서비스, 어플리케이션 또는 자원에 접근이 요구되는 곳에 사용

지분 토큰 :

스타트업 같은 소유권에 대한 지분을 나타내는 토큰이다.

Ex. 배당금 이익분배를 위한 무의결 주식…

     플랫폼의 관리는 토큰 보유자들의 투표에 기반을 상당히 복잡한

     거버넌스 시스템을 통해 이루어진다.

 

그럼 유틸리티 토큰은 누가 필요한가?

  • 올바른 근거를 가진 사람이 필요하며, 결정하는것이다.
  • 토큰을 사용하지 않으면 애플리케이션이 동작하지 않으므로 토큰을 사용하라.
  • 토큰이 근본적인 시장장벽이나 접근권한문제를 해결한다면 토큰을 채택하라.

만일 유틸리티 토큰을 도입하는 유일한 이유가 자금을 빨리 조성할 있고

그것이 주식공모가 아닌 것처럼 위장하기 위한 것이라면, 그런 토큰을 도입하지마라!

 

이더리움 토큰

블록체인 토큰은 이더리움 이전부터 존재했다.

가지 측면에서 번째 블록체인 화폐인 비트코인은 자체가 토큰이다.

 

비탈릭부테린은 이더리움 같은 범용적이고 프로그래밍 가능한 블록체인의 가장

명확하고 유용한 애플리케이션의 하나로 토큰 제안했다.

 

토큰이 이더리움에서 어떻게 동작하나?

토큰 vs 이더

이더리움 프로토콜은 토큰에 대해 아무것도 모른다.

 

이더 전송 : 이더리움 플랫폼의 본질적 동작이지만, 토큰을 보내거나 소유하는것은 아니다.

 

-이더리움 계정의 이더 잔액 프로토콜 수준에서 처리되는 반면,

이더리움 계정의 토큰 잔액 스마트 컨트랙트 수준에서 처리된다.

 

-이더리움에서 토큰을을 만들려면, 새로운 스마트 컨트랙트를 만들어야한다.

-배포된 스마트 컨트랙트는 소유권, 이전 접근 권한을 포함한 모든 것을 처리한다.

 

-기존 표준을 따라는 것이 가장 바람직하므로, 아래의 표준을 참고하자!

 

 

260-262pg 필수 함수와 이벤트 / 선택적 함수 참고

 

 

 

공부할 때 참고하면 좋은 자료: 

https://kimsfamily.kr/342

https://docs.openzeppelin.com/contracts/3.x/erc20

https://github.com/OpenZeppelin

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기