본문 바로가기

블록체인

이더리움(Ethereum)

728x90
반응형

이더리움을 공부하기 위한 자료로 이더리움 백서(white paper), yellow paper 등 다양한 자료가 있습니다. 우선 이더리움 공식 홈페이지의 개발자 문서를 통해 시작하려 합니다. 

 

ETHEREUM DEVELOPMENT DOCUMENTATION을 번역하고 관련된 개념들을 정리해보려고 합니다.

 

블록체인이란?

블록체인은 네트워크의 여러 컴퓨터들에서 업데이트되고 공유되는 공용 데이터베이스입니다.

 

"블록"은 "블록들"로 알려진 연속 그룹에 저장되는 데이터 및 상태를 나타냅니다. 만약 다른 사람에게 ETH를 보내는 경우, 성공하려면 트랜잭션 데이터가 블록에 추가되어야 합니다.

 

"체인"은 각 블록이 그들의 상위 부모 블록을 암호화 방식으로 가리킨다는 사실을 나타냅니다. 다시 말해서, 블록들은 서로 연결됩니다. 블록의 데이터는 모든 뒤따르는 블록들을 변경하지 않고는 변경할 수 없으면 네트워크 전체의 합의가 필요합니다. 

 

네트워크의 모든 컴퓨터는 각각의 새로운 블록과 체인 전체에 동의해야 합니다. 이러한 컴퓨터들을 "노드"라고 합니다. 노드는 블록체인과 상호작용하는 모든 사람들이 같은 데이터를 갖도록 보장합니다. 이 분산된 합의를 이뤄내기 위해, 블록체인은 합의 메커니즘을 필요로 합니다.

 

이더리움은 지분 증명(proof-of-stake) 기반의 합의 메커니즘을 사용합니다. 체인에 새 블록을 추가하고 싶어 하는 사람은 그 누구라도 최소 32 ETH를 입금 컨트랙트에 예치(stake)하고 검증 소프트웨어를 실행해야 합니다. 그리고 그들은 블록체인에 추가될 블록을 제안하도록 무작위로 선택될 수 있는데, 이는 다른 검증자들에 의해 확인을 받아야 합니다. 이 모델에는 일반적으로 하나의 체인만 있지만, 네트워크 지연과 정직하지 못한 행위들로 인해 체인의 헤드 근처에 같은 위치에 여러 블록들이 존재할 수 있습니다. 이를 해결하기 위해서, 포크 선택(fork-choice) 알고리즘은 하나의 정격(canonical) 블록 세트를 선택합니다. 이 선택된 블록들은 가능한 가장 무거운 체인을 형성하는 블록들이며, 여기서 '무거움'은 그 블록을 승인한 검증자의 수를 가리킵니다(그들이 예치한 ETH에 의해 가중됨). 가능한 한 정직하고 온라인상에서 사용할 수 있도록 참여자에게 강력한 인센티브를 제공하는 보상 및 처벌 시스템이 있습니다.

 

이더리움이란?

이더리움은 컴퓨터가 내장된 블록체인입니다. 이더리움은 앱과 조직을 탈중앙화(decentralized)되고, 무허가형(permissionless), 검열 방지(censorship-resistant) 방식으로 구축하기 위한 기반입니다.

 

이더리움 세계에는, 이더리움 네트워크 상의 모든 사람이 동의하는 상태(state)의, 하나의 표준 컴퓨터(이더리움 가상 머신 또는 EVM)가 존재합니다. 이더리움 네트워크에 참여하는 모든 참가자(모든 이더리움 노드)는 EVM의 상태의 사본을 가지고 있습니다. 또한, 모든 참가자는 임의의 계산을 수행하도록 EVM에 요청을 전파(broadcast)할 수 있습니다. 이러한 요청이 전파될 때마다, 네트워크 상의 다른 참가자들은 계산을 확인하고, 검증하고, 수행("실행")합니다. 이 실행으로 인해 EVM의 상태 변화가 일어나고, 전체 네트워크로 커밋되고 전파됩니다.

 

계산 요청은 트랜잭션 요청이라고 합니다. 모든 트랜잭션의 기록과 EVM의 현재 상태는 블록체인에 저장되고, 모든 노드에 의해 저장되고 동의가 이루어집니다.

 

ETH란?

Ether(ETH)는 이더리움의 기본 암호화폐입니다. ETH의 목적은 계산을 위한 시장을 허용하는 것입니다. 이러한 시장은 참여자들로 하여금 트랜잭션 요청을 확인하고 실행하며 네트워크에 계산 리소스를 제공하도록 경제적 인센티브를 제공합니다. 

 

트랜잭션 요청을 전파하는 참가자는 네트워크에 포상금의 일환으로 네트워크에 일정 량의 ETH를 제공해야 합니다. 네트워크는 결국 트랜잭션을 확인하고, 실행하고, 블록체인에 커밋하고, 네트워크에 전파하는 작업을 수행하는 사람에게 이 포상금을 수여합니다. 

 

지불된 ETH의 양은 계산을 수행하는데 필요한 리소스에 해당합니다. 이러한 포상금은 악의적인 참가자가 계산 리소스에 대한 비용을 지불해야 하므로, 무한한 계산 혹은 리소스 집약적인 스크립트의 실행으로 인해 의도적으로 네트워크를 차단하는 것을 방지할 수 있습니다. 

 

ETH는 세 가지 주요 방식으로 암호화 경제 보안을 제공하는 데 사용됩니다.

1) 블록들을 제안하거나 다른 검증자들의 정직하지 못한 행위를 밝혀내는 검증자들을 보상하기 위한 수단으로 사용됩니다. 

2) 검증자들에 의해 예치되어, 정직하지 못한 행위에 대해 담보 역할을 합니다. - 만약 검증자들이 잘못된 행동을 시도하려고 하면 ETH이 파괴될 수 있습니다. 

3) 새롭게 제안된 블록에 대한 '투표'를 평가하는 데 사용되어 합의 메커니즘의 일부인 포크 선택에 반영됩니다. 

 

스마트 컨트랙트란?

실제로 참가자들은 EVM에 계산을 요청할 때마다 새로운 코드를 작성하지 않습니다. 오히려, 애플리케이션 개발자들은 프로그램(재사용 가능한 코드 스니펫)을 EVM 상태에 업로드하고, 사용자들은 다양한 매개변수로 이 코드 스니펫을 실행하도록 요청합니다. 우리는 네트워크 스마트 컨트랙트에 의해 업로드되고 실행되는 프로그램들을 호출합니다.

 

매우 기본적이 수준에서, 스마트 컨트랙트는 자판기와 같은 것으로 생각할 수 있습니다. 특정 매개 변수로 호출될 때, 특정 조건이 만족된다면 어떤 작업이나 계산을 수행하는 스크립트입니다. 예를 들어, 호출자가 특정 수신자에게 ETH를 보내는 경우 간단한 판매자 스마트 컨트랙트는 디지털 자산의 소유권을 생성하고 할당할 수 있습니다.

 

모든 개발자는 스마트 컨트랙트를 개발하고 블록체인을 데이터 계층으로, 네트워크에 수수료를 지불하고,  네트워크에 공개할 수 있습니다. 그러면 모든 사용자는 코드를 실행하기 위해 스마트 컨트랙트를 호출하고, 다시 한번 네트워크에 수수료를 지불하게 됩니다.

 

따라서, 스마트 컨트랙트를 통해 개발자는 시장, 금융 상품, 게임 등과 같은 임의의 복잡한 사용자와 마주하는 앱과 서비스를 구축하고 배포할 수 있습니다.

 

용어

블록체인(Blockchain)

네트워크의 기록에서 이더리움 네트워크에 커밋된 모든 블록의 시퀀스. 각각의 블록은 이전 블록에 대한 참조를 갖고 있고, 이는 모든 블록에 대한 순서를 유지하는데 도움이 됩니다.(정확한 기록을 유지하는데도 도움)

 

ETH

Ether(ETH)는 이더리움의 기본 암호화폐입니다. 사용자들은 코드 실행 요청을 이행하기 위해 다른 사용자에게 ETH를 지불합니다.

 

EVM

이더리움 가상 머신(Ethereum Virtual Machine)은 이더리움 네트워크의 모든 참가자가 저장하고 동의하는 상태의 글로벌 가상 컴퓨터입니다. 모든 참가자는 EVM 상의 임의의 코드 실행을 요청할 수 있습니다. 코드 실행은 EVM의 상태를 변화시킵니다.

 

노드(nodes)

EVM 상태를 저장하는 실제 기계. 노드는 EVM 상태 및 새로운 상태 변경에 대한 정보를 전파하기 위해 서로 통신합니다. 모든 사용자는 노드에서 코드 실행 요청을 전파하여 코드 실행을 요청할 수도 있습니다. 이더리움 네트워크 자체는 모든 이더리움 노드들과 그들의 통신의 집합체입니다.

 

계정(Accounts)

ETH가 저장되는 곳. 사용자들은 계정을 초기화하고, ETH를 계정에 입금하고, 자신의 계정에서 다른 사용자에게 ETH를 전송할 수 있습니다. 계정과 계정 잔고는 전체 EVM 상태의 일부인 EVM의 큰 표(테이블)에 저장됩니다. 

 

트랜잭션(Transactions)

"트랜잭션 요청"은 EVM에서 코드 실행 요청에 대한 공식적인 용어이며, "트랜잭션"은 이행된 트랜잭션 요청 및 EVM 상태의 관련된 변경입니다. 모든 사용자는 노드에서 네트워크로 트랜잭션 요청을 전파할 수 있습니다. 트랜잭션 요청이 합의된 EVM 상태에 영향을 미치려면, 다른 노드에 의해 검증되고, 실행되고, "네트워크에 커밋"되어야 합니다. 코드의 실행은 EVM 상태에 변화를 줍니다. 커밋을 하게 되면, 이 상태 변화는 네트워크 상의 모든 노드들에게 전파됩니다. 다음은 트랜잭션의 예시입니다.

- X ETH를 나의 계정에서 Alice의 계정으로 보냅니다.

- 일부 스마트 컨트랙트 코드를 EVM 상태로 게시합니다. 

- EVM의 주소 X에서 인자 Y로 스마트 컨트랙트 코드를 실행합니다.

 

블록(Blocks)

트랜잭션의 양이 매우 많기 때문에, 트랜잭션은 배치 또는 블록으로 "커밋"됩니다. 블록들은 일반적으로 수십에서 수백 개의 트랜잭션을 포함합니다. 

 

스마트 컨트랙트(Smart contracts)

개발자가 EVM 상태에 게시한 재사용 가능한 코드 조각(프로그램)입니다. 누구나 트랜잭션 요청을 통해 스마트 컨트랙트 코드가 실행되도록 요청할 수 있습니다. 개발자는 스마트 컨트랙트를 게시하여 EVM에서 임의의 실행 가능한 애플리케이션(게임, 시장, 금융 상품 등)을 작성할 수 있기 때문에, 이를 dapps, 분산 앱(Decentrailized Apps)이라고도 부릅니다.

 

https://ethereum.org/en/developers/docs/intro-to-ethereum/

 

Home | ethereum.org

Ethereum is a global, decentralized platform for money and new kinds of applications. On Ethereum, you can write code that controls money, and build applications accessible anywhere in the world.

ethereum.org

728x90
반응형

'블록체인' 카테고리의 다른 글

이더리움 계정(Ethereum Accounts)  (0) 2023.03.23
WEB2와 WEB3  (0) 2023.02.10
디앱(댑, Dapp)  (0) 2023.02.09
이더(Ether)  (0) 2023.02.08