비트코인 창시자인 사토시 나카모토의 백서 요약
비트코인 : P2P 전자 현금 시스템
사토시 나카모토
2008년 10월 31일
1. 소개
인터넷 상거래에서 전자 결제를 처리하는 제3자 역할을 하는 금융 기관은 대부분의 거래에서 잘 작동하지만, 신뢰 기반 모델의 내재적인 약점 때문에 완전히 되돌릴 수 없는 거래는 불가능하며, 중재 비용은 거래 비용을 증가시키고 최소 거래 규모를 제한한다. 이에 대한 대안으로, 전자 결제 시스템에서 암호화 증명을 기반으로 하는 P2P 분산 타임스탬프 서버를 사용하는 시스템을 제안하고 있다. 이 시스템은 정직한 노드가 협력하는 공격자 노드 그룹보다 더 많은 CPU 성능을 집단적으로 제어하는 한 안전하다.
2. 트랜잭션(Transactions)
이중 지불 문제를 해결하기 위해 블록체인 기술이 도입되었습니다. 블록체인은 탈중앙화된 데이터베이스로, 모든 거래는 블록체인에 기록되어 다른 사용자들이 확인할 수 있습니다. 거래가 발생하면, 해당 거래는 디지털 서명과 함께 블록체인에 기록되고, 이 기록은 블록체인 네트워크의 모든 노드에 전파됩니다. 모든 노드가 동일한 거래 내역을 가지고 있기 때문에, 이중 지불 문제가 발생하지 않습니다. 이에 따라, 블록체인은 신뢰할 수 있는 중앙 기관 없이도 안전하고 신속한 거래를 보장할 수 있습니다.
3. 타임스탬프 서버(Timestamp Server)
P2P 분산 타임스탬프 서버 시스템은 전자 화폐 거래를 처리하기 위한 타임스탬프를 기반으로합니다. 이 시스템에서는 각 거래가 타임스탬프 서버에서 타임스탬프를 받으며, 이 타임스탬프는 거래의 고유한 해시와 함께 기록됩니다. 이 해시는 거래의 무결성을 보장하기 위해 사용됩니다. 이 시스템은 타임스탬프 서버에 의존하지 않으며, 모든 노드가 거래의 유효성을 검증할 수 있습니다. 또한, 이 시스템은 모든 거래가 공개적으로 발표되어 참여자들이 동의할 수 있는 시스템을 제공합니다. 이에 따라, 이중 지불 문제를 해결하면서도 중앙 기관 없이 안전하고 신속한 거래를 보장할 수 있습니다.
4. 작업 증명(Proof-of-Work)
분산형 타임스탬프 서버를 P2P 방식으로 구현하는 방법으로는 작업 증명 시스템을 사용하는 것이 있습니다. 이 시스템은 SHA-256과 같은 해시 함수를 사용하여 블록의 해시를 계산하고, 해시가 0으로 시작하는 값을 찾을 때까지 블록의 논스를 증가시키는 방식으로 작업 증명을 수행합니다. 이 작업 증명은 CPU의 노력을 사용하며, 한 번 수행한 작업은 다시 사용할 수 없습니다. 이렇게 함으로써, 블록을 변경하려면 해당 블록과 그 이후의 모든 블록에 대한 작업 증명을 다시 수행해야 하므로 블록체인의 안전성이 보장됩니다. 또한, 작업 증명은 블록의 유효성을 검증하고, 가장 긴 체인을 결정하여 다수의 결정을 내리는 문제도 해결합니다. 이러한 이유 때문에 작업 증명은 많은 블록체인 기술에서 사용되는 중요한 구성 요소입니다.
5. 네트워크(Network)
블록체인에서 새로운 트랜잭션이 발생하면, 해당 트랜잭션은 네트워크의 모든 노드에 브로드캐스트됩니다. 각 노드는 이러한 트랜잭션을 수집하고, 이를 하나의 블록으로 묶어서 다른 노드와 공유합니다. 그리고 각 노드는 블록의 유효성을 검증하고, 어려운 작업 증명을 수행하여 새로운 블록을 생성합니다. 이 새로운 블록은 다시 네트워크의 모든 노드에 브로드캐스트 되며, 다른 노드는 이를 검증한 후 자신의 체인에 추가합니다. 이렇게 블록체인에서는 모든 노드가 동일한 체인을 유지하도록 되어 있으며, 가장 긴 체인이 유효한 체인으로 간주됩니다.
6. 인센티브(Incentive)
블록체인에서는 블록의 첫 번째 트랜잭션이 새로운 코인을 생성하는 트랜잭션으로 사용되며, 이를 코인베이스(Coinbase) 트랜잭션이라고 합니다. 이를 통해 블록 생성자는 새로운 코인을 얻게 되며, 이는 블록체인에서 인센티브를 제공하기 위한 방법 중 하나입니다. 블록체인에서는 중앙 기관이 없기 때문에 초기에 코인을 발행할 수 있는 방법을 제공해야 하며, 이를 위해 블록 생성자에게 새로운 코인을 부여하는 것이 일반적입니다. 또한, 거래 수수료도 인센티브를 제공하는 방법 중 하나입니다. 거래 수수료는 트랜잭션의 출력 값이 입력 값보다 작을 경우 발생하며, 이 수수료는 트랜잭션이 포함된 블록의 인센티브 값에 추가됩니다. 이렇게 함으로써 블록체인에서는 정직성을 유지하도록 노드들을 장려하고, 탐욕스러운 공격자가 시스템을 훼손하는 것보다 규칙을 따르는 것이 더 유리하다는 것을 보여줍니다.
7. 디스크 공간 회수(Reclaiming Disk Space)
코인의 최신 트랜잭션이 충분한 블록 아래에 묻히면 그 전에 사용된 트랜잭션은 디스크 공간을 절약하기 위해 폐기될 수 있습니다. 블록의 해시를 깨지 않고 이를 용이하게 하기 위해 트랜잭션은 머클 트리에서 해시됩니다. 머클 트리는 트랜잭션을 리틀 엔디언 순서로 정렬한 다음, 이웃한 두 개의 트랜잭션을 합쳐서 해시합니다. 이 과정을 계속 반복하면 머클 트리의 루트에는 모든 트랜잭션의 결합된 해시가 저장됩니다. 블록의 해시에는 머클 트리의 루트만 포함됩니다. 이렇게 함으로써 블록의 해시를 깨지 않으면서도 블록의 트랜잭션을 쉽게 확인할 수 있습니다. 내부 해시는 저장할 필요가 없으며, 오래된 블록은 트리의 가지를 잘라내어 압축할 수 있습니다. 블록 헤더는 약 80바이트이며, 저장 공간은 문제가 되지 않습니다.
8. 간소화된 결제 확인(Simplified Payment Verification)
사용자는 가장 긴 작업 증명 체인의 블록 헤더 사본만 보관하면 되며, 가장 긴 체인이 있다고 확신할 때까지 네트워크 노드를 쿼리 하여 트랜잭션과 타임스탬프가 찍힌 블록을 연결하는 머클 브랜치를 얻을 수 있습니다. 이를 통해 정직한 노드가 네트워크를 제어하는 한 검증은 신뢰할 수 있습니다. 하지만 공격자가 네트워크를 압도할 경우 이러한 검증 방법은 더 취약해집니다. 따라서 네트워크 노드가 유효하지 않은 블록을 감지하면 경고를 수락하여 사용자의 소프트웨어가 전체 블록과 경고된 트랜잭션을 다운로드하여 불일치를 확인하도록 유도하는 것이 한 가지 전략입니다. 결제를 자주 받는 비즈니스는 이를 방지하기 위해 자체 노드를 운영하기를 원할 것입니다.
9. 가치 결합 및 분할(Combining and Splitting Value)
트랜잭션에는 여러 개의 입력과 출력이 포함됩니다. 이전 거래에서 더 큰 금액의 단일 입력 또는 더 작은 금액을 결합한 여러 입력이 있으며, 최대 두 개의 출력(하나는 결제용, 다른 하나는 거스름돈을 송금인에게 반환하는 출력)이 있습니다. 이를 통해 코인을 분할하고 결합할 수 있습니다. 팬아웃이 많아지더라도 트랜잭션 기록의 완전한 독립형 사본을 추출할 필요가 없으므로 문제가 되지 않습니다
10. 개인정보 보호(Privacy)
전통적인 뱅킹 모델은 정보에 대한 액세스를 관련 당사자와 신뢰할 수 있는 제3자로 제한하여 개인정보 보호 수준을 달성합니다. 그러나 블록체인에서는 모든 거래가 공개적으로 발표되므로 이 방법을 사용할 수 없습니다. 대신, 공개 키를 사용하여 정보 흐름을 차단하여 프라이버시를 유지할 수 있습니다. 누구와 연결되는 정보는 알 수 없지만, 대중은 누군가가 다른 사람에게 금액을 송금하는 것을 볼 수 있습니다. 트랜잭션에 대한 새로운 키 쌍을 사용하고 입력이 동일한 소유자에 의해 소유되었다는 사실이 드러날 수 있는 경우가 있으므로, 추가 방화벽이 필요합니다.
11. 계산(Calculations)
공격자가 정직한 체인보다 더 빠른 대체 체인을 생성하려는 시나리오를 고려할 때, 공격자는 노드가 유효하지 않은 트랜잭션을 지불로 수락하지 않기 때문에 시스템을 임의적으로 변경할 수 없습니다. 따라서 공격자는 자신의 트랜잭션 중 하나만 변경하여 최근에 사용한 돈을 되찾을 수 있습니다. 정직한 체인과 공격자 체인 사이의 경쟁은 이항 랜덤 워크(Binomial Random Walk)로 특징지을 수 있습니다. 공격자가 주어진 열세에서 따라잡을 확률은 기하급수적으로 떨어집니다. 확률이 불리한 상황에서 초반에 운 좋게 앞으로 돌진하지 않으면 뒤처질수록 확률은 점점 작아집니다.
12. 결론
불완전한 디지털 거래 시스템의 문제점을 해결하기 위해, 작업 증명을 사용하여 공격자가 변경할 수 없는 거래의 공개 내역을 기록하는 P2P 네트워크를 제안합니다. 이 네트워크는 구조화되지 않고 견고하며, 노드는 자신의 CPU 파워로 투표하고, 유효한 블록에 대해서는 확장 작업을 통해 수락 의사를 표현하고, 유효하지 않은 블록에 대해서는 작업을 거부함으로써 거부 의사를 표현합니다. 이 합의 메커니즘을 통해 필요한 모든 규칙과 인센티브를 시행할 수 있습니다.
세계 최초의 암호화폐인 비트코인은 2009년에 온라인에 등장한 이후 통화와 돈에 대한 개념을 혁신적으로 바꿔놓았습니다. 정부나 중앙은행의 지원을 받지 않는 탈중앙화 방식으로서 완전히 전자화된 비트코인은 첨단 암호화 시스템을 기반으로 하는 암호화폐입니다.
비트코인의 창시자 사토시 나카모토의 정체성은 그가 만든 화폐와 마찬가지로 온라인에서만 존재하는 가상의 인물입니다. 나카모토의 진짜 정체는 결코 알 수 없습니다. 따라서 여기에 소개된 글은 비트코인의 생성, 작동 방식, 이론적 근거와 관련하여 사토시 나카모토로부터 들을 수 있는 전부일 것입니다.
'Blockchain > 자료 및 정보' 카테고리의 다른 글
MEXC 거래소 소개 (0) | 2023.05.07 |
---|---|
세계 첫 암호화폐 법안-미카(MiCA) (0) | 2023.04.23 |
거래소 코인 입출금 시 주의사항 (0) | 2023.04.03 |
파이(Pi) 코인 비밀번호 찾는 방법 (0) | 2022.10.24 |
루나클래식(LUNC) 테라 레블스(terrarebels) 로드맵 (0) | 2022.10.10 |
댓글