이더리움 추가개념

오미희·2021년 12월 14일
0

blockchain

목록 보기
13/13
post-thumbnail
Dapp(Decentralized Application)
: 탈중앙화 어플리케이션

1. 목적
- 시스템 상호작용에서 참여자간 신뢰 필요성을 최소화하는 것.
오직 스마트컨트랙에서 짜여진 로직에 의해 거래가 이루어짐.
ex) 쇼핑몰 구매자가 상품을 전달받은 경우에만 구매대금이 판매자에게 지불되고 거래가
완료되는 것.

2. 핵심 기술
- P2P 네트워크 (peer to peer)
: dapp의 로직은 각 서버에 동시에 독립적으로 존재하고 실행됨.
/ ex) 이더리움 네트워크 / 비트코인 네트워크
- 블럭체인
: p2p 네트워크를 통해 관리되는 분산 데이터베이스 형태.

합의
: 거래의 검증이 분산된 형태, 특정인이나 기관의 신뢰가 필요없는 형태,
즉 모든 참여자가 거래를 검증.

노드
: 참여자가 각자 소유한 서버
/ 각 서버가 서로 직접 통신하는 것을 피어노드라고 함.
/ 피어노드는 일정 시간마다 계속해서 검증
/ 각각의 노드에 앱 로직과 데이터가 저장됨
/ 네트워크 노드의 51퍼센트 이상의 검증이 이루어져야 하므로 해킹 사실상 불가능

블록
- 전자서명된 일련의 거래
- 메타정보(블록번호 및 타임스탬프 정보)
- 이전 블록에 대한 연결 정보
/ 거래내역 블록 블록 간의 연결은 변경 불가능.

web3.js
: 클라이언트가 네트워크의 특정 서버와 직접 통신하는 것을 가능케 함.

탈중앙화조직(= DO:Decentralized Organization)
: 사전에 정한 규칙에 따라 조직을 구성하는 개인 간의 상호작용를 결정하는 조직.

탈중앙화자율조직(DAO:Decentralized Autonomous Organization)
: DAO는 탈중앙화조직인 동시에 자율개체로, 외부 주체 간의 상호작용이 대부분 자동화(스마트컨트랙트)되어 있다.

통합개발환경 (IDE:Intergrated Development Environment)

스마트컨트랙트(= smart contract)

자율개체(= autonomous agent)
~ 외부 소프트웨어 서비스와 자율적으로 상호작용하는 소프트웨워 개체, 외부 환경에서 검증된 변경 상황에 따라 
스스로 재구성하거나 또는 재프로그래밍

게스(Geth: Go ethereum)
고 언어로 개발된 이더리움 공식 클라이언트 소프트웨어로 블럭에 담긴 데이터를 읽고 블럭을 전파하는 등 이더리움을 
구동할 수 있도록 해주는 도구이다.

패리티(Parity)
러스트로 개발된 이더리움의 또 다른 클라이언트 소프트웨어이다.

타원곡선전자서명알고리즘(ECDSA: elliptic curve digital signature algorithm)

머클패트리샤트리


블록체인

✔️ 블록체인기술

블록체인기술은 공개키암호화, 암호화 해시함수, 합의 알고리즘을 기반으로 한다.
블록체인은 타원곡선 전자서명 알로기름을 활용하여 전자서명한다.

  • 공개키암호화
  • 해시함수
    * 커밋먼트스킬(커밋리빌스킴)
  • 합의알고리즘
    대표적인 합의 알고리즘 종류에는 작업증명(PoW:Proof of Work)지분증명(PoS:Proof of Stake)이 있다.

✔️ 블록체인변화

▫︎ 블록체인 2.0

▫︎ 블록체인 3.0

✔️ 계정

  • 외부소유계정(EOA)
  • 컨트랙트계정
솔리디티 언어로 작성된 스마트 컨트랙트는 EVM 바이트 코드로 컴파일 된 후 컨트랙트 배포 트랜잭션에 추가된다.  
컨트랙트는 로컬 이더리움 노드로 푸시되고 네트워크 전체로 전파된다. 그런 다음 채굴되어 블록체인에 추가된다.
 - 출처 : 이더리움 디앱 개발 (책) -

✔️ 블록체인의 한계

블록체인은 확장성의 한계를 지니고 있다.
블록체인의 사용자가 증가할수록 블록체인의 거래처리 속도는 지연된다.

블록체인 시스템에서 네트워크에 참여하는 노드들은 모든 트랜잭션을 처리하는 동시에 각 노드는 전체 상태에 대한 
복사본을 유지하여야 한다. 
노드 각각은 모두 동일한 트랜잭션 기록을 가지고 있으며, 각 노드가 처리가능한 트랜잭션의 개수가 곧 블럭체인 
시스템이 처리가능한 트랜잭션 개수이다.
(즉 사용자가 증가할 수록 블록에 담겨야할 정보의 양이 늘어나고, 블럭 전파와 검증에 더 많은 시간을 소요하여 
낮은 트랜잭션 처리량을 가지게 되어 블록체인 시스템의 성능 저하됨.)

// 중앙통제서버를 가진 시스템에서는 트랜잭션이 증가할 때에 중앙서버를 늘려서 트랜잭션을 분산하여 처리 가능.
‣ 확장성 : 사용자의 증대에 유연하게 대응할 수 있는 정도
‣ 분산합의메커니즘

✅ 블록체인 확장성 문제 해결을 위한 솔루션

❏ 세그윗

❏ 블록크기확장

❏ off-chain state channel

상태채널 구현 가능한 대표적 방안 : 라이트닝(Lightning) 네트워크와 라이덴(Raiden) 네트워크

❏ 샤딩

❏ 플라즈마

❏ 트루빗


이더리움

  이더리움은 2015년 7월 30일 비탈릭 부테린(Vitalik Buterin)이 구현한 퍼블릭 블록체인 플랫폼이다. 결제나 거래 관련 시스템, 즉 화폐로서의 기능에 집중한 블럭체인과는 다르게 이더리움은 스마트컨트랙트를 구현된 분산어플리케인션 즉 디앱(=dapp)을 통해 화폐 그 이상의 기능을 가능하게 하여 확장성을 제공한다.

 이더리움은 와이어라는 P2P프로토콜을 통해 서로 통신하며, 해당 프로토콜은 블록에 담긴 데이터를 표준화된 방식으로 전송하여 C++, Java, 파이썬, Go 등의 여러 프로그래밍 언어 간에도 원활한 상호작용이 가능하다.

 이더리움 노드는 거래내역 및 블록을 네트워크에 전파하고, 블록에 담긴 애플리케이션 코드를 실행하는 역할을 한다. 이러한 이더리움 노드는 이더리움 클라이언트와 블록체인 데이터베이스로 구성되어 있으며, 노드 유형은 전체 노드와 채굴 노드 두가지이다.

✔️ 노드 유형

  • 전체노드(full node) : 수동적 거래내역 처리 / 새로운 블럭 생성 불가

  • 채굴노드(mining node) : 적극적 거래내역(트랜잭션) 처리 / 새로운 블럭 생성하고, 블럭체인에 추가후 P2P네트워크를 통해 피어 노드에게 블럭 전파

    채굴 : 새로운 블록을 블록체인에 추가하고 암호화폐를 보상으로 받는 과정.

✔️ 노드 구성

❏ 이더리움 클라이언트

  • 이더리움 가상머신
    : 솔리디티나 EVM 바이트코드로 작성된 스마트 컨트랙트 실행
  • 메모리 풀
    : 노드가 수신한 거래내역을 네트워크에 전파하기 전에 저장하는 공간
  • 클라이언트 프로세스
    : 수신된 메시지 및 거래내역을 적절하게 EVM에 보내거사 거래내역을 메모리에 저장하고 검색, 피어노드에서 받은 블록을 처리하고 블록체인 데이터베이스의 로컬 복사본에 추가
  • JSON-RPC API
    : 리모트 프로시더 콜(Remote Procedure Call) (RPC) 명령어 인터페이스를 자바스크립트(Javascript)의 제이슨(JSON)형태로 지원하는 것으로, 블록체인의 내용을 읽고 블록을 생성하는 등의 일을 원격으로 하는 것을 가능케 한다.

❏ 블록체인 데이터베이스

✔️ 이더리움의 확장성문제 해결방안

이더리움은 확장성문제를 전파 속도 향상에 초점을 맞추어 해결하고자 하였다.

❏ 플라즈마(plasma)

이더리움 메인 체인에서 일어나는 거래량을 자식체인(=child-chain)으로 분산하는 시스템을 의미하는 것으로, 확장성 문제 솔루션 중 오프체인의 일종이다.
자식체인에서 트랜잭션을 처리하고 최종적인 트랜잭션의 결과를 상위체인에 반영하는 것이다.

‣ 각각의 체인은 트리구조로 연결된다.
‣ 자식체인에서 독립적으로 트랜잭션 처리 후 처리된 트랜잭션들에 대한 블록을 생성 후 해당 블록 헤더의 해시값을 
상위 체인에 반영하는 식의 과정을 거친다.

❏ 샤딩(Sharding)

각각의 노드가 자신이 속한 샤드의 트랜잭션만을 처리하는 것. 즉 모든 트랜잭션이 아닌 일부 트랜잭션에 대해서만 분산처리가 가능해짐.

‣ 샤딩이란?
하나의 데이터베이스에 저장되어 있던 데이터를 하나 이상의 데이터베이스로 수평 분할하여 처리하는 것

❏ POS전환

❏ 라이덴 네트워크(Raiden Network)

❏ 트루빗(Trubit)


‣ 레이어? 레이어1과 레이어2?
- 레이어는 블록체인이 실행되는 생태계 정도로 생각하면 될 듯.
- 비트코인 이더리움 등이 대표적인 레이어1 블록체인이며, 이더리움 생태계 위에서 실행되는 폴리곤 등과 같이 
  기존의 레이어1 블록체인 위에서 실행되는 또 다른 블록체인 시스템 등을 레이어2.
- 레이어1 블록체인은 높은 보안성과 탈중앙화를 가지는 대신에 수수료 증가 거래속도지연 등의 확장성 문제를 위한 
  대안으로 탄생된 것이 레이어2이다. 레이어2 블록체인은 레이어1 블록체인에 비하여 보안성은 떨어지는 대신에 개선된 
  트랜잭션처리속도와 더욱 저렴한 수수료를 가진다.
  
‣ 레이어2 확장성 솔루션 기술 분류
- State channel
- Sidechain
- off-chain computation


출처
책-이더리움디앱개발
블록체인확장성문제와솔루션1
블록체인확장성문제와솔루션2
이더리움확장성
레이어3확장성솔루션

profile
안녕하세요

0개의 댓글