2021-04-30-Fri-StudyKR

» studyKR

Blockchain Overview

Block chain이란
    데이터를 여러 사람이 서로를 신뢰할 필요 없이 접근할 수 있게 허용하는 저장 방법

Cryptocurrency: 암호화폐
    디지털로 저장된 중앙 기관에서 발행하지 않는 통화의 한 형태, 암호화로 보안을 유지하고 분산된 합의

https://www.the-blockchain-academy.com/blockchain-operational-overview/

image

Bit Coin components

Identity
    누구
Transactions
    거래
Distributed Ledger
    기록
Trustless Consensus
    동일한 형태

Identity

Bit Coin은 두개의 key가 있다. 
    Unique Public Key
    랜덤으로 생성된 Unique Private Key         
        public key는 private key로부터 얻어진다.

Address
    Public Key --> Private Key --> (0x00, finger print, checksum) --> Address

Pseudonymous
    open ledger이기 때문에 주소를 통해 내 펀드에 접속할 수 있음

JBOK
    임의적인 개인키를 다발로 저장하는 무작위 지갑

HD
    시드를 기반으로 사용자의 개인키와 주소를 생성하는 결정적 계층(HD) 지갑

image

Transactions(TX)

중앙 시스템이 계정들의 균형을 맞추고 수정한다

비트코인은 UTXO를 사용한다
    Unspent Transaction Output: 미사용 출력값
    
소유권 주장을 위해선 EDSCA을 사용한다

Locking Script
    ScriptPubKEy

Unlocking Script: ScriptSig

Script
    stack-based
    turing-incomplete language
    DOS-resistant
    consist of OPcodes

P2PKH
    OP_DUP: 복사
    OP_HASH160: 주소변환
    OP_EQUAL: 비교
    OP_CHECKSIG: 서명 비교
    --> 입증

P2SH
    m of n multi signature

UTXO

Unspent Transcation Outputs, 미사용 트랜잭션 출력값
계정이나 잔고가 없고, 
        블록체인에 기록된 소비되지 않은 출력값을 통해 거래의 유효성 검사를 하여 코인의 존재 여부 확인
    <ㅡ> 이더리움의 ABM(Account Balance Model), 계좌 잔고 모델

image

Blocks

Previous Block Hash
    순차적 연결, 무결성 유지, 전 block hash 값 저장해 chain 유지

Merkleroot
    변조 방지
    hash 값 tree형태로 두개씩 hashing해서 하나로 만듬

image

Mining

자격을 제대로 갖춘 채굴 기준
    블록체인 전체를 다운로드
    도착하는 거래 처리
    거래 선택하고 블록 생성
    가치있는 nonce를 찾고 블록 broadcast
    incentive = 블록 보상 + 수수료

nonce

임시값
블록체인에서 목표값 이하의 블록 해시를 찾기 위해 임시로 사용하는 숫자

mining

mempool
    확인되지 않은 거래 저장하는 임시 저장소
    긴 체인에 기반을둠
    script를 이용해 TX 수정

mempool synchronization 
    A가 연결을 맺기위해 mempool 요청을 한다
    B가 A에게 inv로 답장한다
    A는 getdata로 TX's list를 보낼 것을 요청한다
    B는 A에게 TX's list로 응답한다.

기존 비트코인은 하나의 cpu당 하나의 채굴을 할 수 있도록 해놓았는데
    이제는 lite coin이나 doge 같은 memory-bound 기반은 
        버퍼 접근 시간이 메모리에 종속되어서 ASIC를 만들기 어려워졌다. 
        따라서 성능별로 연산차이력이 별로 나지 않아 
        hash rate를 줄이는데에 격차가 줄어졌다.

Fork
    Hard Fork
        기존 클라이언트와 새로운 클라이언트끼리 분화해 다른 main net처럼 작동된다
    Soft Fork
        기존 클라이언트와 새로운 클라이언트가 업데이트 하여 호환될 수 있도록 작동한다.

image

vulnerability

Pool Hopping
    computing power을 모아서 채굴하기 때문에 power pool에 문제가 생길 수 있다

Pool Cannibalization
    Pay-per-share 방식의 취약점
    소량의 hash rate를 mining pool에 제공해 지분을 할당 받는데
        실제로 블록을 찾아도 전송을 안하고
         내 hash rate를 이용해 개별적 블록 채굴을 하는 것이 효율이 더 좋다.
Pool Wars
    Nash Equlibrium(균형)
        공격과 수비에 균형이 맞아야 하지만
            무조건 공격이 이득인 구조이기 때문에 문제가 된다

Double Spending
    이중 지불의 위험성
    공격적이고 의도적인 이중 지불

Sybil Attack
    가짜 정보를 네트워크에 뿌려 진짜가 되게하는 것