[0925] ICT COG 블록체인 테크니컬 트랙

장 창영·2021년 10월 16일
post-thumbnail

-> 느린 속도 (블록 생성이 전파보다 빠르면 안 됨) -> 데이터베이스 역할 애매 노드 줄임?

1. 블록체인의 이해

1-1. 분산원장기술


하나의 서버 + 여러 클라이언트 -> 서버이자 클라이언트

1-2. 노드의 이해

거래 발생 + 거래 임시저장 + 거래 검증 + 거래 블록저장 + 블록 검증
-> 모두 만족하지 않아도 됨
풀노드(모두 만족) / 라이트노드(거래x + 저장o) / 지갑(거래o + 저장x)


블록체인은 mesh
mesh? 전부 연결 x + 가까운 노드 연결(이더리움은 최대 25개)

mesh의 문제점?


블록 충돌 발생

1-3. 블록체인 프로세스


블록체인 = 데이터(상태) 수정(블록 & 트랜잭션)?

컨센서스 알고리즘(채굴)?
트랜잭션 발생 -> 블록에 트랜잭션 저장 -> 체인에 블록 연결
-> 상태 업데이트(모든 노드가 동일한 상태로 업데이트)

블록체인 프로세스



해시

1-4. 거래소의 이해

2. 이더리움의 이해

2-1. 이더리움 백서

이더리움? 블록체인 프로젝트를 진행을 위한 프로토콜 제공을 목적 = 플랫폼
튜링언어 내장 = 조건과 반복으로 구조작성 -> 스마트 컨트랙트(솔리디티, 바이퍼 등...) 제공
분산형 파일 저장소 -> IPFS
Ghost 프로토콜 -> 블록 생성속도 높이고 싱크 맞추기
다양한 합의 알고리즘 제공

2-2. 이더리움 역사

토큰: 스마트 컨트랙트 기반의 토큰들이 파생
EOS: 이더리움 기반의 토큰 -> 현재는 독립

2-3. 이더리움 스펙

심볼: ETH
블록생성 속도: 약 10초~20초
합의 알고리즘: POW(일반), POA(개인 네트워크)
Decimal: 18(1의 18제곱이 1)
이더리움 전송 시 수수료 발생(GAS로 측정)
스마트 컨트랙트 존재
어카운트 기반으로 상태 관리(nonce, value, code, data)


UTXO(=지갑) 방식: 트랜잭션 저장
어카운트(=스마트 컨트랙트) 방식: 주소 & 상태 저장
상태: Nonce(트랜잭션 이중처리 방지) + Value(계정의 이더랑) + Code(스마트 컨트랙트 코드) + Data(스마트 컨트랙트 실행 시 데이터가 저장되는 공간)



CA: 트랜잭션 발생x + 프라이빗키x
EOA(외부소유 계정): 트랜잭션 발생o + 프라이빗키o

스마트 컨트랙트 코드가 실행되는 양에 따라 쌓인 gas 기반으로 수수료 측정
legacy 방식: gas price * gas(limit < 21,000)

2-4. 이더리움 단점

배포된 컨트랙트는 수정불가 -> 테스트 진행 필요 + 코드 품질에 따라 수수료 상승

3. Metamask

3-1. 네트워크 선택

Ropsten 테스트넷(pow 이더리움 메인넷과 가장 유사)

3-2. 계좌 개설

3-3. 테스트 이더리움 받기

https://faucet.dimensions.network/
https://faucet.ropsten.be/

3-4. 계좌 가져오기/내보내기

3-5. 이더 송금하기

4. Remix

4-1. Remix란?

온라인 제공 스마트 컨트랙트 개발 및 배포 툴

4-2. Explorer

4-3. Compile


solidity 코드 -> bytecode

4-4. Deploy & Run Transaction


연결될 노드 선택 -> 계정 연결 -> Gas Limit 선택 -> 스마트 컨트랙트 배포 -> 트랜잭션 발생 -> 데이터 조회


1.배포 네트워크 선택 2.배포할 계정 선택 3.초기화 데이터 설정

5. 정리

블록, 트랜잭션, 상태
블록체인: 블록을 체인으로 연결
이더리움: 코인 < 플랫폼
이더리움(인프라) vs EOS(수정가능)

0개의 댓글