Understanding GIWA Blockchain and SDK
이 문서는 블록체인 기초부터 GIWA Chain의 기술 아키텍처와 SDK 개발 배경까지 상세하게 설명합니다.
Table of Contents
- Blockchain Fundamentals
- Ethereum and Smart Contracts
- Layer 2 Scaling Solutions
- OP Stack and Optimistic Rollup
- Understanding GIWA Chain
- Flashblocks: Ultra-Fast Transaction Confirmation
- GIWA React Native SDK Development Background
- References
1. Blockchain Fundamentals
1.1 What is Blockchain?
블록체인은 중앙 서버가 아닌 네트워크 참여자들이 공동으로 데이터를 기록하고 관리하는 **분산 원장 기술(DLT)**의 한 형태입니다.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Block 1 │───▶│ Block 2 │───▶│ Block 3 │───▶│ Block N │
│ │ │ │ │ │ │ │
│ - Hash │ │ - Hash │ │ - Hash │ │ - Hash │
│ - Prev Hash │ │ - Prev Hash │ │ - Prev Hash │ │ - Prev Hash │
│ - Txs │ │ - Txs │ │ - Txs │ │ - Txs │
│ - Timestamp │ │ - Timestamp │ │ - Timestamp │ │ - Timestamp │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
1.2 Key Characteristics
| 특성 | 설명 |
|---|---|
| Decentralization | 단일 권한이 아닌 네트워크 참여자들이 공동으로 데이터를 관리 |
| Immutability | 한 번 기록된 데이터는 수정하거나 삭제할 수 없음 |
| Transparency | 모든 거래 이력이 공개되어 누구나 검증 가능 |
| Consensus Mechanism | 네트워크 참여자들이 데이터의 유효성에 동의하는 방법 |
1.3 Consensus Mechanism
블록체인 네트워크가 새로운 블록을 생성하고 트랜잭션을 검증하는 방법입니다.
Proof of Work (PoW)
- 비트코인에서 사용
- 복잡한 수학 문제를 풀어 블록 생성 권한을 획득
- 높은 에너지 소비가 단점
Proof of Stake (PoS)
- 이더리움 2.0에서 사용
- 암호화폐를 담보로 스테이킹하여 블록 생성 권한을 획득
- 에너지 효율적이지만 "부익부" 구조에 대한 우려
1.4 Transaction
블록체인에서 발생하는 모든 상태 변경을 기록하는 단위입니다.
interface Transaction {
from: string; // 발신자 주소
to: string; // 수신자 주소
value: bigint; // 전송 금액 (wei 단위)
data: string; // 스마트 컨트랙트 호출 데이터
nonce: number; // 발신자의 트랜잭션 순번
gasLimit: bigint; // 최대 가스 사용량
gasPrice: bigint; // 가스당 가격
}
2. Ethereum and Smart Contracts
2.1 Ethereum
이더리움은 비탈릭 부테린이 2015년에 설립한 프로그래밍 가능한 블록체인 플랫폼입니다. 단순한 가치 전송을 넘어 스마트 컨트랙트를 통해 복잡한 비즈니스 로직을 블록체인에서 실행할 수 있습니다.
2.2 Ethereum Virtual Machine (EVM)
EVM (Ethereum Virtual Machine)은 스마트 컨트랙트를 실행하는 가상 컴퓨터입니다.
┌─────────────────────────────────────────────────────────────┐
│ Ethereum Network │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ EVM │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Smart │ │ Smart │ │ Smart │ │ │
│ │ │ Contract A │ │ Contract B │ │ Contract C │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────── ──────────────────────┐ │
│ │ World State │ │
│ │ Account 0x1234... : Balance: 10 ETH, Nonce: 5 │ │
│ │ Account 0x5678... : Balance: 25 ETH, Nonce: 12 │ │
│ │ Contract 0xABCD... : Code: 0x6080..., Storage: {...} │ │
│ └────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
2.3 Smart Contract
스마트 컨트랙트는 특정 조건이 충족되면 사전 정의된 작업을 수행하는 자동 실행 프로그램입니다.
// Solidity 스마트 컨트랙트 예제
contract SimpleToken {
mapping(address => uint256) public balances;
function transfer(address to, uint256 amount) public {
require(balances[msg.sender] >= amount, "Insufficient balance");
balances[msg.sender] -= amount;
balances[to] += amount;
}
}
2.4 Gas
가스는 이더리움에서 연산을 수행하는 데 필요한 비용 단위입니다.
| 연산 | 가스 비용 |
|---|---|
| Addition/Subtraction | 3 gas |
| Multiplication/Division | 5 gas |
| Storage Read | 200 gas |
| Storage Write | 20,000 gas |
| Contract Deployment | 32,000+ gas |
Transaction Cost = Gas Used × Gas Price
Example: 21,000 gas × 20 Gwei = 0.00042 ETH
2.5 Ethereum's Limitations: Scalability Problem
이더리움 메인넷 (Layer 1)은 다음과 같은 한계가 있습니다:
| 문제 | 설명 |
|---|---|
| Low TPS | 초당 약 15-30건의 트랜잭션만 처리 가능 |
| High Gas Fees | 네트워크 혼잡 시 가스 비용이 수십~수백 달러에 달함 |
| Long Finality Time | 블록 생성에 약 12초, 최종 확인에 수 분 소요 |
이러한 문제를 해결하기 위해 Layer 2 솔루션이 등장했습니다.
3. Layer 2 Scaling Solutions
3.1 Layer 1 vs Layer 2
┌─────────────────────────────────────────────────────────────────┐
│ Layer 2 (L2) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ GIWA │ │ Base │ │ Arbitrum │ ... │
│ │ Chain │ │ │ │ One │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ Data Availability & Settlement ││
│ └─────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Layer 1 (Ethereum) │
│ │
│ - 최종 보안 제공 │
│ - 데이터 가용성 │
│ - 분쟁 해결 │
└─────────────────────────────────────────────────────────────────┘
3.2 Types of Layer 2
Optimistic Rollup
- 원리: 트랜잭션이 유효하다고 "낙관적으로" 가정하고 처리
- 챌린지 기간: 약 7일간 부정한 트랜잭션에 대해 누구나 이의 제기 가능
- 대표 프로젝트: Optimism, Arbitrum, Base, GIWA
- 장점: 뛰어난 EVM 호환성, 개발 편의성
ZK (Zero-Knowledge) Rollup
- 원리: 암호학적 증명을 통해 트랜잭션 유효성을 즉시 증명
- 대표 프로젝트: zkSync, StarkNet, Polygon zkEVM
- 장점: 빠른 최종성, 높은 보안성
- 단점: 제한된 EVM 호환성, 복잡한 개발
3.3 How Rollups Work
┌─────────────────────────────────────────────────────────────┐
│ Layer 2 Rollup │
│ │
│ 1. Collect user transactions │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ Tx1 │ │ Tx2 │ │ Tx3 │ │ Tx4 │ ... │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
│ │ │
│ ▼ │
│ 2. Create transaction batch │
│ ┌─────────────────────────────────────┐ │
│ │ Batch: [Tx1, Tx2, Tx3, Tx4, ...] │ │
│ │ State Root: 0xabc123... │ │
│ └─────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 3. Submit compressed data to L1 │
│ ┌─────────────────────────────────────┐ │
│ │ Compressed Calldata + State Root │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Layer 1 (Ethereum) │
│ │
│ - 배치 데이터 저장 │
│ - State Root 검증 (Optimistic: 7일 대기) │
│ - 최종 확인 (Finality) │
└─────────────────────────────────────────────────────────────┘
3.4 Advantages of Layer 2
| 항목 | Layer 1 (Ethereum) | Layer 2 (GIWA) |
|---|---|---|
| TPS | ~15-30 | ~2,000+ |
| Gas Fee | $5-100+ | $0.001-0.01 |
| Block Time | ~12s | ~1s |
| Finality | 수 분 | 수 초 (Flashblocks: 200ms) |
4. OP Stack and Optimistic Rollup
4.1 What is OP Stack?
OP Stack은 Optimism에서 개발한 모듈식 오픈소스 블록체인 개발 프레임워크입니다. 누구나 OP Stack을 사용하여 자신만의 Layer 2 체인을 구축할 수 있습니다.
4.2 OP Stack Architecture
┌─────────────────────────────────────────────────────────────────┐
│ OP Stack │
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ Sequencer ││
│ │ - 트랜잭션 순서 결정 ││
│ │ - 블록 생성 ││
│ │ - L1에 배치 제출 ││
│ └─────────────────────────────────────────────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ Execution Engine ││
│ │ - EVM 호환 실행 환경 ││
│ │ - op-geth (Geth 포크) ││
│ └─────────────────────────────────────────────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ Derivation Pipeline ││
│ │ - L1 데이터로부터 L2 상태 재구성 ││
│ │ - op-node ││
│ └─────────────────────────────────────────────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ Bridge (Standard Bridge) ││
│ │ - L1 ↔ L2 자산 전송 ││
│ │ - 네이티브 브릿지 ││
│ └─────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────┘
4.3 Major OP Stack Based Chains
| 체인 | 개발사 | 특징 |
|---|---|---|
| OP Mainnet | Optimism | 오리지널 OP Stack |
| Base | Coinbase | 1억+ 사용자 기반 |
| GIWA | Upbit | 한국 최대 거래소 연동 |
| Zora | Zora | NFT 특화 |
| Mode | Mode Network | DeFi 특화 |
| Worldchain | World (Worldcoin) | 신원 인증 특화 |
4.4 Superchain Vision
Superchain은 OP Stack 기반 체인들이 상호운용 가능한 네트워크를 형성하는 비전입니다.
┌─────────────────────────────────────────────────────────────────┐
│ Superchain │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ GIWA │ │ Base │ │ Zora │ │ Mode │ ... │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │ │
│ └────────────┴────────────┴────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Cross-Chain Messaging │ │
│ │ Shared Sequencing │ │
│ │ Unified Liquidity │ │
│ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
5. Understanding GIWA Chain
5.1 What is GIWA?
GIWA는 OP Stack 기반의 이더리움 Layer 2 블록체인으로, Web3 진입 장벽을 낮추고 누구나 쉽게 사용할 수 있는 인프라를 제공합니다.
"GIWA"라는 이름은 한국 전통 기와에서 유래했습니다. 개별 기와는 작은 조각이지만 함께 모이면 견고한 구조물을 형성하듯이, 많은 빌더와 아이디어가 모여 견고한 Web3 생태계를 형성합니다.
5.2 Core Values of GIWA
| 가치 | 설명 |
|---|---|
| Accessibility | Web3가 어렵게 느껴지는 장벽을 허물고, 누구나 사용할 수 있는 인프라 제공 |
| Openness | 특정 주체에 의존하지 않는 오픈 Layer 2, 전 세계적으로 사용 가능 |
| Builder Friendly | 한국어와 영어 문서, 개발자 온보딩 지원 |
| Institution Integration | 업비트와의 연결로 사용자, 데이터, 풍부한 유동성을 Web3 생태계로 |
5.3 Technical Architecture
┌─────────────────────────────────────────────────────────────────┐
│ GIWA Chain │
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ Applications ││
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ││
│ │ │ DeFi │ │ NFT │ │ Gaming │ │ Social │ ... ││
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ ││
│ └─────────────── ──────────────────────────────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ GIWA Features ││
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ││
│ │ │ GIWA ID │ │ Dojang │ │ Flashblocks │ ││
│ │ │ (ENS-based) │ │ (EAS-based) │ │ (~200ms) │ ││
│ │ └─────────────┘ └─────────────┘ └─────────────┘ ││
│ └─────────────────────────────────────────────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ OP Stack (Bedrock) ││
│ │ - Sequencer - Execution Engine (op-geth) ││
│ │ - Derivation - Standard Bridge ││
│ └─────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Ethereum Sepolia (Testnet) │
│ Ethereum Mainnet (Mainnet) │
└─────────────────────────────────────────────────────────────────┘
5.4 Technical Features of GIWA
| 특징 | 설명 |
|---|---|
| Fast Block Creation | 매 1초마다 새 블록 (이더리움: 12초) |
| EVM Compatible | 기존 Solidity 스마트 컨트랙트를 수정 없이 배포 가능 |
| Low Fees | 이더리움 대비 약 90% 이상 저렴한 가스 비용 |
| Flashblocks | ~200ms 사전 확인 제공 |
| GIWA ID | ENS 기반 사람이 읽을 수 있는 주소 시스템 |
| Dojang | EAS 기반 증명 시스템 |
5.5 Network Information
Testnet (GIWA Sepolia)
| 항목 | 값 |
|---|---|
| Chain ID | 91342 |
| Network Name | GIWA Sepolia |
| RPC URL | https://sepolia-rpc.giwa.io |
| Flashblocks RPC | https://sepolia-rpc-flashblocks.giwa.io |
| Flashblocks WebSocket | wss://sepolia-rpc-flashblocks.giwa.io |
| Block Explorer | https://sepolia-explorer.giwa.io |
| Currency | ETH |
| Base Layer | Ethereum Sepolia |
Mainnet (Coming Soon)
| 항목 | 값 |
|---|---|
| Chain ID | - |
| Network Name | GIWA Mainnet |
| RPC URL | - |
| Block Explorer | - |
| Currency | ETH |
| Base Layer | Ethereum Mainnet |