본문 바로가기

암호

이더리움 블록체인 게임 개발 - 책 요약

위의 이 책입니다.

1~4장을 요약해볼 건데, 음.. ㅎㅎ 빠르게 해보도록 하겠습니다.

1장

1.1 블록

블록체인은 순서가 정렬된 일련의 블록으로 구성된다. 이 블록은 메타 정보인 헤더와 트랜잭션으로 구성된다. 블록은 채굴자가 채굴하여 생성하며 네트워크 내의 다른 노드로 브로드캐스트 된다.

--> 블록은 채굴자가 채굴하면 만들어짐, 네트워크 내의 다른 노드로 브로드캐스트? 무슨 의미인지... 트랜잭션은 일련의 코드 묶음? 과 같은 거임. 블록은 헤더와 트랜잭션으로 이루어졌구나~

모든 노드는 일련의 합의 규칙에 따라 수신된 블록을 확인하여 합의 규칙을 충족시키지 못하는 블록은 네트워크에서 거부된다.

--> 블록이 네트워크 내의 노드에 의해 허가되면 네트워크에 포함된다는 것은 네트워크 내의 노드 == 블록이라고 봐도 되는 건가? '합의 규칙'을 만족시켜야만 네트워크에 포함될 수 있구나. 그러면 네트워크 내의 노드들은 합의 규칙을 모두 충족하겠네

fork는 네트워크가 합의 규칙을 두고 경쟁하는 둘 이상의 집합으로 나눠질 때 발생하는 이벤트이다. 대개 이더리움 공식 클라이언트 프로그램인 Geth라는 소프트웨어가 업데이트 될 때 발생하며, soft fork는 새 규칙이 이전 규칙의 하위 집합이고, hard fork는 새 규칙이 이전 규칙의 하위 집합이 아닌 경우이다.

--> 네트워크안에서도 합의 규칙을 두고 경쟁이 벌어져서, 서로 갈라지는 경우가 있구나. 그 중 하드포크에 의해 체인이 따로 갈라지는 경우도 있다고 하네

1.2 채굴

이더리움 네트워크의 채굴 노드는 이더해시라는 독자적인 작업 증명 알고리즘을 사용하여 블록을 생성하고자 경쟁한다. --> 채굴 노드? 노드는 블록아니었나? 아닌건가 아니면, 새로운 블록을 채굴하는 트랜잭션이 존재하는 걸까?

또 뭔가 막 나오는데 무슨 말인지 이해가 안감.. ㅠㅠ

1.3 트랜잭션

트랜잭션은 이더를 전송하거나, 스마트 컨트렉트를 배포하거나 배포된 스마트 컨트랙트의 함수를 실행한다고 한다.

--> 스마트 컨트랙트라는 곳에 적힌 코드를 실행하면서 상태 트리를 변경한다고 함. (근데 상태트리가 뭐지)

그리고 이 트랜잭션의 코드를 실행하는데에는 gas라는 자원을 소모한다. (gas는 이더를 통해 살 수 있다고 들은거 같기도 한데.)

1.4 EVM

이더리움의 연산을 실행하는데에는 gas가 소모되므로, 적당한 VM이 필요한데 이게  EVM이다.

1.5 상태트리

이더리움에서 사용하는 Keccak256해시 키를 32byte 값에 매핑하는 키/값 쌍으로 구성된 상태 트리이다. 솔리디티의 데이터 구조는 하나 이상의 상태 트리 항목을 사용하여 프로그래밍에 도움이 되는 프로그래밍 구문을 작성한다.

--> 상태트리는 이더리움에서 사용하는 데이터베이스라고 함. 이걸 트랜잭션이 읽고, 쓰고하면서 동작하는 듯. 이를 쓰는 게 공짜는 아니고 상태트리에 값을 적는 것은 상당한 gas를 소모한다고 함.

1.6 Web3

Big brother is watching you!

1.7 이더리움의 최근 변경사항

지분 증며오가, 샤딩에 대한 이야기가 나오는데 뭔이야긴지 하나도 모르겠다. 

1.8 비트코인 VS 이더리움

비트코인은 블록체인을 통해, 제 3자가 필요없는 화폐거래의 미래를 제시해주었으나, 이더리움은 트랜잭션을 통한 기술을 통해 단순 송금, 결제 등만 가능한 비트코인과 달리 여러가지 연산 및 기능을 수행할 수 있다. (gas를 소모하여) 여기서 이런 연산 및 기능 등의 집합을 스마트 컨트랙트라고 하는 거 같긴 하다.

1.9 주소와 키 쌍

무슨 뜻인지 잘 이해는 안가지만, 비대칭키 암호를 사용하여 이더의 소유권을 주장할 수 있다는 뜻인거 같다.

1.10 컨트랙트와 외부 계정

이더리움은 외부계정과 컨트랙트로 이루어지고, 논스가 어쩌고 이러는 데 뭔 말인지..

1.11 이더리움 내의 프로그램

이더리움 내의 프로그램에서는 반드시 하나 이상의 스마트 컨트랙트를 실행하여 동작하게 된다. JAVA에서 외부 클래스나 표준 라이브러리 끌어다 쓰듯이 말이다. API말고 바이트 코드인 ABI라는 것을 제공하여 이를 사용하고 그런다고 한다.

1.12 솔리디티 첫걸음

솔리디티라는 언어를 통해 이더리움을 작성할 수 있다.

1.13 해킹 방지

스마트 컨트랙트는 이더 잔고를 보유할 수 있어서 해커의 먹잇감이 되고는 한다. 또한 대부분의 솔리디티 애플리케이션 코드는 오픈소스이기 때문에 컨트랙트 코드에 보안상 결함이 남지 않도록 모범 사례를 따르는 것이 좋다.

솔리디티 개발은 한번 배포하면 업데이트하거나 수정할 수 없으므로, 처음부터 잘 만들어야 한다. 이런 이유로 보안에 매우 취약하기도 하다.

1.14 블록 탐색기

블록탐색기는 블록체인 탐색에 사용하기 쉬운 인터페이스를 제공하는 웹사이트이다. etherscan.io인 이더스캔은 이더리움을 위한 최고의 블록 탐색기라고 한다.

1.15 유용한 스마트 컨트랙트

스마트 컨트랙트 및 댑은 현재 급부상하는 기술로 잠재력이 큰 용례를 탐색하는 시기이다. 매우 유용하다는 이야기..

1.16 이더리움 게임의 장단점

단점 : 매우 느리다, 가스에 따라 차별적인 응답 시간 장점 : 투명성

1.17 업계 주요 인물

여러 명을 소개 시켜준다. 책에서 보도록 하자.

1.18 마치며

나머지 내용 요약 정리 및, 이더리움에는 보안이 매우 중요하다고 함.

2장

이건 그냥 설치하는 거니까 넘어감.

'암호' 카테고리의 다른 글

암호 기초 스터디 2주차 내용 요약  (0) 2021.07.19