오늘도 개발자 Backend Developer

블록체인 관련 기본 용어정리.

1. 기본용어

1) 무결성

  • 특정한 데이터를 보호하여 그 데이터를 정상인 상태로 유지하는 성질

2) 기밀성

  • 허가된 사용자만 데이터에 접근을 허용하는 것

3) 가용성

  • 원활한 서비스를 제공하는 것

4) Hash

  • 알고리즘
  • 특정 데이터를 더 짧은 길이로 변환하는 행위

5) 16진수

  • 1 ~ 9까지의 숫자, A~F까지 알파벳

6) MD5

  • Hash 알고리즘
  • 128Bit 고정 길이의 결과를 가진 암호화 Hash 함수
  • RFC 1321
  • 최근 효율적인 공격 알고리즘이 발표되어 무결성 보장이 어려워짐.

7) SHA-(1 or 256)

  • Hash 알고리즘
  • MD5 Hash 함수처럼 다양한 기초 수학적 연산과정을 포함.
  • SHA-1은 MD5처럼 치명적인 보안 결함은 아니지만 충돌이 발견되어 SHA-256을 권장

2. 블록체인 용어

1) Block

  • 블록체인을 구성하는 가장 작은 개별단위
  • 거래정보를 가지고 있음.
  • 이전 블럭 Hash값이 필요함(Genesis Block빼고)

2) 블록체인

  • 블록들이 연결(Chain)되어 구성
  • Linked List
  • 모든 거래 정보를 포함하는 거대한 장부(블록 내에 모든 거래 정보가 있기 때문)
  • 바라보는 관점에 따라 네트워크 개념이기도 하다.

3) 최초블록(genesis block)

  • 처음 시작하는 Block
  • previousblockhash 값은 0으로 한다.

4) 채굴(Mining)

  • 모든 노드에서 새로운 블록을 생성할 수 없도록 제한을 만들었고,
  • 많은 컴퓨터 자원을 소비하여 특정 문제를 해결하면 새로운 블럭을 생성할 수 있다.
  • 이를 통해 채굴자는 “보상”을 받을 수 있다.

5) 작업증명(Proof-of-work)

  • “작업 완료”를 “증명”하는 과정
  • 채굴 작업 중 변경이 가능한 값 nonce 값을 찾는 과정이라고 볼 수 있다.

6) nonce

  • 채굴 과정에서 증명을 위해 사용되는 값
  • 0부터 시작하여 조건에 맞는 Hash값을 찾을 때까지 1씩 증가하는 값
  • 블록을 생성하는데 변경 가능한 유일한 값으로 ‘Hash’ 함수 특성상 특정 조건에 맞는 값을 나오게 하려면 특정 값을 먼저 정해놓고 구할 수는 없다. 그러니 무작위로 대입하여 찾아야하니, 블록 내 변경가능한 유일한 값인 nonce 값을 변경하여 Hash값을 찾는다.

7) 작업 난의도(difficuty)

  • nonce값 계산의 어려움 정도
  • Hash값 앞의 0의 수

8) UTXO

  • unspent transaction output