[블록체인 기본] 블록체인에서 사용되는 암호화 기법
블록체인과 공개키 암호
- 블록체인은 암호화적 기법을 토대로 만들어진 기술
- Bitcoin은 네트워크 참여자 모두가 같은 ‘원장’을 공유함으로써 투명한 거래가 가능
- 원장은 어느 주소에 BTC가 있는지 기록하지만 그 주소가 누구에게 속하는지는 기록하지 않음(익명성)
- Bitcoin은 공개키 암호를 사용하여 명시적인 비밀교환과정 없이 BTC의 소유권 증명을 실행
공개키 암호화를 사용한 소유권 증명
- 대부분의 블록체인 주소는 공개키로부터 도출된 값
- 소유권 증명은 트랜잭션 발생 시 비밀키 + 공개키로 생성된 주소의 값 비교로 이루어진다.
- 그러나 이러한 증명 과정은 공개키가 항상 따라가기 때문에 비밀키 256bits, 공개키 256bits로 512bits 데이터가 생성되는데, 상당히 많은 트랜잭션 발생 시 부하를 야기할 수도 있다.
- 따라서 이더리움의 경우 서명으로부터 공개키를 추출하는 기술을 도입하여 사용한다.
구현 방법으로 나눠본 블록체인
UTXO(Unspent Transaction Output) 기반 블록체인
- 블록체인에 사용 가능한 토큰(e.g., Bitcoin) - UTXO들과 사용 자격검증방법을 기록
- 일반적인 자격검증방법은 UTXO의 정보와 일치하는 공개키로 검증가능한 전자서명을 제출하는 것
- Bitcoin이 대표적인 UTXO 기반 블록체인
- 돈에 주소를 부여 -> 병렬화 가능 구조
어카운트 기반 블록체인(Account-based Blockchain)
- 어카운트는 블록체인을 구성하는 주체를 표현하며 상태를 기록
- 사용자는 어카운트를 사용할 때마다 어카운트 공개키로 검증가능한 전자서명을 생성
- 상태를 기록할 수 있기 때문에 스마트 컨트랙트를 구현하기에 용이
- Ethereum, Klaytn이 대표적인 어카운트 기반 블록체인
트랜잭션(Transaction, TX)
- 블록은 트랜잭션을 일정한 순서로 정렬하여 저장하는 컨테이너
- 트랜잭션은 어카운트의 행동
- 트랜잭션의 순서는 중요! 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 스마트계약과 탈중앙앱을 수강하며 작성한 글입니다.