본문 바로가기
IT 초보코딩의 세계/블록체인

블록체인이란?(블록체인과 이더리움 아키텍쳐) 2장

by 조이럭키7 2023. 6. 8.
반응형

블록 체인 과 이더리움 아키텍쳐

블록 체인은 여러 컴포넌트로 이뤄진 아키텍처이며 블록 체인을 특별하게 만드는 것은 이러한 구성 요소들이 기능하고 서로 상호 작용하는 방식

중요한 이더리움 구성 요소는 이더리움 가상 머신(EVM), 채굴자, 블록, 거래, 합의 알고리즘, 계정. 스마트 계약, 채굴, 이더, 가스 등

이더(Ether)

    ◎ 이더(Ether)이더리움의 통화

    ◎ 이더리움에서는 상태를 변경하는 모든 활동에 대한 요금으로 이더가 필요하고 또한 체인에서 성공적으로 블록을 생성하고 기록한 채굴자는 이더를 보상으로 받음

    ◎ 이더는 암호화폐 거래소에서 달러 혹은 다른 전통적인 통화와 쉽게 교환할 수 있음

    ◎ 이더리움에는 이더를 세는 화폐 단위계가 있는데 이더의 최소 단위 혹은 기본 단위는 웨이(wei)

    ◎ 화폐 단위의 이름과 값을 웨이로 나타낸 목록: https://github.com/ChainSafe/web3.js/blob/0.15.0/lib/utils/utils.js#L40

 가스

    ◎ 이더는 공개된 거래소에서 거래되며 가격은 매일 변동되는데 요금 납부에 이더를 사용한다면 같은 서비스를 사용하는 비용이 어떤 날에는 매우 높았다가 다른 날에는 낮을 수도 있음

    ◎ 사람들은 이더의 가격이 떨어지기를 기다렸다가 거래하려고 할 것인데 이는 이더리움 같은 플랫폼에 있어 바람직하지 못함

    ◎ 가스는 이더리움 내부 통화로 실행과 자원 활용 비용은 이더리움 내에서 가스 단위로서 미리 결정되는 이것을 가스비(gas cost)라고도 하는데 이더 가격이 상승할 때 더 낮은 가격으로 이더 가격이 하락할 때 더 높은 가격으로 조정할 수 있는 가스값(gas price)도 있음

    ◎ 문자열을 수정하는 계약 내의 함수를 호출하는 데는 미리 결정된 가스가 소요되며 사용자는 이 거래를 원활하게 실행하기 위해 가스를 지불해야 함

EVM

    ◎ 블록체인 네트워크는 채굴자가 가진 여러 개의 노드로 구성되며 채굴을 하지 않는 일부 노드는 스마트 계약과 거래의 실행을 돕는데 이것들이 EVM

    ◎ 각 노드는 다른 노드와 네트워크로 연결되는데 이러한 노드들은 피어 투 피어 프로토콜을 사용해 서로 통신하며 기본 포트 번호는 30303

 블록

    ◎ 블록 체인을 원장 또는 장부에 비유한다면 하나의 블록은 확인된 거래들을 기록하는 원장의 한 페이지 또는 하나의 표에 해당

    ◎ 블록 체인의 각 블록은 해시로 고유하게 식별되며 헤더 부분과 본체로 구성

    ◎ 헤더는 블록의 생성에 관한 정보(타임스탬프, 머클 루트, 넌스, 난이도 대상, 버전) 와 이전 블록에 대한 참조로 구성되며 본체 (body)는 승인된 거래들로 이루어 짐

    ◎ 하나의 블록이 성공적으로 검증되면(채굴되었다(mined) 라고 하기도 함) 그 블록은 공식 블록 체인의 일부가 되고 그러면 그 블록 안에서 새 비트 코인들이 생성되고(코인 베이스 거래) 그 비트 코인들이 검증자(채굴자)들에게 지급됨

    ◎ 블록 체인과 이더리움에서 모든 블록은 다른 블록과 관련이 있는데 두 블록 사이에는 부모 자식 관계가 있으며 부모는 단 하나의 자식만 가질 수 있고 자식은 단 하나의 부모만 가질 수 있음

    ◎ 이는 블록 체인의 체인을 형성하는 데 도움이 됨

    ◎ 부모 블록의 해시를 자식 블록의 헤더에 저장함으로써 관계를 맺음

    ◎ 이더리움에는 제네시스 블록 혹은 최초 블록이라는 개념이 있는데 이 블록은 체인이 초기화될 때 자동으로 생성됨

    ◎ 체인은 제네시스 블록과 함께 초기화되며. 제네시스 블록의 내용은 genesis.json 파일에 의해 결정

 거래

    ◎ 거래 또는 트랜잭션은 블록 체인 시스템의 가장 근본적인 구축 요소

    ◎ 거래는 블록 체인 네트워크 안의 두 주소 사이에서 진행된 가치 전달(transfer of value)을 나타내는데 여기서 가치는 암호 화폐

    ◎ 거래 정보는 블록 체인 프로토콜(비트코인이나 이더리움 같은)이 정의하는 작은 자료 구조로 구현되는데 그 자료 구조는 거래 정보의 특성들(메타데이터, 입력 들, 출력 들 등등)과 모형을 정의

    ◎ 자금을 보내는 사용자(전송자)는 자신의 개인 키(자신의 지갑에 담긴) 이용해서 거래에 서명하며 자금을 받을 대상(수신자)의 주소도 지정하고 전송을 마친 후 거래가 공표되면 네트워크의 사용자들은 디지털 서명과 공개 키를 이용해서 거래를 검증하고 전송자가 거래 정보에 명시된 특정 주소에 담긴 비트 코인들을 소비할 권한이 있는지도 점검

    ◎ 이더리움은 블록에 거래를 담는데 각 블록은 가스 한도가 있으며 각 거래는 실행을 위해 어느 정도의 가스를 필요로 함

    ◎ 원장에 아직 기록되지 않은 모든 거래로부터 누적된 가스는 블록 가스 제한을 초과할 수 없는데 이는 모든 거래가 단일 블록에 저장될 수 없음을 보증

    ◎ 가스 제한에 도달하자마자 블록으로부터 다른 거래가 삭제되며 채굴이 시작됨

    ◎ 거래는 해시되어 블록에 저장되고 두 거래의 해시가 해시되어 또 다른 해시를 생성하는데 이 과정은 결국 블록 내에 저장된 모든 거래에 대한 단일 해시를 제공하고 이 해시를 거래 머클 루트 해시(transaction Merkle root hash)라 하며 블록의 헤더에 저장됨

    ◎ 어떤 거래에 변경이 있을 경우 그것의 해시도 변경되며 결국 루트 거래 해시도 변경되고 블록의 해시가 변경되면 부모 해시를 저장하는 자식 블록도 해시를 바꾸게 되므로 누적 효과를 내서 거래를 변경 불가능(immutable)하게 만드는 데 도움이 됨

 

이더리움 노드

    ◎ 노드(node)는 피어 투 피어 프로토콜을 통해 연결되어 이더리움 네트워크를 형성하는 컴퓨터들을 가리킴

    ◎ 이더리움에는 두 종류의 노드가 있는데 EVM 과 채굴 노드

    ◎ EVM

  • EVM이더리움 네트워크의 실행 런타임
  • EVM의 일차적인 책임은 스마트 계약에 쓰여진 코드를 실행하는 런타임을 제공하는 것
  • EVM은 계약 계정과 외부 소유 계정, 자체적인 스토리지 데이터에 접근할 수 있는데 전체 원장에 접근할 수는 없고 현재 거래에 대해 제한적인 정보를 소유
  • EVM이더리움의 실행 요소
  • EVM의 목적은 스마트 계약의 코드를 한 행 씩 실행하는 것이지만 거래를 제출했을 때 거래는 즉시 실행되지 않고 그 대신 거래 풀(pool)에 들어가고 이러한 거래는 이더리움 원장에 아직 기록되지 않음

    ◎ 채굴 노드

  • 채굴자에게는 이더리움 체인에 거래를 기록할 책임이 있는데 채굴자가 원장에 거래를 기록하는 데 흥미가 있는 것은 그에 관련된 보상 때문
  • 채굴자가 얻는 보상은 두 가지로 체인에 블록을 기록하는 보상과 블록의 모든 거래로부터 누적된 가스료를 얻는것
  • 일반적으로 블록 체인 네트워크에는 많은 채굴자가 거래를 기록하기 위한 시도 및 경쟁을 벌이지만 단 하나의 채굴자만이 원장에 블록을 기록할 수 있으며 나머지는 현재 블록을 기록할 수 없음
  • 블록 기록을 책임지는 채굴자는 퍼즐이라는 방법으로 결정되는데 모든 채굴자에게 문제가 주어지며 그들은 각자의 컴퓨팅 파워를 사용해 퍼즐을 풀기 위해 노력
  • 퍼즐을 처음으로 푼 채굴자는 거래를 포함하는 블록을 자신의 원장에 기록하고 검증을 위해 블록과 논스(nonce) 값을 다른 채굴자에게 보낸 후 검증을 거쳐 받아들여지면 채굴자들이 가진 모든 원장에 새로운 블록이 기록됨
  • 이러한 과정에서 승리한 채굴자는 5 이더를 보상으로 받음
  • 모든 채굴 노드는 각자의 이더리움 원장 인스턴스를 보유하며 궁극적으로 모든 채굴자의 원장이 같아지고 채굴자는 원장이 최종 블록을 포함하도록 유지해야 함
  • 채굴자 혹은 채굴 노드가 수행하는 작업
    • 거래를 포함하는 새로운 블록을 채굴 혹은 생성하고 이더리움 원장에 기록
    • 새로 채굴한 블록을 다른 채굴자에게 광고하고 보냄
    • 다른 채굴자가 채굴한 새로운 블록을 반영함으로써 자신의 원장 인스턴스를 최신으로 유지
  • 채굴 노드(mining node)채굴자에게 속한 노드를 의미하는데 이러한 노드들은 EVM호스트되는 것과 동일한 네트워크에 속함
  • 특정 시점에 채굴자들은 새로운 블록을 생성하고 거래 풀로부터 모든 거래를 수집해서 새롭게 생성된 블록에 그것들을 추가하고 최종적으로 이 블록이 체인에 추가됨

스마트 계약

    ◎ 스마트 계약은 블록 체인 자체에 저장된 스스로 실행되는(self-executing) 스크립트

    ◎ 스마트 계약은 업무 논리(business logic) 불가침의 계약 조항들로 번역해서 중개인(broker)이나 변호사, 기타 중간 매개체에 의존하지 않고 스스로 실행되게 만든다. 스마트 계약 덕분에 블록 체인은 단순한 블록들의 네트워크 이상의 것이 됨

    ◎ 비트 코인 초창기의 스마트 계약은 기본적인 잠금(locking) 및 해제 (unlocking) 스크립트의 형태였지만 다른 블록체인들이 등장하면서 좀 더 복잡한 형태로 발전

    ◎ 스마트 계약은 블록 체인의 여러 동력 중 좀 더 강력하고 파괴적인 것에 속하며 기업들이 점점 더 많은 관심을 보임

    ◎ 가트너의 예측에 따르면 2022년이 되면 전 세계 기업과 조직의 25% 이상이 스마 트 계약을 사용할 것

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글