2021-04-30-Fri-StudyKR
Apr 30, 2021
»
studyKR
Blockchain Overview
Block chain이란
데이터를 여러 사람이 서로를 신뢰할 필요 없이 접근할 수 있게 허용하는 저장 방법
Cryptocurrency: 암호화폐
디지털로 저장된 중앙 기관에서 발행하지 않는 통화의 한 형태, 암호화로 보안을 유지하고 분산된 합의
https://www.the-blockchain-academy.com/blockchain-operational-overview/
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) 지갑
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), 계좌 잔고 모델
Blocks
Previous Block Hash
순차적 연결, 무결성 유지, 전 block hash 값 저장해 chain 유지
Merkleroot
변조 방지
hash 값 tree형태로 두개씩 hashing해서 하나로 만듬
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
기존 클라이언트와 새로운 클라이언트가 업데이트 하여 호환될 수 있도록 작동한다.
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
가짜 정보를 네트워크에 뿌려 진짜가 되게하는 것