블록체인(Blockchain)은 탈중앙화된 분산 원장 관리 시스템입니다. 여기서 탈중앙화(Decentralization)란 모든 규칙이 시스템 전체에 동일하게 적용되며, 특정 주체가 권한을 가지고 결정이나 제약을 할 수 없는 분권화된 구조를 의미합니다. 비트코인의 블록체인은 완전히 탈중앙화되어 있어 어떤 주체도 시스템 규칙을 임의로 변경하거나 거래 내역을 수정할 수 없으며, 특정인을 제약하거나 검열할 수 없습니다. 이러한 특성 덕분에 누구나 안심하고 자유롭게 비트코인을 사용할 수 있습니다.
비트코인의 송금은 디지털 서명과 함께 트랜잭션(Transaction)을 생성하여 블록체인 네트워크에 새로운 거래로 추가하는 방식으로 이루어집니다. 블록체인은 이러한 트랜잭션들을 저장하고 있는 블록(Block)들의 연속된 모음입니다. 일정한 생성 주기에 따라 새로운 블록이 생성되어 블록체인에 추가되며, 각 블록은 생성 시점의 시간(타임스탬프)을 기록합니다. 따라서 특정 거래의 체결 시간은 해당 트랜잭션이 포함된 블록의 생성 시간을 통해 확인할 수 있습니다.

새롭게 생성된 블록은 기존 블록들과 함께 그 내용을 수정하지 못하도록 하는 암호 기술을 적용하여 블록체인에 “체인”하는 과정을 거칩니다.
블록 “체인”하는 해시 암호화
비트코인 블록체인의 모든 블록들은 SHA-256 암호 알고리즘을 사용한 해시(Hash) 함수로 일렬로 연결되어 있습니다. 각 블록에는 연쇄적으로 해시 함수가 적용되어 있어, 해시값만 비교해도 블록에 저장된 데이터의 변조 여부를 확인할 수 있습니다. 이것이 가능한 이유는 해시 함수가 가진 다음과 같은 특징 때문입니다.
해시 함수의 특징
- 동일한 입력 값에 대해 항상 동일한 출력 값을 생성함
- 출력 값은 일정한 길이를 유지하며(비트코인의 경우 64자리), 전체 범위에 균일하게 분포함
- 해시로 변환된 출력 값은 원래 값으로 되돌릴 수 없으며, 출력 값들 간에 선형적 관계나 상관관계가 존재하지 않음
위 3가지 특징으로 인해 해시만으로는 원본 데이터를 알 수 없지만, 원본 데이터가 조금이라도 변경되면 해시값이 완전히 달라집니다. 따라서 해시값을 비교하면 원본 데이터의 변조 여부를 확인할 수 있습니다.

해시를 활용한 블록체인의 데이터 무결성 보장
블록체인은 해시의 특성을 활용한 위변조 검증을 통해 데이터의 무결성을 보장합니다. 새로운 블록이 기존 블록과 "체인"되는 과정에서는 다음과 같은 단계를 거칩니다. 먼저 신규 블록의 모든 트랜잭션 데이터를 해시 함수로 처리하여 머클 해시를 생성합니다. 그다음 비트코인 채굴 과정에서 찾아낸 넌스(Nonce) 값과 이전 블록의 최종 해시를 함께 사용하여 신규 블록의 최종 해시를 만듭니다. 이렇게 생성된 해시는 다음 블록의 최종 해시를 만드는 입력 값으로 사용됩니다.

모든 블록과 데이터가 순차적으로 해시되기 때문에, 악의적인 의도로 중간의 거래내역을 위조하면 머클 해시가 변경됩니다. 이에 따라 머클 해시를 포함하는 블록 해시도 완전히 다른 값을 가지게 됩니다. 블록체인은 이러한 검증 과정을 통해 거래내역의 위변조를 방지하고 모든 데이터의 무결성을 보장합니다.
검증된 블록을 전체 네트워크로 전파
노드(Node)는 새로운 블록을 생성하고 검증하여 비트코인 거래내역을 블록체인 데이터베이스에 저장하고 유지하는 역할을 합니다. 여러분도 비트코인 코어 앱을 컴퓨터에 설치하고 실행하여 블록체인을 동기화하고 검증하면 비트코인 네트워크의 노드가 될 수 있습니다. 각 노드는 P2P 방식으로 다른 노드들과 통신하며 블록체인 데이터를 서로 공유합니다.

비트코인 블록체인은 수많은 노드에 의해 분산되어 유지 관리되므로 단일 실패 지점(single point of failure, SPOF)이 없습니다. 만약 특정 노드에서 잘못된 블록을 생성하거나 해커가 노드를 해킹해 블록체인의 거래내역을 변조하더라도, 네트워크의 다수 노드들이 정상적인 블록체인 데이터로 복구합니다.
블록체인을 유지 관리하는 컨센서스
모든 노드의 블록체인 원장을 올바르게 유지하는 것은 비트코인의 컨센서스(Consensus) 알고리즘을 통해 이루어집니다. 컨센서스는 우리말로 '합의'를 뜻하며, 수많은 노드가 블록 데이터를 올바르게 검증하고 잘못된 데이터를 복구하는 비트코인의 핵심 프로세스입니다. 비트코인은 작업 증명(proof of work, PoW) 방식의 컨센서스 알고리즘을 사용합니다. 작업 증명이란 노드가 컴퓨팅 능력을 증명함으로써 블록체인 데이터를 검증할 수 있는 권한을 얻는 방식을 의미합니다.
작업 증명의 과정은 신규 블록 해시를 생성하기 위해 필요한 넌스(Nonce) 값을 찾는 것부터 시작합니다. 넌스는 해시 함수를 실행했을 때 특정 조건을 만족하는 해시를 만들어내는 임시 입력 값입니다. 해시의 특성상 입력 값을 알 수 없고 해시 간에 연관성이 없기 때문에, 넌스를 찾기 위해서는 수많은 연산을 반복하여 무수한 값을 대입해보는 방법밖에 없습니다. 따라서 넌스를 찾는 작업은 연산 속도가 빠른 컴퓨터를 많이 보유할수록 유리합니다.

넌스를 성공적으로 찾으면 새로운 블록을 검증하고 생성할 수 있습니다. 신규 블록 생성에 성공한 노드는 일정량의 비트코인을 보상으로 받게 됩니다. 이러한 작업 증명 과정은 마치 광부가 광산에서 금을 캐내는 것과 유사하다고 하여 '비트코인 채굴'이라고 불립니다.
이외에도 비트코인은 그 희소성 때문에 디지털 금으로도 불립니다. 비트코인은 2100만개 정도로 총 발행량이 정해져 있습니다. 블록 생성 보상은 4년마다 반으로 줄어들며 나중에는 결국 블록 보상이 0이 되어 신규 비트코인이 더 이상 발행되지 않게 됩니다. 이는 사토시가 비트코인의 인플레이션 발생을 방지하기 위해 의도적으로 총 발행량을 제한해 둔 것입니다.
모든 비트코인이 채굴되었다고 하더라도 블록 생성 보상이 완전히 없어지는 것은 아닙니다. 블록에 포함되는 모든 트랜잭션에는 비트코인 전송에 대한 인센티브로 지급되는 수수료가 포함되어 있으므로 신규 비트코인을 보상으로 받지는 못하더라도 여전히 이 수수료는 블록 생성 보상으로 받을 수 있습니다.