open:mastering-blockchain-second-edition

Matering BlockChain Second Edition

목차

  • 블록체인 기술의 성장
  • 분산 시스템
  • 블록체인과 비트코인의 역사
    • 전자 화폐
    • 블록체인
      • 블록체인의 정의
        • 피어투피어
        • 분산 원장
        • 암호화로 보호
        • 추가만 허용
        • 합의를 통한 업데이트
    • 블록체인의 일반적인 요소
      • 블록체인의 작동 원리
      • 블록체인의 블록 축적 과정
    • 블록체인의 이점과 한계
    • 블록체인 기술의 단계
    • 블록체인의 특징
  • 블록체인의 유형
    • 분산 원장
    • 분산 원장 기술
    • 공용 블록체인
    • 사설 블록체인
      • 준사설 블록체인
      • 사이드체인
      • 허가형 원장
    • 공유 원장
    • 사유 블록체인
    • 토큰식 블록체인
    • 비토큰식 블록체인
  • 합의
    • 합의 메커니즘
    • 합의 메커니즘의 유형
    • 블록체인에서의 합의
  • CAP 정리와 블록체인
  • 요약
  • 블록체인을 사용한 탈중앙화
  • 탈중앙화 방법론
    • 직거래
    • 콘테스트 주도 탈중앙화
  • 탈중앙화를 향한 과정
    • 탈중앙화 방법
    • 탈중앙화 평가 체계 적용 사례
  • 블록체인과 전체 생태계의 탈중앙화
    • 저장
    • 통신
    • 컴퓨팅 능력과 탈중앙화
  • 스마트 계약

스마트 계약(smart contract)은 탈중앙화 프로그램이다. 스마트 계약을 실행하는 데 꼭 블록체인이 필요한 것은 아니다. 그러나 블록체인 기술이 지닌 보안상의 이점 때문에, 블록체인이 스마트 계약을 위한 표준 탈중앙화 실행 플랫폼이 됐다.

스마트 계약은 일반적으로 비즈니스 로직과 약간의 데이터를 포함한다. 특정 기준이 충족되면 비즈니스 로직이 실행된다. 이러한 스마트 계약은 블록체인의 관여자 또는 참여자들이 사용하기도 하고, 네트워크 참여자들을 대행해 자율적으로 실행되기도 한다.

  • 탈중앙화 조직
    • 탈중앙화 자율 조직
    • 탈중앙화 자율 기업
    • 탈중앙화 자율 사회
    • 탈중앙화 애플리케이션(디앱)
    • 탈중앙화 애플리케이션의 요구사항

이더리움 Dapp : https://www.stateofthedapps.com/ko

  • 디앱의 작동
    • 디앱 예제
      • KYC 체인
      • 오픈비자
      • 라주즈
  • 탈중앙화 플랫폼
    • 이더리움
    • 메이드세이프
    • 리스크

이더리움은 튜링 완전 언어와 가상 머신 개념을 최초로 도입한 블록체인으로 손꼽힌다. 이것은 비트코인 및 기타 여러 암호화폐의 제한적인 스크리트 언어와는 현저한 대조를 이룬다. 솔리디티라는 튜링 완전 언어가 등장하면서, 탈중앙화 애플리케이션 개발에 무한한 가능성이 열렸다. 이더리움 블록체인은 비탈릭 부테린이 2013년에 처음 제안했으며, 스마트 계약과 탈중앙화 애플리케이션을 개발하기 위한 공용 블록체인을 제공한다. 이더리움에서 통용되는 토큰을 이더(Ehter)라고 한다.

메이드세이프는 사용되지 않는 사룡ㅇ자의 저장 장치, 처리 능력, 데이터 커넥션 등의 컴퓨팅 자원으로 구성된 세이프(SAFE, Secure Access For Everyone) 네트워크를 제공한다. 네트워크상의 파일은 작은 데이터 청크(chunk)로 나뉘며, 암호화되어 네트워크 전체에 무작위로 분산된다. 이 데이터는 해당 소유자만 검색할 수 있다. 메이드세이프의 획기적인 점중 하나는 중복 파일을 네트워크에서 자동으로 거부하여, 데이터 관리에 필요한 추가 컴퓨팅 자원을 줄인다는 점이다. 기여자를 장려하기 위해 세이프코인(Safecoin)을 토큰으로 사용한다.

리스크(Lisk)는 블록체인 애플리케이션 개발 및 암호화폐 플랫폼이다. 개발자는 자바스크립트(Javascript)를 사용해 탈중앙화 애플리케이션을 구축하고 해당 사이드체인에서 호스팅할 수 있다. 리스크에서 우임 지분 증명(DPoS, Delegated Proof of Stake) 메커니즘을 사용해 합의를 수행하는데, 선출된 101개의 노드가 네트워크를 보호하고 블록을 제안하게

  • 요약
  • OpenSSL 커맨드라인 도구 다루기
  • 소개
    • 수학
      • 집합
      • 유한체
      • 위수
      • 아벨 군
      • 소체
      • 순환군
      • 모듈러 연산
    • 암호화
    • 기밀성
    • 무결성
    • 인증
      • 개체 인증
      • 데이터 출처 인증
    • 부인 방지
    • 책임 추적성
  • 암호화 프리미티브
    • 대칭 암호화
      • 스트림 암호
      • 블록 암호
        • 블록 암호화 모드
        • 전자 코드 북 모드
        • 암호 블록 연쇄화
        • 카운터 모드
        • 키 수열 생성 모드
        • 메시지 인증 모드
        • 암호화 해시 모드
    • 데이터 암호화 표준
    • 고급 암호화 표준
      • AES 작동 방식
  • 요약
  • 비대칭 암호화
    • 정수 인수분해
    • 이산 로그
    • 타원 곡선
  • 공개 키와 개인 키
    • RSA
      • RSA를 사용한 암호화와 복호화
      • 타원 곡선 암호화
        • ECC를 뒷받침하는 수학
        • 점 덧셈
        • 점 배가
    • ECC에서의 이산 로그 문제
      • OpenSSL을 이용한 RSA
      • RSA 공개 키와 개인 키 쌍

RSA 디저털서명 알고리즘은 다음과 같다.

  1. 데이터 패킷의 해시 값 계산: 해시를 수신자가 다시 계산한 다음 원래의 해시와 비교하여 데이터가 전송 중에 변조됐는지 확인할 수 있으므로 데이터 무결성이 보장된다. 기술적으로는 데이터를 먼저 해싱하지 않고도 메시지 서명을 할 수 있으나, 안전하다고 간주하지 않는다.
  2. 서명자의 개인 키로 해시 값 서명: 서명자만 개인 키를 갖고 있으므로, 서명과 서명된 데이터의 진본성이 보장된다.

05장 비트코인 입문

  • 크기(Size): 트랜잭션의 크기를 바이트 단위로 나타낸 것이다.
  • 가중치(Weight): 비트코인에 세그윗(SegWit, Segregated Witness)을 도입한 이후에 새롭게 블록과 트랜잭션 크기를 측정하는 지표다.
  • 수신 시각(Received Time): 트랜잭션을 받은 시각이다.
  • 포함 블록(Include In Blocks): 트랜잭션을 포함하는 블록체인상의 블록 번호를 나타낸다.
  • 승인(Confirmations): 이 트랜잭션에 대한 채굴자의 승인 건수다.
  • 총 입력(Total Input): 트랜잭션의 총 입력 액수다.
  • 총 출력(Total Output): 트랜잭션의 총 출력 액수다.
  • 수수료(Fees): 청구된 총 수수료다.
  • 바이트당 수수료(Fee per byte): 총 수수료를 트랜잭션의 바이트 수로 나눈 값이다. 이를테면, 바이트당 10사토시다.
  • 단위 가중치당 수수료(Fee per weight unit): 세그윗 이전의 트랜잭션의 경우에는 총 바이트 수x4로 계산한다. 세그윗 트랜잭션인 경우 세그윗 마커(SegWit marker)와 플래그, 증인 서명(witness) 필드를 결합한 것을 하나의 단위 가중치로, 다른 필드의 각 바이트는 4개의 단위 가중치로 계산한다.

비트코인 네트워크의 지불 트랜잭션은 다음 단계로 이뤄진다.

  1. 보내는 사람이 자신의 개인 키로 트랜잭션에 서명하면서 트랜잭션이 시작된다.
  2. 트랜잭션을 네트워크로 전송하기 위해 직렬화한다.
  3. 트랜잭션이 네트워크로 브로드캐스팅된다.
  4. 트랜잭션을 리스닝(Listening)하고 있는 채굴자가 트랜잭션을 선택한다.
  5. 채굴자가 트랜잭션의 유효성을 검증한다.
  6. 트랜잭션이 채굴을 위해 후보 블록 또는 제약된 블록에 추가된다.
  7. 채굴이 되면, 비트코인 네트워크의 모든 노드에 결과가 브로드캐스팅된다.

노드가 비트코인 네트워크에 접속하면, 비트코인 채굴자는 다음과 같이 몇 가지 작업을 수행한다.

  1. 네트워크 동기화: 새 노드가 비트코인 네트워크에 합류하면, 다른 노드에게 과거의 블록들을 요청해 블록체인을 다운로드한다. 여기서는 비트코인 채굴자의 맥락에서 이야기하고 있지만, 꼭 채굴자에게만 해당되는 일은 아니다.
  2. 트랜잭션 유효성 검사: 네트워크에 브로드캐스팅된 트랜잭션은 유효성을 검사받게 되며, 풀 노드(full node)들이 서명과 출력을 검증하고 유효서을 검사한다.
  3. 블록 유효성 검사: 채굴자와 풀 노드는 특정 규칙에 따라 수신한 블록을 평가해 유효성 검사를 시작한다. 여기서는 블록에 있는 각 트랜잭션의 검증과 논스 값의 검증 등의 작업을 한다.
  4. 새로운 블록 생성: 채굴자는 네트워크에 브로드캐스팅된 트랜잭션의 유효성을 검사한ㄷ 다음 이들을 묶어 새 블록을 제안한다.
  5. 작업 증명 수행: 채굴 과정의 핵심으로, 여기서 채굴자가 계산 퍼즐을 풀어 유효한 블록을 찾는다. 블록 헤더에는 32비트 논스 필드가 들어 있으며 채굴자는 논스 값을 계속 바꿔가며 결과 해시 값이 미리 결정된 목표 값보다 작을 때까지 반복 계산한다.
  6. 보상 수령: 해시 퍼즐(PoW)의 해를 구한 노드는 즉시 결과를 브로드캐스팅하고, 다른 노드들은 그 결과를 검증하고 그 블록을 승인한다. 거의 동시에 발견된 다른 블록과 충돌하여 새로 생성한 블록이 네트워크상의 다른 채굴자들에게 받아 들여지지 않을 가능성도 조금 있지만, 승인되고 나면 채굴자는 12.5비트코인과 관련된 트랜잭션 수수료를 보상으로 받는다.

07장 비트코인 클라이언트와 API

09장 스마트 계약

스마트 계약은 본질상 결정론적이어야 한다. 이 성질이 있어야 네트워크상의 아무 노드에서나 스마트 계약을 실행하고 동일한 결과를 얻을 수 있다.

스마트 계약은 다음 네 가지 성질을 갖고 있다.

  • 자동 실행 가능
  • 강제 집행 가능
  • 의미론적 건전성
  • 안전하고 중지 불가능

금융 도메인 특화 언어의 전체 리스트는 http://www.dslfin.org/resources.html에서 확인할 수 있다.


  • open/mastering-blockchain-second-edition.txt
  • 마지막으로 수정됨: 2020/06/02 09:25
  • 저자 127.0.0.1