이더리움
- 이더리움은 퍼블릭 블록체인 기반의 분산 컴퓨팅 플랫폼이다.
응용 프로그램을 작성하고 글로벌 컴퓨터에서 실행 가능하며, 중단 시간, 검열 사기 등 제 3자의 간섭 없이 항상 실행되도록 보장함.
- 이더리움은 블록체인을 통해 중앙 권한 없이 두 사람끼리 돈을 이체할 수 있다.
이러한 모든 컴퓨터(노드)는 서로 연결되어 있고, 코드와 데이터의 전체 복사본을 가지고 있다.
이더리움 블록체인에 코드를 배포하면 코드가 네트워크의 모든 노드로 복제된다.
응용 프로그램에 데이터가 저장되면 모든 노드에서 해당 데이터가 복제된다. 네트워크에는 수천 개의 노드가 있어 모든 노드를 중지시키는 것은 거의 불가능하다. 따라서 응용 프로그램에 항상 엑세스할 수 있다.
이더리움 이해하기
- 기존 클라이언트 / 서버 아키텍처와 비교하는 것이다.
일반적인 웹 응용 프로그램은 일반적으로 JAVA, C#, 루비, 파이썬과 같은 프로그래밍 언어로 작성된 서버 단 코드로 구성된다.
- 전체 애플리케이션은 AWS, MS 에져, 구글 클라우드 플랫폼, VPS와 같은 호스팅 제공 업체에서 호스팅된다.
사용자는 웹 브라우저, curl/wget 또는 API를 통해 클라이언트를 사용하여 웹 응용 프로그램과 상호 작용한다.
중앙화된 웹 응용 프로그램이 있으며 모든 클라이언트가 이 응용 프로그램과 상호 작용합니다.
이더리움 아키텍처
- 모든 클라이언트(브라우저)는 응용 프로그램의 자체 인스턴스와 통신한다. 모든 클라이언트가 연결할 중앙 서버가 없다.
Dapp(탈중앙 app)과 상호 작용하려는 모든 사람은 컴퓨터/스마트콘 등의 기기에 실행중인 블록체인의 전체 복사본이 필요하다.
즉, 애플리케이션을 사용하려면 전체 블록체인을 다운로드한 다음, 애플리케이션 사용을 시작해야 한다.
탈중앙화의 배경은 단일/중앙화된 서버에 의존하지 않는 것이기 때문이다.
아래 설명할 제안된 솔루션들을 사용하면 하드 디스크와 RAM을 많이 사용하지 않아도 블록체인의 전체 복사본을 다운로드하고 실행하면서도 탈중앙화를 훼손하지 않을 수 있다.
1. 데이터베이스
- 네트워크의 모든 트랜잭션은 블록체인에 저장된다. 응용 프로그램을 배포하는 행위도 트랜잭션으로 간주된다. 후보자 투표를 위한 투표 응용 프로그램을 예로 들면 하나하나의 투표가 트랜잭션으로 간주된다. 이렇게 되면 모든 트랜잭션을 공개되며 누구나 보고 확인할 수 있다.
이 데이터는 절대 조작할 수 없다. 네트워크의 모든 노드에 동일한 데이터 복사본이 있는 지 확인하고, 유효하지 않은 데이터가 DB에 기록되지 않도록 하기 위해 이더리움은 작업증명(Proof of Work) 알고리즘을 사용하여 네트워크를 보호한다.
(참고 링크 : http://ethereum.stackexchange.com/questions/14/what-proof-of-work-function-does-ethereum-use)
What proof of work function does Ethereum use?
The Ethereum frontier network currently uses a proof of work (PoW) based consensus algorithm. But which specific PoW function does that algorithm use, and why was it chosen?
ethereum.stackexchange.com
2. 코드
- 모든 논리를 담는 곳이라고 보면 된다. 이더리움 세계는 솔리디티(Solidity)라는 언어로 논리/응용 프로그램 코드를 작성한다.
그런 다음 솔리디티 컴파일러를 사용하여 이더리움 바이트 코드로 컴파일한 다음 해당 바이트 코드를 블록체인에 배포한다. 따라서 이더리움 블록체인은 트랜잭션을 저장할 뿐 아니라 스마트 계약 코드를 저장하고 실행한다.
기본적으로 블록체인은 데이터를 저장하며 코드를 EVM(Ethereum Virtual Machine)에서 실행한다.
<참고 팁 : 이더리움에서는 웹 기반 Aapp을 만들기 위해 web3.js라는 자바스크립트 라이브러리가 있다. 이 라이브러리는 블록체인 노드에 연결된다.>
너무 길어서 다음 페이지에 계속..
참조 : Mahesh의 이더리움 입문 바이블
'개발 일기장 > Block Chain' 카테고리의 다른 글
블록체인을 파보자(3) (1) | 2025.01.26 |
---|---|
블록체인을 파보자(2) (2) | 2025.01.26 |