블록체인은 어떻게 작동하나요?

공유
Copied to clipboard!
아티클 듣기
00:00 / 00:00

모든 블록체인의 핵심은 채굴 알고리즘에 있습니다, 비트코인의 알고리즘을 예시로 들어봅시다. "안전한 해시 알고리즘 256비트(Secure Hash Algorithm 256bits)"의 약자인 SHA-256에는 텍스트, 숫자, 심지어 어떤 크기의 컴퓨터 파일이든 길이에 상관없이 입력할 수 있습니다. 출력물은 "해시(hash)"라고 명명되며, 항상 기계어로 256비트에 해당하는 일정한 길이를 가집니다.

동일하게 입력하면 매번 동일한 출력이 나옵니다, 무작위 출력이 아닙니다. 하지만 입력에 약간의 변화가 있다면 출력은 완전히 달라질 것입니다.

또한 이 알고리즘은 일방 함수(One-way function)로 되어있어 출력 결과를 안다고 해도 거꾸로 입력 내용을 계산할 수 없습니다. 입력 내용을 무작위로 추측해보았자 맞출 확률은 2의 256승 분의 1에 불과하여, 거의 불가능한 셈입니다, 쉽게 말해서 안전하다는 얘기입니다.

알고리즘의 역할을 알았으니, 간단한 거래 예시를 통해 블록체인이 어떻게 작동하는지 보여드리겠습니다.

여기 비트코인을 보유한 Alice와 Bob이 있습니다. Alice가 Bob에게 2 비트코인을 빚졌다고 가정해봅시다.

Alice는 Bob에게 2 비트코인을 송금하기 위해 비트코인 네트워크의 모든 채굴자들에게 공유하고픈 거래 내용을 전파합니다.

Alice가 채굴자들에게 보낸 이 전파에는, Bob이 받을 비트코인 수와 주소, 디지털 서명과 Alice의 공개 키(Public key)가 포함됩니다. 디지털 서명은 Alice의 개인 키(Private key)로 만들어지며 채굴자들은 이를 통해 Alice가 비트코인의 소유주이며 거래를 하려는 주체임을 확인합니다.

채굴자들은 위 내용들이 유효한지 확인 후 이 거래를 다른 여러 거래들과 묶어 하나의 블록에 포함시켜 채굴을 시도합니다. 채굴은 이 블록을 SHA-256 알고리즘에 입력하여 진행됩니다. 출력 내용이 유효한 것으로 간주되려면 일정한 개수의 0으로 시작되어야 합니다. 출력값이 몇 개의 0으로 시작하는지는 “채굴 난이도”에 의해 좌우되는데, 여기서 “채굴 난이도”란 비트코인 네트워크에 존재하는 연산 처리 능력을 일컫습니다.

출력 내용이 일정한 개수의 0으로 시작하기 위해선 채굴자는 입력 과정에 “해 값”를 추가해야 됩니다. 입력의 작은 변화도 완전히 다른 출력 내용이 나오기 때문에, 채굴자들은 적합한 출력 내용이 나올 때까지 해 값을 무작위로 입력해보며 채굴을 시도합니다.

블록 채굴이 완료되면 채굴자는 네트워크에 해당 블록을 전파하고 전파받은 채굴자들은 블록의 진위여부를 확인하고 각 채굴자의 블록체인에 포함시키게 되며 Alice와 Bob의 거래는 완료됩니다. 하지만 거래와 별개로 각 블록 안에는, 바로 직전의 블록 출력의 해시값을 포함해 모든 블록들이 한 데 묶이게 됩니다. 블록체인이라는 이름이 붙은 이유기도 합니다. 이 점은 블록체인 구조에서 신용이 작동하는 방법에 있어 중요한 부분입니다.

모든 채굴자들은 각자의 컴퓨터에 블록체인의 복사본을 가지며, 가장 많은 계산 작업이 들어간 블록체인이 가장 긴 블록체인이라 믿습니다. 만약 채굴자가 예전 블록에 포함된 거래 내용을 변경하려고 하면, 해당 블록의 출력된 해시는 변경되고 이후에 생성된 모든 블록의 해쉬들을 바꾸게 됩니다. 모든 블록은 그 앞의 블록과 해시로 연결되어 있기 때문입니다. 따라서 한 채굴자의 블록체인을 다른 사람들이 맞는 것으로 믿게 만들려면 바꾼 블록 뒤의 모든 블록을 다시 계산해야합니다. 따라서 그 채굴자는 네트워크의 50%가 넘는 연산 처리 능력을 보유해야 하며 이는 거의 불가능합니다. 이와 같은 네트워크 공격은 51% 공격이라고 불립니다.

블록을 채굴하기 위해 진행하는 연산 작업을 작업 증명(Proof-of-Work)라고 합니다. 작업 증명만큼의 연산 처리 능력이 요구되지 않아 전기 소모가 훨씬 적으며 더 많은 사람들이 참여할 수 있는 지분 증명(Proof-of-Stake)처럼 다른 채굴 모델도 있습니다.

지금까지 기본적인 블록체인의 작동 과정에 대하여 알아보았습니다!

Loading