블록체인의 정의
블록체인은 데이터를 저장하고 관리하는 분산형 디지털 원장 기술입니다. 이 기술은 데이터를 블록(block) 단위로 저장하고, 각 블록을 체인(chain) 형태로 연결하여 구성됩니다. 블록체인의 가장 큰 특징은 탈중앙화, 변조 불가능성, 그리고 투명성으로, 기존의 중앙 집중식 데이터베이스와는 근본적으로 다른 방식을 제공합니다.
블록체인의 작동 방식
블록체인은 여러 사용자가 데이터를 공유하고 검증하는 네트워크에서 작동합니다. 이 과정은 아래의 주요 단계를 통해 이루어집니다.
트랜잭션 생성
블록체인 네트워크에 참여하는 사용자가 데이터를 입력하거나 거래를 요청합니다. 예를 들어, 발송인, 수신인, 전송 수량, 수수료 금액 등의 데이터가 들어갑니다. (자세한 내용)
트랜잭션 검증
네트워크의 참여자(노드)가 해당 거래의 유효성을 검증합니다. 이 과정은 합의 알고리즘을 통해 이루어지며, 대표적인 알고리즘으로는 Proof-of-Work(PoW)와 Proof-of-Stake(PoS)가 있습니다.
블록 생성
검증된 트랜잭션은 새로운 블록에 저장되고, 이 블록은 이전 블록과 연결됩니다.
체인에 추가
생성된 블록은 기존 블록체인에 추가됩니다. 이로써 새로운 데이터는 블록체인의 일부가 되며, 이후 변경이 불가능합니다.
분산 저장
모든 참여자는 동일한 블록체인 사본을 받아, 데이터가 네트워크 전반에 걸쳐 분산되어 저장됩니다.
블록체인 상의 데이터 확인
블록체인에서 데이터를 조회하는 방식은 특정 트랜잭션, 블록, 또는 상태 데이터를 확인하기 위해 네트워크 참여자(노드)가 블록체인 원장을 탐색하는 과정으로 이루어집니다.
1. 데이터 조회 요청
사용자가 블록체인에서 데이터를 조회하고 싶을 때, 일반적으로 블록체인 노드에 API 호출이나 쿼리를 보냅니다. 예를 들어, "트랜잭션 ID", "블록 번호", 또는 "지갑 주소"와 같은 특정 정보를 조회하려는 요청을 생성합니다.
- REST API 또는 GraphQL 인터페이스를 사용하는 것이 일반적입니다.
- 개인 노드를 실행하지 않는 사용자는 이더스캔(Etherscan)과 같은 블록 익스플로러(Block Explorer)를 사용해 데이터를 조회할 수 있습니다.
2. 데이터 조회 경로 탐색
블록체인은 체인 구조로 데이터를 저장하기 때문에 조회 요청은 다음과 같은 순서로 이루어집니다.
- 블록 헤더 검색: 블록체인의 특정 블록(예: 블록 번호 1000) 또는 트랜잭션을 조회하려면 먼저 블록 헤더에서 메타데이터(해시, 타임스탬프 등)를 검색합니다.
- 트랜잭션 로그 검색: 블록 헤더에 포함된 Merkle Root를 통해 해당 블록의 트랜잭션 목록을 확인합니다.
- 트랜잭션 세부 정보: Merkle Tree의 해시를 활용하여 특정 트랜잭션 데이터를 검색합니다.
3. 데이터 무결성 검증
조회된 데이터는 Merkle Tree의 해시 값을 통해 무결성을 검증합니다. Merkle Tree는 모든 트랜잭션 데이터가 일관되게 연결되어 있는 구조로, 해시를 비교함으로써 데이터가 변경되지 않았음을 확인할 수 있습니다.
- 예를 들어, 특정 블록에서 조회한 트랜잭션 데이터가 Merkle Root와 일치하지 않는다면, 이는 데이터 위조나 손상 가능성을 의미합니다.
4. 조회 결과 반환
조회한 데이터를 사용자에게 반환합니다. 반환 데이터에는 다음과 같은 정보가 포함될 수 있습니다.
- 트랜잭션 데이터: 송신자, 수신자, 금액, 타임스탬프, 수수료 등.
- 블록 데이터: 블록 번호, 블록 해시, 생성자(채굴자), 포함된 트랜잭션 목록 등.
- 계정 상태: 지갑의 잔액, 스마트 계약 상태 변수 등.
5. 스마트 계약 조회
스마트 계약과 상호작용하여 데이터를 조회하려면, 스마트 계약의 뷰 함수(view function)를 호출합니다.
- 뷰 함수는 블록체인의 상태를 변경하지 않고 데이터를 반환합니다.
- 예를 들어, ERC-20 토큰 계약에서 잔액을 조회하려면 balanceOf(address) 함수를 호출합니다. 이 호출은 가스비가 들지 않습니다.
데이터 조회 예시 트랜잭션 정보 조회 사용자가 특정 트랜잭션 ID(txHash)를 알고 있다면, 해당 트랜잭션을 조회하여 다음 정보를 얻을 수 있습니다: 트랜잭션의 상태(성공 또는 실패) 송신 및 수신 주소 전송된 금액 네트워크 수수료(가스비) 지갑 잔액 조회 사용자는 자신의 지갑 주소를 입력하여 현재 잔액이나 트랜잭션 기록을 조회할 수 있습니다. 이는 풀 노드 또는 라이트 노드를 통해 요청됩니다. 스마트 계약 상태 조회 스마트 계약 내부의 특정 상태 변수(예: 토큰 잔액, 사용자의 허가 정보 등)를 확인하려면, 스마트 계약의 주소와 함수명을 이용해 조회 요청을 보냅니다.
일체형 블록체인(Monolithic Blockchain)과 모듈러 블록체인(Modular Blockchain)
블록체인은 크게 일체형(모놀리틱)블록체인과 모듈러(Modular)블록체인으로 나뉜다. 자세한 내용은 아래 글 참고
일체형 블록체인이란?모듈러 블록체인이란?
'Technology > 블록체인 용어' 카테고리의 다른 글
암호화폐(Cryptocurrency)란 무엇인가? (0) | 2023.01.25 |
---|---|
암호학(Cryptography)이란 무엇인가? (0) | 2023.01.25 |
원장(Ledger)과 디지털 원장(Digital Ledger)이란 무엇인가? (0) | 2023.01.25 |
트랜잭션(Transaction)이란 무엇인가? (0) | 2023.01.25 |
분산형 디지털 원장이란 무엇인가? (0) | 2023.01.25 |