비트코인과 블록체인의 기본 개념

비트코인

나카모토 사토시 라는 사람이 만든
지금까지 자신이 나카모토 사토시라고 주장하는 사람이 여럿 있었지만, 자신을 증명하지는 못했다.

일반적으로 은행과 같은 곳에서 계좌번호, 비밀번호, OTP로 본인임을 증명할 수 있듯이,

블록체인에서도 지갑(계좌번호)과 개인키(소유자만 아는 비밀번호 같은 역할)를 이용해 증명할 수 있다.

사토시 나카모토라고 주장한 사람들 중 누구도 이것을 증명하기 위해 사용할 수 없었습니다.

지갑

공개키는 지갑의 주소만 있으면 누구나 확인할 수 있지만, 개인키는 지갑을 이용하여 보관 및 관리되며 절대 유출되어서는 안 됩니다. 차가운 지갑하드웨어로 관리할 때 하드 지갑로 나눌 수 있습니다

지갑과 거래

트랜잭션을 생성한 후 지갑을 사용하여 서명하고 블록체인 네트워크로 전송합니다.
전송된 트랜잭션은 블록에 포함되고 블록은 원장에 추가되며 모든 노드는 블록을 동기화하여 자신의 원장에 추가합니다.
그리고 블록체인 네트워크 원장거래 당사자가 아니더라도 제3자가 이를 확인할 수 있어야 합니다.

블록 탐색기

블록, 트랜잭션, 주소, 정보 등을 쿼리하고 분석할 수 있는 도구로 블록체인의 노드에서 데이터를 가져와서 사람이 읽을 수 있는 데이터로 정리하여 사용자에게 보여줍니다.

제네시스 블록

블록체인의 모든 블록은 이전 블록의 해시 값을 참조하지만 제네시스 블록은 처음 생성되는 블록이기 때문에 이전 블록의 해시 값을 가지고 있지 않습니다. 일반적으로 첫 번째 블록을 개발한 사람이 제네시스 블록을 가지고 있습니다.

해시시

해시는 임의의 크기의 데이터를 고정된 크기의 데이터로 변환하는 과정을 말하며 변환된 데이터를 해시 값이라고 합니다. 해시 함수는 입력 데이터의 작은 변화에도 다른 출력 값이 나오도록 설계되었습니다.

대부분의 블록체인은 SHA-256 해시 알고리즘을 사용하여 256비트(32바이트)의 고정 해시 값을 출력합니다.

블록 생성 시 트랜잭션을 포함하여 생성됩니다. 이때 트랜잭션은 해시값으로 변환되어 블록에 포함된다.

머클 루트

일반적으로 하나의 블록에는 여러 트랜잭션이 있습니다. 서로 근접한 두 개의 해시값이 합쳐져 하나의 해시값이 되고, 위로 올라간 두 개의 해시값이 다시 합쳐져 하나의 해시값이 된다.

마치 머클 트리라고 하는 토너먼트 테이블처럼 생겼는데, 이 과정을 반복하다 결국 하나가 남게 되면 맨 위에 있는 해시 값이 머클 루트가 됩니다.

해시값은 출력 결과 값이 조금만 바뀌어도 바뀌는 특성이 있기 때문에 이를 이용하여 트랜잭션의 무결성을 검증할 수 있습니다.


채광 (광업)

마이닝은 블록체인에서 새로운 블록을 생성하는 과정을 말하며 일반적으로 마이닝이라고 합니다.
블록체인에서 새로운 트랜잭션이 발생하면 블록에 저장되고 네트워크에 전파됩니다.

블록 생성에 대한 보상으로 코인이 주어지며, 블록 수가 증가할수록 탈중앙화가 다가옵니다.

블록체인 트렐레마

Blockchain Trelemma는 블록체인의 세 가지 요소인 확장성, 보안성 및 탈중앙화(분산 원장) 사이의 절충점을 나타내는 개념입니다.
이러한 trade-off를 극복하기 위해 블록체인 기술의 발전이 지속적으로 이루어지고 있다.
현재 빗썸, 업비트 등의 거래소는 탈중앙화가 아닌 중앙화 거래소입니다. 중앙화는 거래 속도를 높였습니다. 그래서 거래소 내에서 거래할 때는 빠르지만 출금 과정에서 블록체인 네트워크에 블록이 생성되기 때문에 출금 속도가 느립니다.

블록체인 네트워크에 블록을 추가하는 과정

  1. 새로운 트랜잭션이 생성됩니다.
  2. 채굴자는 이 트랜잭션을 포함하는 블록을 생성하기 위해 채굴을 시작합니다. 블록을 생성하기 위해서는 작업증명(POW) 과정이 필요합니다.
  3. 채굴자는 먼저 현재 블록체인에서 가장 최근 블록의 해시 값을 찾습니다.
  4. 채굴자는 3단계에서 얻은 해시값(이전 블록 해시값)에 블록헤더, 신규 블록의 트랜잭션을 이용한 머클루트, 생성시간, 난이도, 채굴자 고유의 랜덤값인 논스를 더한다.
  5. 채굴자는 해당 블록의 해시값이 일정 기준 이하인지 검증하는 작업을 수행하고, 기준 이상이면 nonce를 변경하여 블록의 해시값을 다시 얻어 이를 검증한다. 임계값 아래로 떨어지면 블록이 블록체인 네트워크로 전파됩니다.
  6. 다른 노드는 이 생성된 블록을 확인하고 이전 블록과의 연결성 및 새 트랜잭션의 유효성을 확인합니다. 모든 노드가 동의하면 해당 블록이 블록체인에 추가되어 원장을 업데이트합니다.


비트코인 블록 구조