2 분 소요

블록체인과 공개키 암호

  • 블록체인은 암호화적 기법을 토대로 만들어진 기술
  • Bitcoin은 네트워크 참여자 모두가 같은 ‘원장’을 공유함으로써 투명한 거래가 가능
  • 원장은 어느 주소에 BTC가 있는지 기록하지만 그 주소가 누구에게 속하는지는 기록하지 않음(익명성)
  • Bitcoin은 공개키 암호를 사용하여 명시적인 비밀교환과정 없이 BTC의 소유권 증명을 실행

공개키 암호화를 사용한 소유권 증명

  • 대부분의 블록체인 주소는 공개키로부터 도출된 값

img

  • 소유권 증명은 트랜잭션 발생 시 비밀키 + 공개키로 생성된 주소의 값 비교로 이루어진다.
    • 그러나 이러한 증명 과정은 공개키가 항상 따라가기 때문에 비밀키 256bits, 공개키 256bits로 512bits 데이터가 생성되는데, 상당히 많은 트랜잭션 발생 시 부하를 야기할 수도 있다.
    • 따라서 이더리움의 경우 서명으로부터 공개키를 추출하는 기술을 도입하여 사용한다.

구현 방법으로 나눠본 블록체인

UTXO(Unspent Transaction Output) 기반 블록체인

  • 블록체인에 사용 가능한 토큰(e.g., Bitcoin) - UTXO들과 사용 자격검증방법을 기록
  • 일반적인 자격검증방법은 UTXO의 정보와 일치하는 공개키로 검증가능한 전자서명을 제출하는 것
  • Bitcoin이 대표적인 UTXO 기반 블록체인
  • 돈에 주소를 부여 -> 병렬화 가능 구조

어카운트 기반 블록체인(Account-based Blockchain)

  • 어카운트는 블록체인을 구성하는 주체를 표현하며 상태를 기록
  • 사용자는 어카운트를 사용할 때마다 어카운트 공개키로 검증가능한 전자서명을 생성
  • 상태를 기록할 수 있기 때문에 스마트 컨트랙트를 구현하기에 용이
  • Ethereum, Klaytn이 대표적인 어카운트 기반 블록체인

트랜잭션(Transaction, TX)

img

  • 블록은 트랜잭션을 일정한 순서로 정렬하여 저장하는 컨테이너
  • 트랜잭션은 어카운트의 행동
  • 트랜잭션의 순서는 중요! TX_1 -> TX_2 와 TX_2 -> TX_1는 다름
  • 블록체인 참여자들은 블록을 검증할 때 트랜잭션들이 올바른 순서대로 정렬되었는지를 확인 후 합의
  • 각각의 트랜잭션들은 어카운트에 연결된 공개키로 검증가능한 서명을 포함
  • 트랜잭션이 블록에 저장되는 것을 “confirmation”이라고 함

Confirmation vs. Finality

  • Confirmation 숫자는 트랜잭션이 블록에 포함된 이후 생성된 블록의 숫자
    • 임의의 트랜잭션 T가 포함된 블록의 높이가 100, 현재 블록의 높이가 105라면 T의 confirmation 숫자는 6
  • PoW를 사용하는 블록체인들은 finality가 없기 때문에 confirmation 숫자가 중요
  • Finality란 블록의 완결성을 의미
    • 합의를 통해 생성된 블록이 번복되지 않을 경우 완결성이 존재
  • PoW 기반 합의는 확률에 기반하기 때문에 경우에 따라 블록이 사라질 수 있으므로 완결성이 부재함
    • PoW 블록체인은 수학적으로 복잡한 퍼즐을 풀어 블록을 제안할 자격을 얻는 구조
    • 만약 두 명의 서로 다른 참여자가 동시에 퍼즐을 풀어 두 개의 올바른 블록을 생성한다면 두 블록 중 하나는 사라지게 됨
    • 이 때문에 블록이 확률적 완결성을 갖기까지 일정 갯수 이상의 블록이 생성되기를 기다려야 함

-> 이러한 특성으로 롱기스트 체인이 선택받기 때문에(완결성 고려) PoW에서 연산 능력이 중요하다.(연산 능력이 좋으면 그만큼 Confirmation을 받아낼 수 있고 그만큼 블록의 완결성을 높일 수 잇음)

BFT 기반 블록체인

  • BFT 기반 블록체인은 블록의 완결성이 보장됨
    • 네트워크가 동기화되어 있기 때문
    • 블록 생성이 PoW에 비해 빠르고 경제적
  • 하지만 네트워크 동기화의 필요로 인해 참여자의 숫자가 제한됨
    • 네트워크 참여자 구성이 고정되어 있어야 합의가 가능
    • 구성이 변경될 경우 모든 네트워크 참여자가 새로운 구성을 인지하기 까지 합의 불가능
    • 합의 알고리즘이 네트워크 동기화를 가정하고 짜여졌기 때문에 네트워크 사용량이 높음
    • 참여자가 많아질 경우 네트워크 오버헤드로 인해 합의가 느림

본 포스팅은 Klaytn 스마트계약과 탈중앙앱을 수강하며 작성한 글입니다.