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

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

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

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


블록 충돌 발생

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




해시


이더리움? 블록체인 프로젝트를 진행을 위한 프로토콜 제공을 목적 = 플랫폼
튜링언어 내장 = 조건과 반복으로 구조작성 -> 스마트 컨트랙트(솔리디티, 바이퍼 등...) 제공
분산형 파일 저장소 -> IPFS
Ghost 프로토콜 -> 블록 생성속도 높이고 싱크 맞추기
다양한 합의 알고리즘 제공
토큰: 스마트 컨트랙트 기반의 토큰들이 파생
EOS: 이더리움 기반의 토큰 -> 현재는 독립
심볼: 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)
배포된 컨트랙트는 수정불가 -> 테스트 진행 필요 + 코드 품질에 따라 수수료 상승
Ropsten 테스트넷(pow 이더리움 메인넷과 가장 유사)
https://faucet.dimensions.network/
https://faucet.ropsten.be/
온라인 제공 스마트 컨트랙트 개발 및 배포 툴

solidity 코드 -> bytecode

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

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


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