비트코인: P2P 전자화폐 시스템
기존 상품화폐를 디지털화해 사용하는 만큼 현재 사용되는 '전자현금'이 물리적·일반적으로 사용되는 것을 넘어설 수 없는 것이 현상이다. 특히 비트코인의 경우 발행기관 없이 '채굴'이라는 활동만으로 발행되며, 개인 간 거래를 위해 '블록체인'을 통해 거래를 증명하는 방식으로 화폐로 인정돼 일부 국가에서 비교적 활발하게 사용되지만, 이로 인해 여러 문제가 있다. 그것의 특징 따라서 본 연구는 비트코인 활성화 계획과 관련된 정책, 경영 및 기술적 문제에 대한 대체 계획을 제안하고자 한다.
인터넷 상거래는 전자결제를 처리하기 위해 신뢰할 수 있는 제3자 역할을 하는 금융기관에 거의 전적으로 의존하게 되었다. 이 시스템은 대부분의 트랜잭션에 대해 충분히 잘 작동하지만 여전히 신뢰 기반 모델의 고유한 약점으로 인해 어려움을 겪고 있습니다. 금융기관들이 분쟁을 중재하는 것을 피할 수 없기 때문에 완전히 되돌릴 수 없는 거래는 실제로 가능하지 않다. 조정비용은 거래비용을 증가시켜 최소 실거래규모를 제한하고 소규모 캐주얼거래의 가능성을 차단하며, 비가역적 서비스에 대한 비가역적 결제능력 상실에는 더 큰 비용이 발생한다. 역전 가능성이 제기되면서 신뢰의 필요성이 확산된다. 상인들은 그들의 고객들을 경계해야 하며, 그들이 필요로 하는 것보다 더 많은 정보를 얻기 위해 그들을 괴롭혀야 한다.
일정 비율의 사기는 피할 수 없는 것으로 받아들여진다. 이러한 비용과 지급 불확실성은 물리적 통화를 사용하여 직접 피할 수 있지만 신뢰할 수 있는 당사자 없이 통신 채널을 통해 지급을 할 수 있는 메커니즘은 존재하지 않는다. 필요한 것은 신뢰 대신 암호화 증명에 기반한 전자 결제 시스템으로, 신뢰할 수 있는 제3자가 필요 없이 기꺼이 두 당사자가 서로 직접 거래할 수 있도록 하는 것이다. 되돌리기 위해 계산적으로 비실용적인 거래는 판매자를 사기로부터 보호할 수 있으며, 구매자를 보호하기 위해 일상적인 에스크로 메커니즘을 쉽게 구현할 수 있다. 본 논문에서는 시간별 트랜잭션 순서에 대한 계산 증명을 생성하기 위해 피어투피어 분산 타임스탬프 서버를 사용하여 이중 지출 문제에 대한 솔루션을 제안한다. 이 시스템은 정직한 노드가 협력하는 공격자 노드 그룹보다 더 많은 CPU 전력을 일괄적으로 제어하는 한 안전합니다.
우리는 전자 주화를 디지털 서명 체인으로 정의한다. 각 소유자는 이전 거래의 해시 및 다음 소유자의 공개 키에 디지털 서명을 한 후 코인의 끝에 추가하여 코인을 다음 소유자에게 양도합니다. 수취인은 소유권을 확인하기 위해 서명을 확인할 수 있습니다. 물론 문제는 수취인이 주인 중 한 명이 동전을 이중으로 쓰지 않았다는 것을 확인할 수 없다는 것이다. 일반적인 해결책은 모든 거래에서 이중 지출을 확인하는 신뢰할 수 있는 중앙 당국, 즉 조폐국을 도입하는 것이다. 매 거래 후 코인을 조폐국에 반납해야 새 코인을 발행할 수 있으며, 조폐국에서 직접 발행한 코인에 한해 이중 지출이 되지 않는다.
이 해결책의 문제점은 전체 화폐 시스템의 운명이 조폐국을 운영하는 회사에 달려 있으며, 모든 거래는 은행처럼 조폐국을 통과해야 한다는 것이다. 이전 소유자가 이전에 어떤 거래에도 서명하지 않았다는 것을 수취인이 알 수 있는 방법이 필요합니다. 우리의 목적을 위해, 가장 빠른 거래는 중요한 것이므로, 우리는 나중에 이중 지출을 시도하는 것에 대해 신경 쓰지 않는다. 트랜잭션의 부재를 확인하는 유일한 방법은 모든 트랜잭션을 인식하는 것입니다. 조폐국 기반 모델에서 조폐국은 모든 거래를 알고 있었고 어느 것이 먼저 도착했는지를 결정했다. 신뢰할 수 있는 당사자 없이 이 작업을 수행하려면 거래가 공고되어야 하며 [1] 참여자가 받은 주문의 단일 이력에 대해 합의할 수 있는 시스템이 필요합니다. 수취인은 각 거래 시 노드 대다수가 최초 수신이라는 데 동의했다는 증거를 필요로 한다.
피어 투 피어(peer-to-peer) 기반으로 분산 타임스탬프 서버를 구현하기 위해서는 신문이나 유즈넷 게시물이 아닌 아담 백의 해시캐시와 유사한 작업 증명 시스템을 사용해야 할 것이다. 작업 증명에는 SHA-256과 같이 해시될 때 해시가 0비트로 시작되는 값을 스캔하는 것이 포함된다. 필요한 평균 작업은 필요한 0비트 수로 기하급수적이며 단일 해시를 실행하여 확인할 수 있다. 타임스탬프 네트워크의 경우, 블록의 해시에 필요한 0비트를 제공하는 값이 발견될 때까지 블록에서 1온스를 증가시켜 작업 증명을 구현한다. 일단 작업 증명서를 만족시키기 위해 CPU의 노력이 소모되면, 블록은 작업을 다시 하지 않고는 변경할 수 없다. 나중에 블록이 그 뒤에 체인으로 연결되기 때문에 블록을 변경하는 작업에는 그 뒤에 있는 모든 블록을 다시 실행하는 작업이 포함될 것이다. 작업 증명은 또한 다수결 의사 결정에서 대표성을 결정하는 문제를 해결한다. 만약 대다수가 단일 IP-주소-일표 기반이라면, 그것은 많은 IP를 할당할 수 있는 누구에 의해 전복될 수 있다.
작업 증명은 기본적으로 단일 CPU 1표입니다. 대다수의 결정은 가장 긴 체인으로 대표되며, 가장 큰 작업 증명 노력이 투자된다. 만약 CPU 파워의 대부분이 정직한 노드에 의해 제어된다면, 정직한 체인은 가장 빠르게 성장하고 경쟁하는 체인을 능가할 것이다. 과거 블록을 수정하려면 공격자는 블록과 그 이후의 모든 블록의 작업 증명서를 다시 수행한 다음 정직한 노드의 작업을 따라잡고 능가해야 한다. 후속 블록이 추가됨에 따라 느린 공격자가 따라잡을 확률이 기하급수적으로 감소한다는 것을 나중에 보여줄 것이다. 하드웨어 속도가 증가하고 시간이 지남에 따라 실행되는 노드에 대한 관심이 변화하는 것을 보완하기 위해 작업 증명 난이도는 시간당 평균 블록 수를 목표로 하는 이동 평균으로 결정된다. 너무 빨리 생성되면 난이도가 높아집니다.
네트워크를 실행하는 단계는 다음과 같습니다.
1) 새 트랜잭션은 모든 노드에 브로드캐스트됩니다.
2) 각 노드는 새 트랜잭션을 블록으로 수집합니다.
3) 각 노드는 블록에 대한 어려운 작업 증명서를 찾는 작업을 한다.
4) 노드가 작업 증명서를 찾으면 블록을 모든 노드에 브로드캐스트합니다.
5) 노드는 블록의 모든 트랜잭션이 유효하고 아직 사용되지 않은 경우에만 블록을 수락합니다.
6) 노드는 승인된 블록의 해시를 이전 해시로 사용하여 체인의 다음 블록을 생성하는 작업을 통해 블록에 대한 수용을 표현한다.
노드는 항상 가장 긴 체인을 올바른 체인으로 간주하며 체인을 확장하는 작업을 계속합니다. 두 노드가 다른 버전의 다음 블록을 동시에 브로드캐스트하는 경우 일부 노드가 먼저 하나 또는 다른 버전을 수신할 수 있습니다. 이 경우 처음 받은 브랜치는 작업하지만 다른 브랜치는 더 길어질 경우를 대비해 저장합니다. 다음 작업 증명이 발견되고 한 분기가 길어지면 연결이 끊어집니다. 다른 분기에서 작업하던 노드가 더 긴 분기로 전환됩니다. 3 이전 해시 Nonce Tx 차단... 이전 해시 Nonce Tx Tx 차단... 새로운 트랜잭션 브로드캐스트가 반드시 모든 노드에 도달할 필요는 없습니다. 그들이 많은 노드에 도달하는 한, 그들은 머지않아 블록에 들어갈 것이다. 또한 블록 브로드캐스트는 삭제된 메시지에 대해 허용됩니다. 노드가 블록을 수신하지 않으면 다음 블록을 수신하고 누락된 블록을 인식할 때 해당 블록을 요청합니다.
관례상, 블록의 첫 번째 거래는 블록의 생성자가 소유한 새로운 코인을 시작하는 특별 거래이다. 이것은 노드들이 네트워크를 지원할 수 있도록 동기를 부여하고, 코인을 발행할 중앙 기관이 없기 때문에 초기에 유통시킬 수 있는 방법을 제공한다. 일정한 양의 새로운 동전을 꾸준히 추가하는 것은 금 광부들이 금을 유통하기 위해 자원을 소비하는 것과 유사하다. 우리의 경우, 소비되는 것은 CPU 시간과 전력이다. 인센티브는 또한 거래 수수료로 자금을 조달할 수 있다. 거래의 출력값이 입력값보다 작으면, 그 차이는 거래를 포함하는 블록의 인센티브 가치에 가산되는 거래 수수료이다. 일단 정해진 개수의 동전이 유통되면, 인센티브는 전적으로 거래 수수료로 전환될 수 있고 인플레이션이 완전히 해소될 수 있다.
인센티브는 노드가 정직한 상태를 유지하도록 장려하는 데 도움이 될 수 있다. 만약 탐욕스러운 공격자가 모든 정직한 노드보다 더 많은 CPU 파워를 조립할 수 있다면, 그는 지불한 돈을 훔쳐서 사람들을 속이는 데 사용할 것인지 아니면 새로운 코인을 만드는 데 사용할 것인지를 선택해야 할 것이다. 그는 다른 모든 사람들을 합친 것보다 더 많은 새로운 동전으로 자신에게 유리한 규칙을 따르는 것이 자신의 재산 체계와 타당성을 훼손하는 것보다 더 이득이라는 것을 발견해야 한다.