준비하세요, 마음의 준비를 하세요. 이 글을 읽는 것은 당신을 화나게 하고 혼란스럽게 만들 수 있으며, 당신은 심지어 화면을 가격할 만큼 화가 날 수도 있습니다(그렇게 하지 마세요). 이것은 경고입니다.
비트코인은 데이터베이스입니다. 끝입니다. 그것이 전부입니다. 블록체인은 과거 업데이트를 저장하기 위한 데이터베이스로, 현재 데이터베이스 상태인 UTXO 세트를 재현할 수 있게 합니다. 전체 비트코인 프로토콜은 데이터베이스를 중심으로 구축되어 있습니다. 데이터베이스에서 유효한 항목은 무엇이며, 유효하지 않은 항목은 무엇인가요? 누가 데이터베이스에 항목을 제안할 수 있으며, 어떻게 그 사용자들의 항목만 고려되고 수용되도록 보장할 수 있나요? 이 데이터베이스에 항목을 작성하는 것을 제한하는 인증 메커니즘은 무엇인가요? 사람들이 너무 많은 항목을 만들어 데이터베이스를 관리하는 소프트웨어가 과부하되거나 충돌하지 않도록 어떻게 조절하나요? 사람들이 다른 서비스 거부 문제를 일으킬 만큼 큰 단일 항목을 만들 수 없도록 어떻게 보장하나요?
모든 것은 데이터베이스에 관한 것입니다.
작업 증명? 프로토콜에서 그 목적은 실제로 데이터베이스 업데이트를 처리할 수 있는 사람을 관리하는 것입니다. 비트코인은 분산 시스템이 되도록 설계되었으므로, 데이터베이스가 분산된 방식으로 업데이트될 수 있는 방법이 필요했으며, 여전히 모든 사용자가 데이터베이스의 개별 복사본을 가지고 단일 업데이트에 대해 합의할 수 있도록 해야 했습니다. 모든 사람이 자신의 데이터베이스 복사본을 혼자 업데이트한다면, 모든 사람이 데이터베이스의 단일 버전에 대해 합의할 수 있는 방법이 없습니다. 어떤 권위 있는 인물에게 업데이트를 맡기면, 업데이트 과정은 진정으로 분산되지 않습니다. 이것이 POW의 목적이었습니다. 누구나 업데이트를 처리할 수 있도록 허용하되, 그렇게 할 때 검증 가능한 비용을 발생시키도록 하는 것입니다.
작업 증명은 단순히 데이터베이스를 업데이트하기 위한 분산 메커니즘입니다.
전체 피어 투 피어 네트워크 아키텍처? 그것은 제안된 데이터베이스 업데이트 항목(거래)과 최종 데이터베이스 업데이트(블록)를 전파하기 위해 존재합니다. 거래가 메모리 풀에 들어올 때 이를 검증하는 노드? 그것은 데이터베이스에 제안된 항목 업데이트를 사전 필터링하고 유효성을 보장하기 위한 것입니다. 블록이 요구되는 난이도 목표를 충족하는지 검증하는 노드? 그것은 제안된 데이터베이스 업데이트를 사전 필터링하고 유효성을 보장한 후 다른 노드에 전달하여 그들의 로컬 복사를 업데이트하도록 하는 것입니다.
피어 투 피어 네트워크는 동일한 데이터베이스의 여러 복사를 조정하기 위해 존재합니다.
비트코인 스크립트? 그것은 데이터베이스의 항목에 대한 권한 부여 메커니즘으로 기능하기 위해 존재합니다. 현재 데이터베이스 상태인 UTXO 세트에서 기존 항목을 삭제하기 위해서는, 해당 업데이트를 제안하는 사용자가 기존 데이터베이스 항목을 잠그는 스크립트의 조건을 충족하는 인증 증명을 제공해야 합니다. 기존 항목이나 UTXO만이 데이터베이스에 새로운 항목을 생성하는 것을 승인하기 위해 “사용”될 수 있습니다. 채굴자는 기존 항목을 제거하는 조건을 충족하지 않고도 항목을 생성할 수 있는 프로토콜에서 유일한 존재입니다.
비트코인 스크립트는 데이터베이스에 쓸 수 있는 사람을 제어하고 제한하는 메커니즘입니다.
비트코인이 무엇인지에 대한 모든 측면은 데이터베이스를 유지하고, 많은 네트워크 참가자들이 그 데이터베이스의 개별 복사를 동기화하고 현재 데이터베이스 상태에 동의하도록 보장하는 핵심 기능에 중심을 두고 있습니다. 비트코인이 화폐의 형태나 지불 수단으로서 가치 있는 모든 속성은 데이터베이스로서의 기능에서 파생됩니다.
이 공간의 많은 사람들은 이 데이터베이스가 오로지 지불 수단이나 화폐의 형태로 사용되어야 한다고 생각하며, 저는 그 견해에 공감합니다. 저도 그것이 가장 중요한 사용 사례라고 생각하며, 그 특정 사용 사례를 가능한 한 많이 확장하기 위해 모든 노력을 기울여야 한다고 생각합니다. 그러나 비트코인을 객관적인 현실로 따지면 여전히 단순한 데이터베이스입니다. 데이터베이스의 규칙에 따라 유효하다고 여겨지는 항목을 작성하기 위해 사토시로 표시된 비용을 기꺼이 지불하는 사람들은 그렇게 할 수 있습니다. 데이터베이스에서 유효한 항목으로 간주되는 것을 변경하지 않는 한 그들을 막을 수 있는 방법은 없습니다. 이는 다른 모든 사람도 새로운 규칙 세트를 채택하도록 설득해야 함을 의미합니다.
사람들은 합의 규칙 내에서 데이터베이스에 원하는 것을 자유롭게 쓸 수 있으며, 그렇게 하기 위해 필요한 비용을 지불하는 한 가능합니다. 끝입니다. 사람들이 데이터베이스에 입력하는 많은 것들이 어리석은 것인가요? 네. 물론 그렇습니다. 인터넷은 곳곳에 있는 고립된 데이터베이스에 어리석은 것들로 가득 차 있습니다. 왜 그럴까요? 사람들이 데이터베이스에 어리석은 것을 넣기 위해 비용을 지불할 의향이 있기 때문입니다.
그것이 데이터베이스 사용자가 제공자와 운영자에게 비용을 지불하는 것이든, 운영자가 특정 항목을 입력하도록 허용하는 것이든, 사용자에게 비용을 전가하지 않고 운영의 일부로 허용하는 것이든 상관없습니다. 이러한 어리석은 것들은 어떤 방식으로든 비용이 지불되기 때문에 디지털 형태로 존재합니다.
비트코인은 그 점에서 다른 데이터베이스와 본질적으로 다르지 않습니다. 유일한 차이점은 허용되는 것과 허용되지 않는 것을 지시하는 단일 소유자나 게이트키퍼가 없다는 것입니다. 비트코인 데이터베이스의 복사본을 소유한 모든 사람은 원하는 것을 허용하거나 허용하지 않을 수 있습니다. 문제는 그들이 다른 모든 사람이 수용할 수 있는 것을 거부하기로 선택하면, 그들은 다른 사람들과 합의에서 벗어난다는 것입니다. 그들의 로컬 데이터베이스는 다른 모든 사람이 따르고 사용하는 글로벌 가상 데이터베이스와 더 이상 동기화되지 않습니다.
특정 데이터베이스 항목이 용납할 수 없다고 생각한다면, 주저하지 말고 로컬 복사가 새로운 항목을 검증하는 규칙을 변경하세요. 그러나 그것은 자신의 얼굴에 코를 자르는 것입니다. 결국 비트코인은 하나의 간단한 원칙에 따라 운영됩니다: 플레이하려면 비용을 지불하세요. 사람들이 수수료를 지불하면, 그들은 플레이할 수 있습니다. 그것이 작동하는 방식입니다.
결국, 각 개인이 자신의 데이터베이스에서 허용할 것과 허용하지 않을 것을 결정하는 것은 전적으로 그들의 몫이지만, 현재 진행 중인 모든 의미론적 및 철학적 논쟁을 뚫고 한 가지는 의심의 여지 없이 객관적으로 진실입니다: 비트코인은 데이터베이스입니다.