이더리움 기술 소개
블록체인이란 무엇인가요?
블록체인은 네트워크의 여러 컴퓨터에 걸쳐 업데이트되고 공유되는 퍼블릭 데이터베이스입니다.
"블록"은 데이터와 상태가 "블록"이라고 알려진 연속적인 그룹에 저장되는 것을 의미합니다. 다른 사람에게 ETH를 전송하는 경우, 트랜잭션 데이터가 블록에 추가되어야 성공적으로 처리됩니다.
"체인"은 각 블록이 암호학적으로 부모 블록을 참조한다는 사실을 의미합니다. 즉, 블록들이 서로 연결되어 체인을 형성합니다. 블록 내의 데이터는 이후의 모든 블록을 변경하지 않고는 바꿀 수 없으며, 이를 위해서는 전체 네트워크의 합의가 필요합니다.
네트워크의 모든 컴퓨터는 각각의 새로운 블록과 전체 체인에 대해 합의해야 합니다. 이러한 컴퓨터를 "노드"라고 합니다. 노드는 블록체인과 상호작용하는 모든 사람이 동일한 데이터를 갖도록 보장합니다. 이러한 분산된 합의를 달성하기 위해 블록체인에는 합의 메커니즘이 필요합니다.
이더리움은 지분 증명(PoS) 기반 합의 메커니즘을 사용합니다. 체인에 새로운 블록을 추가하려는 사람은 누구나 이더리움의 기본 통화인 ETH를 담보로 스테이킹하고 검증자 소프트웨어를 실행해야 합니다. 그런 다음 이 "검증자"들은 무작위로 선택되어 블록을 제안할 수 있으며, 다른 검증자들이 이를 확인하고 블록체인에 추가합니다. 참여자들이 최대한 정직하게 행동하고 온라인 상태를 유지하도록 강력하게 장려하는 보상 및 페널티 시스템이 존재합니다.
블록체인 데이터가 어떻게 해시되고 이후 블록 참조 기록에 추가되는지 확인하고 싶다면, Anders Brownworth의 이 데모 (opens in a new tab)를 확인하고 아래의 관련 영상을 시청해 보세요.
블록체인의 해시에 대한 Anders의 설명을 시청하세요:
이더리움이란 무엇인가요?
이더리움은 컴퓨터가 내장된 블록체인입니다. 이는 탈중앙화되고 무허가성이며 검열에 저항하는 방식으로 앱과 조직을 구축하기 위한 기반입니다.
이더리움 생태계에는 이더리움 네트워크의 모든 사람이 상태에 동의하는 단일한 표준 컴퓨터(이더리움 가상 머신, 또는 EVM)가 존재합니다. 이더리움 네트워크에 참여하는 모든 사람(모든 이더리움 노드)은 이 컴퓨터 상태의 사본을 보관합니다. 또한, 모든 참여자는 이 컴퓨터가 임의의 연산을 수행하도록 요청을 브로드캐스트할 수 있습니다. 이러한 요청이 브로드캐스트될 때마다 네트워크의 다른 참여자들은 연산을 검증, 확인 및 수행("실행")합니다. 이 실행은 EVM에 상태 변경을 일으키며, 이는 전체 네트워크에 커밋되고 전파됩니다.
연산 요청을 트랜잭션 요청이라고 합니다. 모든 트랜잭션의 기록과 EVM의 현재 상태는 블록체인에 저장되며, 이는 다시 모든 노드에 의해 저장되고 합의됩니다.
암호학적 메커니즘은 트랜잭션이 유효한 것으로 검증되어 블록체인에 추가되면 나중에 조작될 수 없도록 보장합니다. 동일한 메커니즘은 또한 모든 트랜잭션이 적절한 "권한"을 가지고 서명되고 실행되도록 보장합니다(Alice 본인을 제외하고는 누구도 Alice의 계정에서 디지털 자산을 전송할 수 없어야 합니다).
이더란 무엇인가요?
이더(ETH)는 이더리움의 기본 암호화폐입니다. ETH의 목적은 연산을 위한 시장을 형성하는 것입니다. 이러한 시장은 참여자들이 트랜잭션 요청을 검증 및 실행하고 네트워크에 컴퓨팅 리소스를 제공하도록 경제적 인센티브를 제공합니다.
트랜잭션 요청을 브로드캐스트하는 모든 참여자는 네트워크에 일정량의 ETH를 포상금으로 제공해야 합니다. 네트워크는 포상금의 일부를 소각하고, 나머지는 최종적으로 트랜잭션을 검증하고, 실행하며, 블록체인에 커밋하고, 네트워크에 브로드캐스트하는 작업을 수행한 사람에게 보상으로 지급합니다.
지불되는 ETH의 양은 연산을 수행하는 데 필요한 리소스에 비례합니다. 이러한 포상금은 악의적인 참여자가 무한 연산이나 기타 리소스 집약적인 스크립트의 실행을 요청하여 의도적으로 네트워크를 막히게 하는 것을 방지하기도 합니다. 이러한 참여자들은 연산 리소스에 대한 비용을 지불해야 하기 때문입니다.
ETH는 또한 세 가지 주요 방식을 통해 네트워크에 암호경제적 보안을 제공하는 데 사용됩니다. 1) 블록을 제안하거나 다른 검증자의 부정직한 행동을 지적하는 검증자에게 보상하는 수단으로 사용됩니다. 2) 검증자에 의해 스테이킹되어 부정직한 행동에 대한 담보 역할을 합니다. 검증자가 잘못된 행동을 시도하면 그들의 ETH는 파괴될 수 있습니다. 3) 새로 제안된 블록에 대한 '투표'의 가중치를 부여하는 데 사용되어 합의 메커니즘의 포크 선택 부분에 반영됩니다.
스마트 컨트랙트란 무엇인가요?
실제로 참여자들은 EVM에 연산을 요청할 때마다 새로운 코드를 작성하지 않습니다. 대신, 애플리케이션 개발자가 프로그램(재사용 가능한 코드 조각)을 EVM 상태에 업로드하고, 사용자는 다양한 매개변수를 사용하여 이 코드 조각을 실행하도록 요청합니다. 우리는 네트워크에 업로드되고 실행되는 프로그램을 "스마트 컨트랙트"라고 부릅니다.
가장 기본적인 수준에서 스마트 컨트랙트를 일종의 자판기라고 생각할 수 있습니다. 특정 매개변수와 함께 호출될 때 특정 조건이 충족되면 일부 작업이나 연산을 수행하는 스크립트입니다. 예를 들어, 간단한 판매자 스마트 컨트랙트는 호출자가 특정 수신자에게 ETH를 전송하면 디지털 자산을 생성하고 소유권을 할당할 수 있습니다.
모든 개발자는 네트워크에 수수료를 지불하고 블록체인을 데이터 레이어로 사용하여 스마트 컨트랙트를 생성하고 네트워크에 공개할 수 있습니다. 그러면 모든 사용자는 네트워크에 수수료를 지불하고 스마트 컨트랙트를 호출하여 해당 코드를 실행할 수 있습니다.
따라서 스마트 컨트랙트를 통해 개발자는 마켓플레이스, 금융 상품, 게임 등과 같이 임의로 복잡한 사용자 대면 앱과 서비스를 구축하고 배포할 수 있습니다.
용어
블록체인
네트워크 역사상 이더리움 네트워크에 커밋된 모든 블록의 시퀀스입니다. 각 블록이 이전 블록에 대한 참조를 포함하고 있어 모든 블록(결과적으로 정확한 기록)에 대한 순서를 유지하는 데 도움이 되기 때문에 이렇게 명명되었습니다.
ETH
이더(ETH)는 이더리움의 기본 암호화폐입니다. 사용자는 코드 실행 요청을 처리하기 위해 다른 사용자에게 ETH를 지불합니다.
EVM
이더리움 가상 머신(Ethereum Virtual Machine)은 이더리움 네트워크의 모든 참여자가 상태를 저장하고 합의하는 글로벌 가상 컴퓨터입니다. 모든 참여자는 EVM에서 임의의 코드 실행을 요청할 수 있으며, 코드 실행은 EVM의 상태를 변경합니다.
노드
EVM 상태를 저장하는 실제 머신입니다. 노드는 서로 통신하여 EVM 상태 및 새로운 상태 변경에 대한 정보를 전파합니다. 모든 사용자는 노드에서 코드 실행 요청을 브로드캐스트하여 코드 실행을 요청할 수도 있습니다. 이더리움 네트워크 자체는 모든 이더리움 노드와 그 통신의 집합체입니다.
계정
ETH가 저장되는 곳입니다. 사용자는 계정을 초기화하고, 계정에 ETH를 입금하며, 자신의 계정에서 다른 사용자에게 ETH를 전송할 수 있습니다. 계정과 계정 잔액은 EVM의 큰 테이블에 저장되며, 전체 EVM 상태의 일부입니다.
트랜잭션
"트랜잭션 요청"은 EVM에서의 코드 실행 요청을 뜻하는 공식 용어이며, "트랜잭션"은 완료된 트랜잭션 요청과 그에 따른 EVM 상태의 변경을 의미합니다. 모든 사용자는 노드에서 네트워크로 트랜잭션 요청을 브로드캐스트할 수 있습니다. 트랜잭션 요청이 합의된 EVM 상태에 영향을 미치려면 다른 노드에 의해 검증되고, 실행되며, "네트워크에 커밋"되어야 합니다. 모든 코드의 실행은 EVM에 상태 변경을 일으키며, 커밋 시 이 상태 변경은 네트워크의 모든 노드에 브로드캐스트됩니다. 트랜잭션의 몇 가지 예는 다음과 같습니다.
- 내 계정에서 Alice의 계정으로 X ETH를 전송합니다.
- 일부 스마트 컨트랙트 코드를 EVM 상태에 게시합니다.
- EVM의 주소 X에 있는 스마트 컨트랙트 코드를 인수 Y와 함께 실행합니다.
블록
트랜잭션의 양이 매우 많기 때문에 트랜잭션은 일괄 처리, 즉 블록 단위로 "커밋"됩니다. 블록은 일반적으로 수십에서 수백 개의 트랜잭션을 포함합니다.
스마트 컨트랙트
개발자가 EVM 상태에 게시하는 재사용 가능한 코드 조각(프로그램)입니다. 누구나 트랜잭션 요청을 통해 스마트 컨트랙트 코드가 실행되도록 요청할 수 있습니다. 개발자는 스마트 컨트랙트를 게시하여 EVM에 임의의 실행 가능한 애플리케이션(게임, 마켓플레이스, 금융 상품 등)을 작성할 수 있기 때문에, 이를 종종 탈중앙화 애플리케이션(dapp)이라고도 부릅니다.
다음 단계
대부분의 독자는 순서대로 문서를 읽지만, 가장 빠른 경로는 여러분이 구축하려는 것에 따라 다릅니다.
- 이더리움과 상호작용하는 dapp: 계정과 트랜잭션을 살펴본 후 프레임워크를 선택하세요.
- 스마트 컨트랙 개발: 스마트 컨트랙트와 프로그래밍 언어를 살펴보세요.
- 노드 및 스테이킹: 노드 및 클라이언트를 살펴본 후 합의 메커니즘을 살펴보세요.
추가 읽을거리
- 이더리움 백서
- 이더리움은 도대체 어떻게 작동하나요? (opens in a new tab) - Preethi Kasireddy (참고: 이 자료는 여전히 유용하지만 머지 이전에 작성되었으므로 여전히 이더리움의 작업증명(PoW) 메커니즘을 언급하고 있다는 점에 유의하세요. 현재 이더리움은 실제로 지분 증명(PoS)을 사용하여 보호됩니다.)
시각적인 학습을 선호하시나요?
이 비디오 시리즈는 기초적인 주제에 대한 철저한 탐구를 제공합니다:
이더리움 기초 재생 목록 (opens in a new tab)
도움이 된 커뮤니티 리소스를 알고 계신가요? 이 페이지를 편집하여 추가해 주세요!
관련 튜토리얼
- 개발자를 위한 이더리움 가이드, 파트 1 – Python과 web3.py를 사용한 매우 초보자 친화적인 이더리움 탐구