Web3은 방대하고 복합적이며 다양한 구성 요소, 기술 및 개념을 결합한 것입니다. Web3, 블록체인 및 암호화에 새롭다면, 또는 베테란이라면, 본 문서를 통해 Web3를 구동하는 다양한 구성 요소에 대한 고수준 개요를 제공받아 각 구성 요소의 목적과 이점을 이해할 수 있습니다. 구체적으로 이 시리즈는 다음을 목표로 합니다:
기본적인 Web3 구성 요소의 개요 제공
다양한 구성 요소의 목적 평가
Web3는 인터넷의 다음 세대로 정의되며, 디지털 소유권, 오픈 시스템, 투명성 및 변경 불가능성을 제공하는 현재의 인터넷을 결합합니다. Web3, 블록체인 및 암호화는 밀접한 관련 주제입니다만 여기서는 세 가지 별도 용어로 고려되었습니다:
블록체인: 디지털 소유권, 투명성 및 변경 불가능성을 제공하는 기술적 혁신
암호화: 암호화폐의 준말로, 블록체인 네트워크의 암호화폐-안전한 토큰을 설명함
Web3: 블록체인, 암호화 등을 포함하며 그 위에 구축된 모든 생태계 및 혁신을 의미함
Web3를 이해하기 위해서는 먼저 기본적인 블록체인 및 암호화 기술을 이해해야 합니다. Web3는 아직 상대적으로 어린 개념입니다. 비트코인은 2009년에 처음 출시되었으며, 새로운 기술적 혁신이 매우 빠른 속도로 시장에 진입하고 있습니다.
본 시리즈가 여러분이 Web3를 탐색하고 본 시리즈 이상으로 자체적으로 연구할만한 분야를 식별하는 데 도움이 되기를 바랍니다. 매 주제를 더 깊게 파헤칠 추가 자료의 수십 개의 링크가 도움을 줄 수 있도록 흩어져 있습니다.
이 시리즈는 세 부분으로 나뉘어 있으며, 이 첫 번째 부분은 Web3 노드 인프라부터 레이어 1 블록체인 네트워크가 어떻게 작동하는지까지 모두 다룹니다. 다음 부분은 레이어 2, 상호운용성 및 이 첫 부분에서 제시된 기반으로 빌드된 방대한 dApp 생태계를 다룰 것입니다. 마지막 부분에서는 오프-체인 환경 및 온/오프-체인 통신을 다룰 것입니다.
Web3 인프라 개요
우리는 On-chain 생태계를 반영하는 여러 부분으로 Web3 인프라를 분류합니다. On-chain 생태계를 지원하는 오프-체인 환경 및 분산 네트워크를 연결하고 오프-체인 환경과 연결을 가능하게 하는 미들웨어를 반영하는 여러 섹션으로 Web3 인프라를 분류합니다.
On-chain 생태계
노드 레이어: 채굴/확인 노드, 노드 클라이언트 소프트웨어, 채굴/스테이킹 풀
네트워크 레이어:
레이어 1 네트워크: 단일 네트워크, 모듈식 네트워크, 합의 (PoW, PoS), 공유 원장 기술, 가상 머신 및 EVM 호환성
블록체인 생태계
웹3의 블록체인 생태계는 세 가지 주요 레이어로 나뉩니다:
분산 애플리케이션(dApp) 레이어
네트워크 레이어
노드 레이어
이 세 레이어를 결합하여 웹3에서 가장 잘 알려진 스마트 계약 주도의 생태계와 애플리케이션을 가능케 합니다. 우리는 노드 레이어부터 시작하여 dApp 레이어까지 블록체인 생태계를 살펴봅니다.
노드 레이어
노드 레이어 강조된 웹3 생태계도
이 레이어는 종종 하드웨어 레이어로도 불리며, 이 수준에서는 특정 블록체인 네트워크에 참여하기 위해 하드웨어 및 해당 하드웨어 운영에 관련된 모든 것이 설정됩니다.
노드 클라이언트
노드는 네트워크별 소프트웨어인 클라이언트를 실행하는 서버로, 이를 통해 노드는 네트워크의 블록 생성 프로세스에 참여하고 전체 블록체인의 역사적 데이터에 액세스하며 RPC 명령을 실행할 수 있습니다(이에 대해 더 자세히는 Layer1 섹션에서 설명합니다). RPC는 원격 프로시저 호출을 의미하며, 노드에서 특정 명령을 호출하고 실행할 수 있습니다.
본 문서 작성 시점에서 시가총액 기준으로 두 가장 큰 블록체인 네트워크는 Bitcoin과 Ethereum입니다. 두 네트워크에 참여하기 위한 요구 사항은 다르지만, 모두 해당 클라이언트의 하드웨어 사양을 충족시키는 서버(컴퓨터), 인터넷 연결 및 클라이언트 소프트웨어가 필요합니다. Bitcoin의 경우 가장 인기 있는 클라이언트 소프트웨어는 Bitcoin Core이며, Ethereum의 경우 가장 인기 있는 클라이언트는 GETH (Go Ethereum)입니다.
클라이언트는 블록체인의 규칙을 코딩하고, 검증된 새 블록이 동일한 규칙을 준수하도록 보장하는 역할을 합니다. 이는 만약 노드가 다른 노드들이 받아들이지 않은 블록을 검증하면, 네트워크가 포크될 수 있습니다: 일부 노드는 한 세트의 규칙을 따르고, 나머지 노드들은 다른 세트의 규칙을 따릅니다. 동일한 기록을 공유할지라도, 다른 유효성 검사 규칙이 도입되는 순간 새로운 체인이 생성되고, 해당 새 규칙을 수락한 노드들에 의해서만 수락됩니다.
블록체인 및 포크된 체인이 같은 블록 기록을 공유
위에서 언급한 것은 가장 인기 있는 클라이언트들이지만, 블록체인 네트워크에 참여하는 데 사용할 수 있는 유일한 클라이언트는 아닙니다. 다른 클라이언트들이 동일한 유효성 검사 규칙을 사용한다면, 블록을 검증하고 블록체인에 기여할 수 있습니다.
블록체인 작동 방식에 대한 자세한 내용은 Layer1 Networks 섹션으로 이동하세요.
Node 인프라 제공업체
평균 사용자는 종종 공개 네트워크의 탈중앙화를 지원하기 위해 자체 노드를 실행하도록 권장 받습니다. 사용자가 자체 노드를 실행할수록, 단일 액터가 대다수 노드를 누적하고 네트워크를 공격할 가능성이 줄어듭니다. 블록 보상과 거래 수수료를 통해 사용자들은 자신의 노드를 실행하는 것을 장려 받는데, 이는 네트워크가 노드 운영자들에게 분배하는 것입니다.
이러한 인센티브가 있음에도 불구하고, 사용자가 자체 노드를 설정하고 운영하고 싶어하지 않는 다양한 이유가 있습니다: 복잡한 기술적 설정, 필요한 하드웨어를 구입하기 위한 초기 자본의 제한 또는 일시적으로만 노드가 필요한 경우 등. 이러한 경우에 노드 인프라 제공자가 등장합니다. 이러한 제공업체들은 노드 설정 및 운영을 처리하며, 노드 운영에 대한 종단간 서비스를 제공합니다.
clients. Some larger providers that specialize in node infrastructure include Blockdaemon and Atlas.
An often-overlooked purpose of these node infrastructure providers is to set up nodes for new blockchain projects that have yet to build a strong and decentralized node network. These newer networks can utilize node infrastructure providers to bootstrap a globally distributed network without the hassle of setting up their own infrastructure in each country.
Mining Pools and Staking Providers
While node infrastructure providers set up nodes for clients, mining pools and staking providers operate their own nodes but allow users to pool their resources under their nodes. This increases the likelihood of the nodes receiving block rewards and transaction fee revenue from the network. For users that want to put their idle hardware to use, this means they can join a pool without any complex technical set up and start earning revenue with their existing resources.
There are some nuances to node operations across networks with different consensus mechanisms. Essentially, networks that use Proof-of-Work pool computational resources, while Proof-of-Stake networks pool network tokens. For Proof-of-Work networks mining pools heavily reduce the technical barriers to entry, while for Proof-of-Stake networks staking providers heavily reduce the financial barrier to entry (minimum stake required). More details are covered in the consensus section.
The node layer of Web3 consists of thousands of globally distributed nodes, where each node that is part of a specific network runs the client software required for that network. As long as the validation rules of the client software are the same as the rest of the nodes on the network, the node can operate normally without causing a fork in the blockchain.
While anybody can run their own node on a public decentralized blockchain 네트워크, 노드 인프라 제공 업체는 노드를 실행하고 네트워크를 부트스트랩하기 위해 필요한 하드웨어를 설치하고 운영하는 것에 특화되어 있습니다.
마지막으로, 채굴 풀과 스테이킹 제공 업체는 채굴 및 스테이킹 작업에 대한 진입 장벽을 낮추는 역할을 합니다. 이를 통해 사용자들은 전체 네트워크 요구 사항을 충족시킬 필요없이 채굴 및 스테이킹 활동에 참여하고 네트워크 인센티브를 획득할 수 있습니다.
네트워크 계층
네트워크 계층이 강조된 Web3 생태계 지도
블록체인 네트워크는 위에서 언급한 노드 인프라 구조 위에서 운영됩니다. 네트워크 계층에는 다양한 부분이 포함되어 있으며, 필수적인 계층은 Layer1 네트워크, Layer2 네트워크 및 이러한 네트워크 간 통신을 위한 상호 운용성 계층으로 구성되어 있습니다.
Layer1 네트워크
비트코인, 이더리움 그리고 Solana는 현재 제일 잘 알려진 Layer1 네트워크일 것입니다. Layer1 네트워크는 거래를 체결하는 Web3 생태계의 주요 네트워크를 가리킵니다. Layer2 네트워크는 Layer1 네트워크의 더 깊은 계층으로, 거래를 이동시킬 수 있는 계층입니다 (이에 대해 다음 기사에서 자세히 알아보겠습니다). 구조적으로 매우 다르지만, 모두 유사한 구조 기본 요소를 사용합니다:
각각의 네트워크에는 네트워크 상의 거래를 추적하는 공유 원장이 있음
모든 네트워크에는 어떤 거래와 블록을 유효한 것으로 간주할지에 대한 합의를 달성하기 위한 메커니즘이 있음
각각의 네트워크에는 네트워크에 전송된 명령을 계산하는 방법이 있음 (이더리움, Solana 및 기타 EVM-호환 체인을 위한 가상 머신에 대한 것 및 비트코인을 위한 비트코인 스크립트)
다음 섹션에서는 이러한 세 가지 요소 각각을 살펴보고 거래에서 블록체인까지 어떻게 이동하는지 분석할 것입니다.
공유 원장
모든 탈중앙화된 블록체인 네트워크에는 공유 원장이 있습니다. 사실, 블록체인 이 공유 원장입니다. 한 발 뒤딛어 보면, 원장이란 비즈니스의 경제적 활동을 기록하고 돈의 이전 또는 자산 소유권 이전을 추적하는 데 사용되는 것입니다. 공유 원장이라는 용어는 원장이 한 개체가 아닌 많은 개체에 의해 보유되고 관리된다는 것을 의미합니다.
탈중앙화된 블록체인 네트워크에서는 블록체인(네트워크 상의 모든 활동을 기록한 원장)이 네트워크의 모든 노드에 저장됩니다. 활동의 원장이 한 곳의 중앙화된 권한에 의해 관리되고 저장된다면, 아래와 같은 문제점이 발생할 것입니다.
원장이 전 세계 여러 백 개에서 수천 개의 노드에 저장되어 있는 경우, 의도적이든 의도하지 않든 변조나 손상이 매우 어려운 시스템을 얻을 수 있습니다. 한 노드가 소실되어도 사용자가 원장과 계속 상호 작용할 수 있는 다른 많은 노드가 있습니다.
중앙 집중식과 탈중앙화 시스템에서 노드 기능 장애의 영향
그러나 이러한 시스템은 다른 어려움을 도입합니다: 네트워크의 노드들은 어떻게 올바른 또는 유효한 원장 항목에 동의할까요? 이것이 합의 알고리즘의 역할입니다.
합의
블록체인 네트워크에서 합의라는 용어는 네트워크 내 노드들 사이에서 어떤 원장 항목(거래와 블록)이 유효하고 노드들이 수락해야 하는지에 대한 일반적인 합의를 나타냅니다.
학계에서는 이 문제를 비잔틴 장군 문제라고합니다. 이 문제는 시스템의 참여자들이 재앙을 피하기 위한 전략에 합의해야하지만 시스템 내 일부 참여자들이 신뢰할 수 없는 상황을 설명합니다.
비잔틴 장군 문제
이 가상 시나리오에서 세 명의 참여자가 있고, 그들은 적의 공격을 피하기 위해 비잔틴 전쟁에서 다음 단계를 조율해야 합니다. 세 명 중 한 명은 악의를 가지고 남은 당사자들에게 일관되지 않은 메시지를 전달합니다. 시스템 내 정직한(악의가 없는) 참여자들은 어떻게 신뢰할 대상을 알 수 있을까요? 또는 다르게 말하면 시스템 내 모든 참여자들은 어떻게 어떤 메시지를 수용할지에 대해 합의할 수 있을까요?
이 질문은 더 많은 참여자가 시스템에 참여함에 따라 (오해된)통신의 복잡성이 기하급수적으로 증가하기 때문에 중요합니다.
더 많은 참여자와 함께하는 비잔틴 장군 문제는 기하급수적으로 더 복잡해집니다
이 문제를 성공적으로 해결한 첫 번째 시스템은EO가 됩고한책믹다-Challen러고 함니다
글로벌 규모에서 최초의 암호화폐는 비트코인과 그의 작업증명 알고리즘(PoW)이었습니다.
작업증명 (PoW)
비트코인의 작업증명 알고리즘(PoW)은 바이잔틴 장군 문제를 해결하기 위해 메시지가 각 노드에 의해 수락되기 위해 일종의 유효성 검사를 거쳤다는 것을 요구함으로써 작동합니다. 이 유효성 검사를 거치지 않은 메시지는 유효하지 않으며 노드에서 거부됩니다.
비트코인의 작업증명 콘센서스 알고리즘을 설명하는 플로우차트
유효성 검사 과정은 또한 계산 리소스가 필요하기 때문에, 유효성 검사를 가장하기 위해 가짜 유효성 확인을 하는 것은 현실적으로 어렵습니다. 이것이 바로 "작업증명"이라는 용어의 유래입니다: "나에게 당신의 메시지를 수락하기 위해 필요한 작업을 완료했음을 증명하라"는 의미입니다.
이론에서 실제로 거래, 블록 및 PoW 프로세스의 작동 방식을 알아보겠습니다. 걱정하지 마세요 - 기본적인 내용만 다룰 겁니다!
블록 구조
비트코인 블록은 거래가 저장되는 곳이며, 암호 퍼즐이 완료된 후에 네트워크 전체에 방송되는 조심스럽게 제어된 정보 단위입니다.
비트코인의 블록은 주로 두 부분으로 구성됩니다:
블록 헤더
거래 목록
거래 목록은 그대로, 즉 각 노드가 수신하고 블록에 포함시키는 거래 목록입니다. 비트코인에서 거래란 비트코인 네트워크에서 비트코인을 전송하는 것을 의미합니다 (주의: 소문자 b로 시작하는 '비트코인'은 비트코인 자산을 가리키는 반면, 대문자 B로 시작하는 '비트코인'은 비트코인 네트워크를 의미합니다). 비트코인 네트워크는 비트코인 자산의 이동을 추적하는 공용 장부이며, 따라서 비트코인에서의 거래는 주소 간 비트코인 이전입니다.
비트코인은 거래출력(UTXO, Unspent Transaction Output)를 사용하여 거래를 처리합니다. 거래와 UTXO에 대한 자세한 내용은 UTXO 모델 대 계정 모델 섹션에서 다룹니다.
블록 헤더는 흥미로운 곳입니다. 각 블록의 거래 수와 각 거래의 이체 금액이 블록마다 다르지만, 블록 헤더의 요소는 각 거래마다 동일합니다.
비트코인 블록의 해부학
블록 헤더에는 많은 요소가 포함되어 있지만, 시스템에 중요한 각 요소에 대해 간략히 언급할 것입니다:
이전 블록 헤더의 해시: 이전 블록의 모든 요소가 해싱됩니다
난이도 목표: 계산된
‘leading 0s’ and thus ºmining difficulty
Nonce: an arbitrary number (nonce is short for “nonsense”)
Merkle root: hashed output of all transactions within this block
From Block to Blockchain
Before we proceed, we need to briefly cover hashing. Hashing is the process of transforming a string of characters into another, usually fixed-length, value. When a hashing algorithm is deterministic, it means that with the same inputs, the outputs will be the same every time. However, if one character of the original string changes, the hash output changes entirely so much so that no relationship to the original string can be inferred. See below comparison of Bitcoin vs bitcoin SHA256 hashing algorithm output.
In Bitcoin, once a block is mined the header of that block is hashed and included as an input in the next block. Because the hash of the previous header of each block is included in the next block, a chain of blocks is created: this is the blockchain.
Blocks chained using the hash of the previous block header
Any change in any block would break the chain because the hashed output that was already included in the next block would be different to the new hashed output. Such a change is thus rejected by nodes on the network.
A broken chain due to an adjusted transaction
Merkle Root
Merkle tree is a data structure in which elements of a data structure are hashed and re-hashed recursively until only one element remains. That remaining element is the Merkle Root.
Merkle Tree and Merkle Root
Merkle trees have an interesting mathematical characteristic, in that it is mathematically possible to prove th
하나의 요소가 Merkle 트리에 속하는 경우 메르클 루트와 해당 요소 만 있습니다.
비트코인의 블록 헤더에 저장된 Merkle 루트는 해당 블록에 포함된 모든 거래의 재귀 해시 출력입니다. 이는 어떤 거래가 조정되면 Merkle 루트도 변경되고, 이는 또한 전체 헤더의 해시 출력을 변경할 것을 의미합니다. 다시 말해, 이는 블록의 무효화로 이어질 것입니다.
작업: 작업 증명
이제 우리는 해싱이 무엇이고, 블록이 어떻게 구성되며, 블록이 블록체인을 형성하는 데 어떻게 연결되는지 알았으므로 이제 실제로 작업 증명이 어떻게 작동하는지 자세히 살펴볼 수 있습니다. 바이잔틴 장군 문제로 돌아가보자; 위에서 언급한 확인된 메시지는 사실 블록체인의 블록입니다.
블록을 확인하려면 특정 기준을 충족하는 해시를 찾아야 합니다. 딱 한 비트만 바뀌어도 해시 출력이 드라마틱하게 변경된다는 걸 기억하십니까? 이것이 비트코인의 작업 증명 알고리즘이 목표 해시를 찾기 위해 작업하는 방식입니다. 즉, 임의의 숫자인 논스는 조정되어 블록 헤더의 해시 출력을 변경합니다. 해시 출력이 목표 해시를 충족하지 못하면 논스가 다시 조정됩니다. 이 프로세스는 블록 헤더 해시가 목표 조건을 충족할 때까지 반복됩니다. 목표 조건이 충족되면 블록 헤더가 확인되고 해당 블록은 블록체인의 사본에 새로운 블록을 추가하기 위해 네트워크의 다른 노드에 브로드캐스트됩니다.
작업 증명 블록 찾기 알고리즘 일러스트
목표 조건 또는 예상 해시는 선두에 있는 제로(leading zeros)의 숫자로 정의됩니다. 충분한 선두 제로가 포함된 해시가 생성되면, 즉, 목표 조건을 충족하는 데 필요한 작업이 수행되면 네트워크의 노드는 해당 블록을 유효하게 수용합니다: 해당 블록은 "채굴(mine)"된 것으로 간주됩니다.
이러한 프로세스를 더 잘 이해하기 위해 GitHub의 해싱 알고리즘 시뮬레이터로 이동하십시오. "비트코인" 문자를 입력하고 숫자를 뒤에 연결하여 0부터 시작하여 1씩 증가시키면서 선두에 제로가 하나 나타날 때까지(예: bitcoin0, bitcoin1 등) 확인하십시오. 선두에 제로 하나를 찾으려면 해시 값에 3까지 증가시키면됩니다("bitcoin3" 등). 이제 선두에 제로 두 개를 찾아보세요. 스포일러: 선두에 제로 두 개가 있는 첫 해시는 "bitcoin230"에서 나옵니다.
선두에 제로를 찾기 위한 작업 증명 알고리즘
Ther
노드들이 준수하는 추가 규칙도 있습니다. 예를 들어, 가장 긴 체인이 항상 유효한 체인이 되며(전체 블록체인이 덮어씌워지는 것을 방지), 채굴된 블록은 네트워크 시간의 특정 임계값 내에 타임스탬프가 있어야 합니다(가장 최근의 블록이 덮어씌워지는 것을 방지) 그리고 네트워크 난이도(목표 해시에 대한 선행 0의 양)가 어떻게 결정되는지에 대한 복잡한 메커니즘도 있습니다. 자세한 내용을 알고 싶은 독자들은 Bitcoin.org나 Bitcoin 위키에서 더 많은 정보를 찾을 수 있습니다.
패러다임 전환
위의 메커니즘은 역사상 처음으로 거래가 제3자의 증인없이 독자적으로 확인되고 승인되도록 허용했습니다. 중앙 집중화 문제를 겪는 은행에 거래를 제출하는 대신, 독립적인 노드 네트워크로 거래가 전달되어 개입 없이 거래를 자율적으로 처리할 수 있습니다. 이 기술적인 패러다임 전환과 원장 재구성은 오늘날의 웹3 생태계가 구축된 근본적인 원시적 요소입니다.
게다가, 이러한 네트워크에 가입하는 유일한 요구 사항은 노드 소프트웨어를 실행할 수 있는 계산 장치와 인터넷 연결이 있는 컴퓨팅 장치뿐이므로 누구나 독립적인 노드로 네트워크에 가입할 수 있어 네트워크의 탈중앙화가 강화됩니다.
비판
비트코인과 같은 PoW 네트워크에는 많은 노드가 있지만(2022년 9월 15일 현재 약 15,000개에 달하는 것으로 bitnodes.io에 따르면), 네트워크 상의 고도 경쟁으로 인해 개별 노드의 진입 장벽이 높다는 비판이 있습니다. 노드가 가진 해시 파워(즉, 계산 리소스)가 클수록 그 노드가 해시 퍼즐을 더 빠르게 해결할 가능성이 커지기 때문에, 저 해시 파워로 비트코인 네트워크에 들어가는 것은 거의 없는 새 블록을 성공적으로 채굴할 수 있는 기회가 거의 없는 에너지 비용이 발생합니다.
에너지 소비 역시 매우 논란적인 주제입니다: 네트워크는 거대한 양의 에너지를 필요로 하며, 일부 추정에 따르면 비트코인의 연간 에너지 소비가 노르웨이를 능가한다고 합니다.
이 에너지는 매 초 백만 개의 해시 계산을 수행하는 노드들에 낭비됩니다. 해시를 찾기 위한 것이죠. 비트코인 네트워크에 보안을 더하긴 하지만, 블록을 유효화하는 더 적은 낭비적인 방법이 있는지에 대한 의문을 제기합니다. 여기서 PoS(Proof-of-Stake)가 등장합니다.
지분증명 (PoS)
지분증명에서는 노드들이 네트워크 내의 지분에 따라 블록을 유효화할 특권이 주어집니다. 이는 PoW와 근본적으로 다른 방식이며 유효화하려면 필요한 계산능력을 크게 줄입니다. 노드들이 계산능력을 제공하는 대신, 네이티브 네트워크 토큰을 담보로 블록 유효화의 기회를 얻습니다. 이것은 경쟁을 기반으로 한 계산을 없애고 성공적으로 블록을 유효화할 수 있는 노드들의 분포를 증가시킵니다.
합병된 이더리움은 지분증명 네트워크입니다. 유효화자가 되려면 32 ETH가 스테이킹되어야 하며, 그 후에는 해당 노드가 블록 유효화에 참여할 수 있어서 네트워크에 새로운 블록을 추가하는 데 기여합니다. 스테이킹은 토큰을 잠그는 것을 의미하며, 이는 PoS 네트워크의 기초입니다.
유효화자가 되는 데 필요한 높은 초기 비용 외에, PoS 네트워크는 네트워크를 꼬치꼬치 꼬지 못하게 하는 다른 방법도 채택합니다. 일반적으로 PoS 네트워크는 동시에 여러 노드가 동일한 블록을 유효화하도록 요구합니다. 이는 잘못된 또는 악의적인 블록을 유효화하는 노드의 가능성을 줄입니다. 게다가 노드가 악의적인 행동을 하면 그들의 지분이 삭감될 수 있습니다. 이는 노드가 프로토콜에 잠그고 있는 네트워크 토큰의 양이 제거되어 일시적 주소 또는 소각됩니다. 토큰 소각은 네트워크에서 더 이상 접근할 수 있는 사람이 없는 주소로 토큰을 보내어 영구적으로 토큰을 순환에서 제거하는 것을 의미합니다. 이더리움에서는 널 어드레스에 해당합니다.
기타 합의 메커니즘
PoW(작업증명)와 PoS(지분증명) 외에도, 특정 목적을 가진 네트워크를 위해 설계된 많은 합의 메커니즘이 있습니다. 아래에는 인기있는 합의 메커니즘들의 목록이 나와 있습니다:
이전에 블록체인이 서로 해싱을 통해 암호화되어 연결된 데이터 블록임을 언급했습니다. 이로써 원장이 생성됩니다. 이 원장은 네트워크 전체의 수천 노드에 저장되어 있으며, 이를 통해 이 원장은 이러한 네트워크 간에 '공유'됩니다. 공유 블록체인 원장이나 전통적인 회계 원장이든 원장은 부문대로 관리가 필요합니다. 관리는 거래가 어떻게 수락되고 실행되며 블록체인에 새로운 잔고가 저장되는지를 나타냅니다. Web3에서 두 가지 주요 관리 모델이 있습니다:
사용되지 않은 거래 출력(UTXO) 모델 (예: 비트코인)
계정 모델 (예: 이더리움)
이러한 다양한 회계 모델을 이해하는 데 도움이 되는 것은 블록체인을 상태 기계로 생각하는 것입니다. 상태 기계란 상태를 저장하는 시스템으로, 장치에 대한 입력에 따라 상태가 변경될 수 있습니다. 즉, 언제든지 시스템은 특정 상태에 있으며 시스템에 입력이 제공되면 시스템의 상태가 변화합니다. 시스템에 입력이 제공되고 상태가 변경되면 시스템은 상태 전이를 겪게됩니다.
블록체인을 상태 기계의 관점에서 바라보면, 언제든지 블록체인 시스템은 상태 n에 있으며 블록체인에 추가 된 모든 블록은 상태 전이와 n+1의 새로운 상태로 이어집니다. 새로운 n+1 상태는 추가된 새 블록에 포함된 모든 거래를 고려하여 새로운 시스템 상태를 이룹니다.
>블록체인 및 거래로 인한 상태 변경
UTXO(Unspent Transaction Output) 모델
UTXO 모델과 계정 모델의 차이는 장부관리 또는 거래 기록 방식에 있습니다.
너무 자세히 설명하지 않고 말하자면; UTXO 모델에서는 계정 잔고라는 것이 없습니다. 대신, 각 거래는 누구로부터 얼마를 누구에게 보냈는지를 기록한 영수증입니다. 이것이 바로 UTXO(사용되지 않은 거래 출력)라는 이름이 붙은 이유입니다. 이는 사용자가 이전 거래 중 사용하지 않은 양만큼을 전송할 수 있는 잔액이기 때문입니다.
UTXO 모델 작동 방식 일러스트
사용자가 비트코인을 보내려고 할 때, 선택한 UTXO 내의 모든 비트코인이 거래 입력이 됩니다 (위의 UTXO0 참조). 전송할 금액으로 새로운 UTXO가 생성됩니다(위의 UTXO2 참조). UTXO에 저장된 비트코인이 전송할 양보다 많으면, 잔여 비트코인이 새로운 UTXO로 송금됩니다(위의 0.5가 전송될 금액이지만, UTXO0에는 2.0이 보유되어 있기 때문에 UTXO2에는 0.5가 전송되고 UTXO3에는 보내는 사람에게 반환되는 1.5가 포함됩니다).
이로 인해 흥미로운 특징도 가능해졌습니다: UTXO 모델 결과로, 모든 원생 토큰의 출처를 추적할 수 있습니다. 왜냐하면 각 거래 출력은 해당 입력을 가져야 하기 때문입니다. UTXO 모델을 사용하는 비트코인의 경우, 각 비트코인은 채굴된 블록으로 거슬러 올라갈 수 있습니다. 결과적으로, UTXO 모델에서는 잔고 개념이 존재하지 않습니다. 대신, 잔액은 네트워크 상의 모든 거래 영수증들을 집계한 것입니다.
네트워크 상의 각 거래는 정확히 누가 얼마를 어느 거래 입력으로부터 받았는지를 정의합니다. 시스템은 그러한 거래 입력이 사용되지 않았는지 검증하고, 송신자가 비트코인을 전송할 권한이 있는지, 수금자가 올바른 매개변수를 충족하여 비트코인을 수령할 수 있는지 확인합니다. 따라서 UTXO 모델은 검증 시스템으로 생각할 수 있습니다.
이전 예제에서는 언급되지 않았지만, 채굴자에게 가는 거래 수수료는 거래의 일부로 차감됩니다. 1.5코인 대신에, UTXO3은 거래 수수료 차이로 인해 1.499코인으로 예상됩니다.
계정 모델
계정 모델은 전통적인 은행 계좌의 디지털 표현에 더 가깝습니다. 모든 상태 전환마다 모든 계정과 잔액 세트가 저장되며, UTXO 모델처럼 계정 잔액을 계산해야 하는 영수증 세트 대신에 저장됩니다. 상태 전환을 시작하려면, 잔액을 변경하도록 시스템에 지시하는 거래가 시작되어야 합니다. 시스템은 각 계정의 잔액 변화를 계산하고, 다음 상태에서 새로운 잔고 세트가 저장됩니다.
계정 모델이 작동하는 방법에 대한 그림
UTXO 시스템에서는 각 트랜잭션 입력(이전 트랜잭션에서 수신한 UTXO)이 개별적으로 유효성을 검사되어야 하며 출력보다 커야하지만, 계정 모델에서는 계정 잔액이 트랜잭션 출력보다 커야합니다. 이는 UTXO 시스템에서 여러 UTXO를 결합하고 개별적으로 검증하여 하나 또는 여러 트랜잭션 출력을 생성할 수 있지만, 계정 모델에서는 잔액만을 검증해야 한다는 것을 의미합니다。
여러 UTXO가 입력으로 사용될 때 UTXO 모델이 작동하는 방법
UTXO 모델 대 계정 모델에 대한 자세한 정보는 이 글을 읽기를 강력히 추천합니다. 이 주제는 Horizen.io에서 다루고 있습니다.
가상 머신 (VMs), 스마트 계약 & 튜링 완전성
가상 머신은 컴퓨터를 에뮬레이트하는 소프트웨어입니다. 물리적 장치 대신에 가상 컴퓨터의 모든 물리적 구성 요소가 다른 시스템 내에서 소프트웨어로 실행됩니다. 예를 들어 Windows VM은 MacOS에서 실행될 수 있으며, 전체 Windows 시스템을 MacOS 내에서 실행할 수 있습니다. Windows 머신의 물리적 구성 요소는 소프트웨어로 에뮬레이트되어 Windows 시스템은 그 사실을 알 수 없습니다.
동일한 컨셉트는 블록체인 네트워크에도 적용됩니다: 공유 장부 옆에 별도의 가상 머신 구성 요소가 존재하여 계산 작업을 실행할 수 있습니다. 이는 잔액(Account 모델) 또는 잔액 변경(UTXO 모델)이 저장된 공유 장부 외에 잔액을 계산하는 별도의 계산 구성 요소가 있음을 의미합니다. 이 계산 구성 요소는 간단한 잔액 계산 이상의 복잡한 로직에도 사용될 수 있습니다. 이것이 스마트 계약의 길을 열었습니다 - 나중에 자세히 다룰 예정입니다. 최초로 광범위하게 성공한 이러한 시스템은 Ethereum Virtual Machine (EVM)입니다.
Bitcoin Script도 가상 머신으로 간주될 수 있습니다. Bitcoin 네트워크의 노드가 UTXO를 유효성 검사하고 트랜잭션을 실행하는 데 사용하는 계산 구성 요소입니다. 그러나 Bitcoin Script는 다소 제한적이며능력이 없어서 EVM과 같은 복잡한 로직을 실행할 수 없습니다.
이더리움 가상 머신 (EVM)
EVM은 이더리움 노드에서 실행되는 특정 컴퓨터 시스템을 흉내 내는 소프트웨어 조각입니다. EVM의 주요 목적은 이더리움 네트워크의 월드 상태를 계산하고 스마트 계약을 실행하는 것입니다. EVM의 혁신점은 두 가지입니다:
EVM은 스마트 계약의 다소 복잡한 컴퓨팅 로직을 실행할 수 있는 월드 상태의 탈중앙화된 계산을 가능하게 합니다
EVM은 탈중앙화된 블록체인 네트워크 (스마트 계약)에서 코드의 자율적이고 신뢰할 수 있는 실행을 가능하게 합니다
블록체인과 가상 머신 (VM)
네트워크가 "EVM 호환성"을 주장할 때, 그것은 해당 네트워크가 이더리움 가상 머신을 위해 작성된 스마트 계약을 배포하고 실행할 수 있다는 것을 의미합니다. EVM은 가장 인기 있는 가상 머신이 되어 Web3에서 스마트 계약 계산의 사실상 표준이 되었습니다. EVM 호환성을 갖추면 새로운 네트워크가 프로젝트를 자사 네트워크로 쉽게 이식할 수 있도록 하여 생태계를 구축할 수 있습니다. 이러한 표준화는 두 네트워크가 동일한 코드를 실행할 수 있기 때문에 토큰 간의 다리 역할을 쉽게 만듭니다.
EVM 아키텍처에 대한 깊은 탐험에 관하여 설명하려면, 독자에게 2022년 9월 15일에 이더리움 생태계가 PoW에서 PoS로 전환을 표시하는 "병합" 이후에 이 프레젠테이션의 PoW 부분이 더 이상 관련이 없다고 해서 이 정보를 제시하는 Takenobu T.의 이 안내서를 참조하십시오.
스마트 계약
스마트 계약은 특정 조건이 충족되었을 때 VM에 의해 자율적으로 실행될 수 있는 분산 네트워크에 저장된 프로그램입니다. 이러한 조건은 네트워크에서 특정 이벤트가 발생하거나 사용자가 스마트 계약과 상호 작용할 때 활성화되는 모든 조건을 참조할 수 있습니다. 스마트 계약의 복잡한 계산 능력은 또한 ERC-20 토큰 및 NFT (대체 불가능 토큰)의 생성을 가능하게합니다.
스마트 계약과 EVM은 블록체인과 암호화를 넘어서는 산업으로 이끈 것이며, Web3의 개념을 가능하게 했습니다: 이러한 혁신 덕분에
네, 콤포저블 응용프로그램이 무겁게 검열할 수 없는 탈중앙화된 네트워크에서 자율적으로 실행될 수 있습니다. 이러한 혁신들의 결합이 Web3의 거대한 dApp 생태계의 발전을 이끌었습니다.
dApp은 분산 응용프로그램으로, 블록체인 네트워크와 상호작용을 가능하게 하는 스마트 계약과 종종 쉽게 접근할 수 있는 웹 기반 프론트엔드의 결합을 사용합니다. dApp의 스마트 계약은 노드를 통해 직접 액세스할 수도 있지만, 웹 기반 프론트엔드는 액세스 장벽을 크게 낮춥니다. 오늘날 가장 잘 알려진 dApp은 Uniswap일 것입니다.
Solidity, Rust, 그리고 비트코인 스크립트
Solidity는 이더리움 블록체인의 스마트 계약에 가장 많이 사용되는 프로그래밍 언어입니다. 개발자들은 Solidity로 스마트 계약을 코딩하고, 바이트코드로 변환한 후 이를 네트워크에 배포합니다. Solidity는 C++, 파이썬, 그리고 자바스크립트를 기반으로 한 객체지향 및 정적 타입의 프로그래밍 언어입니다.
Rust는 Solana, Polkadot, 그리고 NEAR 블록체인에서 스마트 계약을 위한 가장 인기 있는 프로그래밍 언어 중 하나입니다. Rust는 속도, 효율성, 그리고 디자인의 최적 사례로 유명한 저수준 정적 타입의 프로그래밍 언어입니다. 더 어린 언어이지만, 2020년과 2021년 연속으로 StackOverflow에서 가장 인기 있는 프로그래밍 언어로 선정되었습니다. Solidity처럼 코드를 컴파일하고 바이트코드를 다양한 네트워크에 배포합니다.
블록체인은 코드가 바이트코드로 컴파일되어 네트워크가 읽고 해석할 수 있다면 다양한 프로그래밍 언어를 허용합니다. 이는 비트코인에도 적용되며, 비트코인의 기본 스크립트 언어는 비트코인 스크립트입니다. 비트코인 스크립트와 Solidity/Rust의 차이는 비트코인 스크립트가 사실 프로그래밍 언어가 아닌 거래에 사용되는 스크립팅 시스템임을 의미합니다. 비트코인에서 스크립트는 전송되는 각 거래와 기록된 명령어 목록으로, 다음 사람이 비트코인을 소비할 수 있는 방법을 설명합니다. UTXO(Unspent Transaction Output)를 기억해 주세요; 모든output은 다른 거래에서 입력이 될 수 있으려면 충족되어야 하는 요구사항을 가질 수 있습니다.
Turing-Completeness
Solidity/Rust와 비트코인 스크립트 사이의 차이는 Turing 완전성 이론을 통해 비교할 때 더욱 명확해집니다. Turing 완전성은 무한한 시간과 계산 자원이 주어졌을 때, 문제를 계산할 수 있는 추상 머신(Turing 머신) 개념을 나타냅니다. 문제가 코딩되거나 논리적으로 구성될 수 있다면 어떤 문제든 계산할 수 있는 능력을 의미합니다.
더 복잡한 논리적 문제를 해결하기 위해 조건문과 반복문을 사용해야 하는데, Solidity와 Rust는 완전한 프로그래밍 언어로서 이를 지원합니다. 그러나 비트코인 스크립트는 이를 지원하지 않습니다. 이는 비트코인이 복잡한 계산을 허용하지 않고, 거래를 중심으로만 동작하는 간단한 명령어 세트에만 의존하기 때문입니다(스마트 계약 없음). 비트코인은 이로 인해 오류 발생 가능성이 적고, 보안 측면에서 더 안전하다고 주장할 수 있지만, 이로 인해 프로그래밀 가능성이 제한됩니다.
이더리움, 솔라나, 폴카닷은 준 튜링 완전성을 갖는 것으로 간주될 수 있습니다. Solidity와 Rust의 지원 덕분에 복잡한 계산이 가능하지만, 이론적으로는 충분한 시간이 주어진다면 어떤 논리적 문제든 해결할 수 있겠지만, 가스 수수료에 제한을 받습니다. 가스 수수료는 네트워크가 모든 계산 작업의 실행에 부과하는 수수료입니다. 시간과 계산 자원은 이론적으로 무한할 수 있지만, 기본 네트워크 토큰의 양은 그렇지 않을 수 있습니다. 따라서 이 네트워크들은 이론적으로 튜링 완전성을 갖지만, 실제로 최상으로 준 튜링 완전성으로 간주될 수 있습니다.
튜링 완전성과 비튜링 완전성의 차이는 네트워크의 능력과 네트워크 상에 구축될 수 있는 것에 대한 이해를 높이는 데 중요합니다. 튜링 머신과 튜링 완전성에 대한 더 많은 세부 사항은 관심 있는 독자들이 더 읽을 수 있습니다. 여기에서 더 자세히 읽을 수 있습니다.
EIP에서 ERC로
ERC (Ethereum Request for Comment)는 이더리움 블록체인에서 사용되는 기술 코딩 표준을 나타냅니다. ERC는 이더리움 스마트 계약이 따라야 하는 규칙과 동작 방식을 지시하고 구현하는 방법을 규정합니다.
그러나 ERC는 이미 개발자들이 사용하기로 합의된 표준으로서 이더리움 설명서에 포함되어 있는 것입니다. ERC가 ERC로 될 수 있기 전에는 EIP (Ethereum Improvement Proposal)로 시작됩니다. EIP는 이더리움 블록체인 및 생태계에 대한 변경 사항을 논의하고 투표할 수 있는 매우 상세한 포럼 게시물이라고 할 수 있습니다.
이 EIP에서 ERC로의 과정
이 시스템은 웹3 생태계 전반에서 널리 사용되며 네트워크(예: 비트코인은 BIPs - 비트코인 개선 제안서)에서 dApp(예: AAVE는 AIPS - AAVE 개선 제안서 사용).
ERC 토큰 표준
ERC 기반 토큰은 이더리움 네트워크에서 사용되지만 엄밀히 말하면 이더리움 토큰과는 다릅니다. 이더리움 토큰은 네트워크의 일부로 정의되며 거래 및 스마트 계약 실행을 위해 가스 수수료 형태로 지불하는 네트워크의 기본 "화폐"로 정의되는 반면, ERC 기반 토큰은 스마트 계약에서 정의됩니다.
ERC 표준 스마트 계약은 토큰의 모든 매개변수와 모든 동작을 정의하며 EVM 호환 네트워크를 위해 etherscan.io 또는 기타 블록 익스플로러를 통해 온라인으로 볼 수 있습니다. 블록 익스플로러는 블록체인에 저장된 실시간 및 과거 정보를 볼 수 있게 해주는 도구입니다. 이 표준화로 인해 ERC 기반 토큰의 동작은 예측 가능해져 dApp 및 다른 스마트 계약들이 해당 표준을 사용하는 어떤 스마트 계약이라도 상호 작용할 수 있습니다.
아래에서는 ERC-20, ERC-721, ERC-1155 및 ERC-4626 표준을 다룹니다. 처음 세 가지는 블록체인에 살아있는 가치 교환 및 비가치 교환 디지털 자산을 생성하는 데 관련이 있습니다. 한편 ERC-4626은 ERC-20에 적용되는 수익 생산 기능을 표준화합니다.
ERC-20, ERC-721 및 ERC-1155 토큰 표준 및 그들의 가치 교환성
ERC-20 토큰 (가치 교환성 토큰)
ERC-20은 가치 교환성 토큰을 위한 표준입니다. 가치 교환성이란 한 자산이 다른 동일한 자산과 교환이 가능한 속성을 의미하며 두 자산이 서로 구별할 수 없는 특성입니다. 예를 들어, 미국 달러 한 장은 다른 미국 달러 한 장과 교환 가능하므로 가치 교환 가능입니다.
ERC-20 표준은 EVM 호환 네트워크에서 가치 교환성 토큰을 생성하는 것을 가능하게 합니다: The Curve token (CRV), the U니스왑 토큰 (UNI) 또는 AAVE 토큰 (AAVE)은 대표적인 대체 가능한 토큰의 예시이지만, 디지털 피아트 화폐의 표현물인 USDT나 USDC와 같은 ERC-20도 미국 달러에 페그되어 있습니다.
ERC-20 토큰은 대체 가능합니다
ERC-721 토큰 (대체 불가능 토큰)
ERC-721 표준은 대체 불가능 토큰(NFT)을 정의합니다. NFT의 독특한 측면은 이름에서도 드러납니다: 토큰은 대체 불가능하며, 즉 각 토큰이 고유합니다. NFT는 각 NFT의 콘텐츠가 프로필 사진부터 부동산 소유권 또는 기타 인증서까지 원하는 대로 크리에이터가 선택할 수 있기 때문에 흥미로운 발전을 이루었습니다. NFT는 어떠한 물리적 또는 고유 디지털 자산에 대한 공개 검증 가능한 디지털 소유권을 제공합니다.
ERC-1155는 이른바 "멀티-토큰"이라고 불리며, ERC-20 (대체 가능한 토큰)과 ERC-721 (대체 불가능한 토큰)의 기능을 결합합니다. 이는 새로운 사용 사례를 통해 여러 '고유한' 대체 가능한 자산 예를 들어 게임 속의 한 검 (고유함)과 공급량 100 (대체 가능한)를 결합하여 사용할 수 있을 뿐만 아니라 단일 스마트 계약 내에서 여러 토큰 유형을 관리하는 것도 가능하다는 것을 의미합니다.
이러한 기능을 하나의 스마트 계약 내에 통합함으로써, EVM에서 스마트 계약이 사용하는 공간 측면에서 효율성을 창출합니다. 또한 단일 스마트 계약에서 여러 세트의 토큰을 관리할 수 있기 때문에, 더 크고 복잡한 프로젝트에서도 간편함을 제공합니다.
ERC-4626은 토큰 보관소를 표준화합니다. 보관소는 ERC-20 토큰 입금을 수락하고 입금자에게 다른 토큰의 토큰 보상(수익)을 제공하는 수익 창출 스마트 계약입니다. 이는 본질적으로 입금자에 대한 보상 형태로 토큰을 생성하는 멀티 시그 자산 관리 스마트 계약으로, 나중에 보관소에 초기에 입금된 토큰으로 교환할 수 있습니다.
예를 들어, xSushi는 SUSHI 토큰으로 교환할 수 있는 수익을 제공하는 토큰으로, 사실상 Sushi DeFi 프로토콜의 수익 활동에 대한 사용자의 점유 율을 나타냅니다.
이 토큰 표준을 통해 개발자는 수동으로 각 토큰을 수동으로 통합하고 특정 설계 결정을 고려할 필요 없이 모든 ERC-20 토큰을 수락할 수 있습니다. 이렇게 함으로써 자산 손실로 이어질 수 있는 코딩 오류의 위험을 줄일 수 있습니다.
방향 비순환 그래프 (DAGs)는 데이터 구조화에 대한 다른 접근 방식이며 일부 프로젝트에서는 블록체인 대안으로 사용합니다.공유 원장 구조입니다. 블록체인은 거래가 블록에 포함되고 블록은 시간 순서대로 유효화되고 연결됩니다. 블록체인은 네트워크 상의 모든 노드에 복제됩니다.
DAGs에서는 거래가 한 번에 하나씩 유효화되며, 각 거래가 다음 거래와 연결됩니다. 거래를 유효화하기 위해서는 네트워크에 의해 지시된 두 거래를 더 유효화해야 합니다. 이로 인해 웹과 유사한 구조가 형성되어 쉽게 확장되고 거래의 병렬 처리가 가능하며 처리량 속도를 크게 향상시킬 수 있습니다. 거래를 유효화하는 것이 매우 간단하므로 마이너들은 이 시스템에서 매우 작은 역할을 합니다: 네트워크와 상호작용하는 모든 사용자가 다른 사용자의 거래를 유효화할 수 있기 때문에 거래 비용이 크게 감소합니다.
블록체인 대 DAGs
유향 비순환 그래프(Directed Acyclic Graph)는 구조를 잘 설명합니다:
Directed: 데이터 구조는 한 방향으로만 이동할 수 있습니다 (새로운 데이터 추가)
Acyclic: 데이터 지점 간 유향 경로를 따라 이동할 때 이전 데이터 지점에 부딪히지 않습니다 (비순환적)
이 구조는 거래 처리량, 유효화 속도 및 거래 비용에 관한 혜택을 제공하지만, DAG는 완전히 다른 도전에 직면합니다. 이론적으로 이 시스템은 강력한 분산화를 허용하지만, 거래 감소는 이론적으로 네트워크 보안 감소로 이어질 수 있습니다: 더 적은 거래는 더 적은 무작위 유효화자를 의미하며, 이는 단일 유효화자 또는 일련의 유효화자가 대부분의 거래를 통제할 가능성을 증가시킵니다. 단일 엔티티가 대부분의 네트워크 활동을 통제할 경우 악의적인 활동을 네트워크에 도입하기 쉬워집니다.
위 도전에 대응하기 위해 DAG 기반 네트워크는 중앙 집중화된 솔루션으로 전환했습니다: 유효화될 거래를 라우트하는 중앙 코디네이터를 구현하거나 권한이 상승한 '증인' 유효화자를 통제하거나 유효화 네트워크를 비공개로 만드는 것입니다.
이러한 도전에도 불구하고, DAG 네트워크는 Web3 생태계에서 중요한 위치를 차지합니다: 대부분의 Web3 채택이 진행됨에 따라 더 많은 사용 사례를 찾을 수 있는 약간 더 중앙집중화된 고 처리량 네트워크입니다.
단일체 vs. 모듈형 블록체인
분산 네트워크는 서로 상호운용하는 다양한 구성 요소로 이루어진 복잡한 시스템입니다. 비트코인, 이더리움, 솔라나, 폴카닷 및 NEAR과 같은 네트워크는 모두 신뢰할 수 있고 변경할 수 없는 네트워크를 만들기 위해 협력하는 다양한 구성 요소로 구성됩니다."noopener noreferrer nofollow" target="_blank" href="https://www.alchemy.com/overviews/modular-vs-monolithic-blockchains">monolithic blockchains - 하나의 조각에서 형성된 네트워크들로, 한 요소를 변경하면 전체 네트워크를 업데이트해야 합니다. Modular blockchains은 이러한 다양한 요소들을 교체 가능한 다른 요소들로 대체할 수 있게 합니다.
모듈화된 블록체인 시스템의 다양한 구성 요소는 다음과 같습니다:
실행 레이어: 거래 실행 및 스마트 계약
결제 레이어: 거래 유효성 검증, 거래 결제
합의 레이어: 합의 메커니즘
데이터 가용성: 공유 원장
Monolithic vs Modular Blockchains. 출처: Celestia 웹사이트
시스템을 여러 구성 요소로 분할함으로써 각 구성 요소에 대한 최적화를 실시하여 효율성 및 보안을 향상시킬 수 있습니다. 이어지는 시리즈에서 자세히 다루게 될 Layer2s는 모듈화의 첫걸음으로 볼 수 있습니다. Layer2s는 실행 레이어를 분산시키고 별도의 네트워크에서 거래 실행 및 스마트 계약을 실행한 다음, 결과를 Layer1의 단일 네트워크로 돌려주어 결제, 합의 및 공유 원장을 관리합니다.
모듈화의 장점이 많지만, 모듈화된 시스템은 가장 약한 링크만큼 강력합니다. 모듈 구성 요소가 추가되면 개별 구성 요소가 더 쉽게 대상이 될 수 있습니다. 또한 네트워크에 모듈성을 추가하면 기술적인 측면에서 네트워크가 올바르게 작동하는 것과 네트워크의 네이티브 토큰 가치의 관점에서도 새로운 복잡성 수준이 도입됩니다. 결제 레이어를 다른 토큰을 사용하는 것으로 대체할 수 있는 경우, 네트워크가 토큰의 존재를 정당화하기 어려울 수 있습니다.
이러한 도전에도 불구하고, 모듈화된 블록체인 개념은 Web3 생태계를 확장하고 성장시킬 수 있는 새로운 프로젝트 및 기술을 발전시킬 흥미로운 방향을 제공합니다. 인기 있는 모듈화된 블록체인 프로젝트로는 Celestia와 Cosmos가 있습니다.
요약 - Layer1 네트워크
Web3는 거대한 개념으로, ...
블록체인, 암호화폐 및 그들에 기반한 생태계와 관련 기술들에 대한 이해
비트코인은 탈중앙화된 블록체인 기술을 대중화시킨 레이어1 네트워크이며, 이더리움은 스마트 계약을 가능하게하는 준 튜링 완전 계산 기능을 제공하는 네트워크입니다. 데이터 블록을 다양한 노드에 분산 저장하는 아이디어와 이전 블록에서 데이터를 해싱하여 블록을 연결한 것은 데이터의 불변성과 영구성을 가능하게 했습니다. 기술적인 기본 요소 외에도, 이를 위해 노드 인프라도 마련되어야 했습니다. 네트워크에 노드가 하나뿐이라면 네트워크는 본질적으로 중앙화되며 중앙화에 따른 다양한 문제가 발생할 수 있습니다: 데이터가 변경될 수 있고, 제한되거나 액세스가 차단될 수 있습니다.
기본 데이터 구조 외에도, 네트워크의 노드들이 제공받는 데이터가 올바른지를 어떻게 알 수 있는지에 대한 문제도 있습니다. 이것은 "비잔틴 장군 문제"로 요약됩니다. 비트코인은 이 문제를 해결하기 위해 Proof-of-Work 합의 알고리즘을 사용했으며, 이는 네트워크의 노드들이 블록을 유효화하기 위해 해결해야 하는 계산적으로 중요한 암호 퍼즐을 해결함으로써 그들이 검증 작업을 수행했음을 증명합니다. Proof-of-Stake와 같은 대체 합의 알고리즘도 존재하며, 이는 훨씬 적은 에너지가 필요하며 환경에 더 좋다고 여겨집니다.
글쓴 시점에서 가장 인기 있는 블록체인 네트워크인 비트코인과 이더리움은 크게 다른 계층 모델을 사용합니다: 비트코인은 UTXO 모델을 사용하고, 이더리움은 계정 모델을 사용합니다. UTXO 모델은 "검증 시스템"으로 볼 수 있으며, 각 UTXO는 거래 영수증입니다. 계정 모델은 블록체인에 추가되는 각 새 블록마다 업데이트되는 계정 및 잔고 데이터베이스와 더 유사합니다.
이더리움의 컴퓨팅 구성 요소는 "이더리움 가상 머신"이라고 하며, 스마트 계약을 실행할 수 있습니다. 스마트 계약은 분산된 블록체인 네트워크에 저장된 독립적으로 실행될 수 있는 애플리케이션으로, 프로그래밍 가능한 트리거 기준에 따라 자동으로 실행될 수 있습니다. 사용하는 블록체인에 따라 스마트 계약은 Solidity, Rust 등의 프로그래밍 언어로 작성될 수 있습니다.
스마트 계약 간의 상호 운용성을 개선하기 위해 스마트 계약의 표준화가 필요했습니다. ERC는 이더리움 문서에 확립된 코드화 표준으로, EIP인 "통과한"' 규격입니다. EIP는 이더리움 생태계의 누구나 제안할 수 있는 제안이며, 누구든지 볼 수 있고 토론하고 투표할 수 있습니다. EIP가 통과되면 제안된 변경 사항이 네트워크에 적용됩니다. 가장 인기 있는 네 ERC 토큰 규격은 ERC-20s (대체 가능한 토큰), ERC-721s (비대체 가능한 토큰 또는 "NFTs"), ERC-1155s (멀티 토큰) 및 ERC-4626 (보안 공간 표준)입니다.
웹3 탈중앙화 네트워크에서 가장 인기 있는 원장 형식인 블록체인 외에도 대체 형식이 등장했습니다.
구조가 특정 사용 사례에 맞게 조정되면서 새로운 구조가 형성됩니다. 방향성 비순환 그래프(DAG)는 전체 블록 대신 거래를 검증하는 대안적인 구조의 한 예입니다. 모듈식 네트워크는 기존 구조를 재고해야 한다는 아이디어의 확장입니다. 모듈식 네트워크는 분산 네트워크를 서로 다른 기능적 계층으로 분할하여 각각을 개별적으로 최적화하려는 목표를 가지고 있습니다.
마무리
이것이 마스터 웹3 기본 시리즈의 첫 번째 부분입니다. 읽어 주셔서 감사합니다! 만약 이 글을 즐겼다면 공유를 고려해 주세요! 이 글에 대한 피드백이나 내용에 대해 토론하고 싶다면 Twitter에서 @0xPhillan에 연락해 주세요.