블록체인
블록체인의 등장
- 2009년 비트코인이라는 암호화폐가 등장
- 비트코인은 탈중앙화된 화폐
- 탈 중앙화는 많은 지불 결제의 중개에 드는 비용을 줄일 수 있다.
- 금융기관이 없어도 송금이 가능하다.
- 블록체인의 역사 - 사이버 펑크 운동
P2P 네트워크
- 비트코인은 탈중앙화된 장부로 이루어진다.
- 블록체인은 P2P 네트워크를 통해 거래를 저장한다.
- 클라이언트/서버는 계층을 두고 데이터를 전송하기 때문에 해킹을 당하면 연결된 모든 클라이언트에 영향이 간다
- peer들은 각자 클라이언트/서버 역할을 한다.
- 불가역성 : 한번 기록승인된 데이터는 수정과삭제가 불가능 하여야한다
디지털 서명
- 부인방지
- 개인키, 공개키
- 보낼때 : 개인키로 암호화 후 공개키를 같이 전송하여서 받은 공개키로 복화화
- 디지털 서명 : 송신자가 자신의 비밀키로 암호화한 메시지를 수신자가 송신자의 공용 키로 해독하는 과정
- 디지털 서명을 통해 부인방지
작업증명
- 블록 : 네트워크 안에서 발생하는 모든 트랜젝션을 저장한다.
- 한 블록은 이전블록, 다음블록과 연결된다.
- 비트코인은 2009년 부터의 모든 데이터가 저장되어 잇음
- 해시 알고리즘
- 주로 원본 값의 위변조 여부를 확인하는데 활용
- 출력값으로 입력값을 유추할 수 없다.
- 원본 값의 해시코드를 추출했을 때 저장된 해시코드와 동일하다면 내용이 위조되지 않음을 알 수 있다.
- 블록의 구성
- previous block에 이전 블록의 해시값을 저장
- 트랜잭션의 해시저장 : 머클트리
- 참여자가 모두 데이터의 무결성을 확인할 수 있어야한다.
- 비트코인 채굴
- 작업 증명
- 가장 먼저 합의알고리즘을 푼 사람이 비트코인을 가져감
- 매 2016 블록시마다 난이도를 계산
- 답(Nonce)을 찾았으면 채굴 인센티브 : 12.5 BTC * 각 트랜잭션의 수수료
- 각 Nonce는 블록에 저장되어 있기 때문에 모든 참여자가 확인할 수 있다.
비트코인의 이중지불 방지와 합의
- 이중 지불 : 지불이 완전히 승인되기 전에 다른 지불을 진행하는 것
- 비트코인은 승인에 시간이 걸리기 때문에 이중 지불이 가능하다.
- 블록승인
- 6승인 : 블록의 완전 승인은 6개의 블록이 더 생성되어야 한다.
- 포크 : 이중 지불을 하면 블록의 분기가 발생한다.
- 포크 시 블록 승인 : 먼저 6승인을 성공한 블록이 완전 승인됨.
- 51프로 공격, 합의
- 모든 참여자가 합의를 이룬 데이터를 저장하여야 한다.
블록체인이 신뢰받는 이유
- p2p network
- public key infrastructure
- hash algorithm
- consensus
스마트 컨트랙트
- 이더리움의 등장 : 퍼블릭 블록체인
- 스마트 컨트랙트
- Nick Szabo가 처음으로 사용
- 특정 계약을 스스로 수립, 검증, 이행하기 위한 컴퓨터 프로토콜
- 계약의 보안, 비용을 감소하기 위한 방안
- 프로그래머블 머니
- 이더리움 : 2세대 블록체인
- 활용 서비스
- 토큰 서비스
- 에스크로 서비스 : 스마트 컨트랙트를 통해서 에스크로 서비스가 없어질 수 있음
- 스마트 컨트랙트를 보장하는 법 : 이더리움 가상 머신
- 이더리움 스마트 컨트랙트 코드를 실행하고 처리
- 모든 트랜잭션이 동기화 되어 실행되는 단일 글로벌 컴퓨터
- 단일 글로벌 컴퓨터 : 한쪽 스마트 컨트럭트가 실행되면 모든 스마트 컨트럭트가 실행됨
- 연결된 모든 노드가 동일한 상태를 유지한다.
- 배포 및 실행
- 이더리움 가상머신에서 트랜잭션생성까지 해준다.
- 튜링 완전성과 가스
기업형 블록체인 비지니스 사례
- R3 : 은행들이 모여 은행을 위한 블록체인 개발
- 은행간 거래에 중앙화를 없애고 블록체인 방식을 활용
- 중앙화에서 오는 중개비용과 해킹의 위험성을 낮춤
- 공개형 블록체인의 한계
- 프라이버시
- 이더리움 같은 플랫폼은 하나의 공유장부로 운영되어 모든 참여자가 정보를 볼 수 있음
- 그객, 자산의 기밀성을 보호해야 하는 금융산업에서 공개적 데이터 검증 구조는 무리
- 트랜잭션 최종성
- 기록된 트랜잭션의 발생 후 즉각적 확정이 필요
- 현재의 블록체인은 트랜잭션 결정에 시간이 소오됨
- 식별 가능한 참여자
- 확장성
- 생산성과 통합
- 프라이버시
-
공개형과 허가형의 차이
공개형 허가형 접근성 누구나 가능 허가를 받아야 가능 속도 느림 빠름 수수료 필수 거의없음 탈중앙성 높음 낮음 예시 비트코인,이더리움 hyperledger fabric - private blockchain
- rinux foundation - hyperledger
- 활용 범위