# Block Chain ## 설치프로그램 - cmder - curl (https://curl.haxx.se/windows/) ### ip 조회 ``` curl -4 icanhazip.com 222.107.238.15 ``` ## 비트코인 시세 ## 비트코인 탄생 배경 - 무정부 주의 및 사이버 펑크 운동 - 정부로부터 개인의 사생활 보호 강조(익명성) ## 비트코인의 탄생 - https://bitcoin.org/bitcoin.pdf ## 비트코인 - 물리적인 형태가 없는 온라인 가상화폐, 단위는 BTC - 암호화 기술이 적용되어 암호화폐라고도 함 - 중앙기관 없이 네트워크 참여자간 .. ## 가상화폐 vs 암호화폐 ### 가상화폐 "규제되지 않은 디지털 화폐의 한 가지 유형이다. 개발자가 발행하고 주로 같은 개발자가 통제하며 특정한 가상 공동체 안에서 인정받고 사용한다" - 유럽 중앙은행 ## 비트코인 주요 목표 ### 비트코인 주요 목표 - 중앙 기관 없이 당사자간 거래 가능 → P2P 네트워크 사용 - 무분별한 화폐 발행 방지 → 2140년까지 2100만개만 발행 제한 - 모든 거래내역은 공개 → 블록체인에 저장 - 악의적인 참가자에 의한 부정 방지 → 공개 분산 장부, 작업증명 - 거래 내역 위변조 방지 → 해시 함수를 이용한 체인 - 자발적인 참여 유도 → 작업 증명 시스템 - 본인 인증과 부인방지 → 참가자의 개인키를 이용한 전자 서명 ## 채굴 노드 - https://bitnodes.earn.com/ - https://coinmarketcap.com ## 블록체인 이란? - 블록과 체인의 합성어로 거래 내역이 담긴 블록을 체인처럼 엮어서 분산 저장하는 기술 - 다른 말로 분산원장기술(Distribution ## 블록의 연결 블록은 순서대로 연결되며, 이전 블록의 해시값을 가지고 있다. ## 분산 장부 비트코인의 경우 10,000개 정도의 분산 장부 유지 ## 블록체인 거래 기록 ### 은행이 하는 일 - 보관 - 거래 내역을 안전하게 보관하고 각 계정의 잔액 상태를 관리한다. - 검증 - 거래 발생 시 거래 내역에 문제가 없는지 검사한다. ### 은행 시스템의 구현 - 은행이 하는 보관과 검증을 구현 - 단, 단일 주체가 이 두가지를 다 하면 안됨 - 블록체인이 혁신인 이유는 이 문제를 해결했기 때문 ## 블록체인 거래 기록 ### 장부 보관 ## 블록체인 거래 검증 ### 누가 검증할 것인가? - 검증자가 한 컴퓨터이면 해당 컴퓨터만 공격하면 전체 장부를 위조 가능 ### 블록체인 거래 내역 검증 - 매 블록마다 검증자를 바꿈 - 어떤 컴퓨터가 다음에 검증하게 될 지 모르는 구조 - 참여자가 많을 수록 예측이 어려워짐 - 검증을 위해 경쟁하는 시스템 ### 블록체인 검증 안전장치 - 검증을 위한 경쟁 시 '비용'이 발생 - 많은 돈을 쓰는 사람이 경쟁에서 유리 - 경쟁에서 이긴 검증자에게 합당한 보상 - 경쟁에서 이기더라도 검증을 잘 못하면 보상을 받지 못함 - 경쟁에서 이기면 새로운 화폐를 발행해서 보상 ## 블록의 전파 및 체인 분기 ### 체인 분기 발생 시 처리 - 가장 긴 체인이 옳다 (나카모토 합의) - 일시적으로 분기가 발생하더라도 이후 블록들이 추가되는 과정에서 더 긴 체인만 유지 ## 블록체인 장부의 조작 ### 장부의 조작 - 내가 가진 돈보다 더 큰 금액을 사용 - 유효성 검증에서 통과하지 못함 - 이미 썼던 내용을 없애고 다시 사용 - 이미 썼던 내용은 이전 블록 어딘가에 저장 - 해당 블록을 위조하기 위해서는 그 이후 모든 블록에 수정이 들어가야 함 ### 공격자 입장 - 블록을 생성하거나 조작하기 위해서는 더 많은 컴퓨팅 파워가 필요 (비용 발생) - 더 많은 비용을 들였다고 해서 블록 생성 권한을 얻는다는 보장이 없음 - 특정 블록을 수정하면 그 블록에 연결된 체인이 다른 사람들이 가진 체인보다 더 길어야 네트워크에서 살아남음 ## 블록체인의 특징 ^ ^ 장점 ^ 단점 ^ ^ 익명성 | 개인정보를 요구하지 않음 \\ 은행계좌, 신용카드 등 기존 지급 수단에 비해 높은 익명성 제공 | 불법 거래대금 결제, 비자금 조성, 탈세를 가능하게 함 | ^ P2P | 공인된 제3자 없이 P2P 거래 가능 \\ 불필요한 수수료 절감 | 문제 발생 시 책임소재가 모호 | ^ 확장성 | 공개된 소스 ^ 투명성 ^ 보안성 ^ 시스템 안정성 ## 블록체인 기술의 장점 ### 보안성 향상 - 중앙 데이터베이스 한 곳에 모든 자료를 저장하는 것 보다 데이터 손실에 대한 위험이 낮음 ### 안정성 향상 ### 첫째, 신뢰성을 보장할 제 3자가 필요 없다 - 분산화된 네트워크 노드가 합의를 통해 거래를 검증 ### 둘째, 해킹에 안전하다. - 모든 사용자가 거래 장부를 가지고 있기 때문에 위/변조가 어려움 - 네트워크 일부에 문제가 생겨도 가용성에 문제가 발생하지 않음 - 분산처리 구조이기 때문에 DDoS 같은 공격에 안전 ## 블록체인 단점 ## 블록체인 기술이 주목받는 이유 - 분산 컴퓨팅 파워 - 위·변조 불가 - 다양한 확장성 - 투명한 추적 관리 - Global 플랫폼 ## 퍼블릭 블록체인 ### 공개현 블록체인 ## 프라이빗 블록체인 ### 폐쇄형 블록체인 ### 장점 - 퍼블릭 블록체인의 느린 거래속도 문제 해소 - 비공개를 원칙으로 하므로 데이터에 대한 보안성 강화 ## 컨소시엄 블록체인 ### 장점 - 분산형 구조를 유지하면서 제한된 참여를 ... ## 블록체인 적용 전 후 비교 ### 통관업무에 블록체인을 적용한 예 공개된 장부 ## 핵심 개념 - 해시 연산 ### 데이터의 무결성을 보장하는 기술 - 무결성(integrity)은 데이터를 누구도 쉽게 변조 할 수 없으며, 변조했더라도 그 사실을 바로 알아차릴 수 있는 특성 ## 핵심 개념 - 공개키 및 지갑주소 ### 개인기 - 무작위 숫자를 이용해 256 bit 개인키 생성 ### 공개키 - 개인키에 ECDSA를 적용해 생성 ### 지갑주소 - 공개키를 이용해 생성 - 비트코인 송수신 계좌 (Base58) ## 블록체인에서 해쉬 사용 ## 핵심개념 - 블록 - https://blockchain.info - http://70.12.50.160:3000/hash ## 핵심 개념 - 합의 알고리즘 ### 합의 내용 - 블록 생성 권한을 누구에게 줄 것인가 - 체인 분기 발생 시 메인 체인을 선택하는 방법 ### 합의 알고리즘의 종류 - PoW(Proof Of Work): 작업 증명 - PoS(Proof Of Stake): 지분 증명 - 해당 코인을 많이 가진이에게 권한을 더 많이 줌 - DPoS(Delegated Proof of Stake): 위임 지분 증명 - EOS ### 작업증명(PoW) 알고리즘 - 동작 원리 - 서비스 제공자가 제시한 특정 작업을 완료해야 사용자가 서비스 이용 가능 - 작업을 하기는 어려워도 '작업 완료' 검증은 쉬운 작업 ## 핵심 개념 - 합의 알고리즘(작업 증명) ### 작업 증명(PoW) - 해당 블럭 헤더의 해시값이 특정 범위 안에 들도록 하는 것이 작업 과제 - 입력 값을 바꾸기 위해 Nonce 값 변경 ## 핵심 개념 - 전자 서명 - 안전하지 않은 공용 네트워크 상에서 전자 서명을 통해 신뢰성을 검증하는 기술 - 사용자 별로 개인키와 공개키로 이루어진 키의 쌍이 존재 - 송신자의 개인키로 암호화 하면 수신자는 송신자의 공개키로 복호화 가능 - 키 교환 없이 안전하게 데이터를 수신할 수 있음 - 트랜잭션의 부인방지에 사용 ## 핵심 개념 - 블록 생성 및 전파 - 거래 발생 시 모든 사용자에게 전파 - 각 사용자는 새로운 거래 내역을 블록에 취합 - 각 사용자는 해당 블록에 대한 작업 증명 시도 - 어떠한 사용자가 작업 증명에 성공하면 해당 블록을 모든 사용자에게 전파 - 다른 사용자는 해당 블록이 유효한 경우 승인