비트코인: 같등한 참가자 간의 전자 현금 시스템

사토시 나카모토

2008년 10월 31일

초록

순수한 동등-대동등 버전의 전자 현금은 금융 기관을 거치지 않고 한 당사자에서 다른 당사자로 직접 온라인 결제를 가능케 할 것이다. 디지털 서명은 해결책의 일부를 제공하지만, 한번 이상의 소비를 방지하기 위해 신뢰할 수 있는 제3자가 여전히 필요하다면 주요 이점은 손실된다. 우리는 피어 투 피어 네트워크를 사용하여 두 번 소비 문제에 대한 해결책을 제안한다. 네트워크는 거래를 타임 스탬프로 해싱하여 계속되는 해시 기반 작업 증명의 연쇄로 만들어 기록을 형성한다. 이 기록은 작업 증명을 재수행하지 않고 변경할 수 없다.

1. 소개

인터넷 상의 상업은 거의 모두 전자 결제 처리를 위한 신뢰할 수 있는 제3자인 금융 기관에 의존하게 되었다. 대부분의 거래에 대해 시스템은 충분히 작동하지만, 그러나 신뢰 기반 모델의 내재적 약점으로 인해 여전히 결함이 남아 있다.

전적으로 취소할 수 없는 거래는 실제로 불가능하지만, 금융 기관은 분쟁을 중재할 수 없다. 중재 비용은 거래 비용을 높이고, 최소한의 실질적 거래 규모를 제한하며, 소규모 비정기적 거래의 가능성을 차단한다. 비정기적 거래를 위한 비회전 가능한 지불 수단을 만들 수 있는 방법이 없을 뿐만 아니라, 비회전 가능한 서비스를 위한 비회전 가능한 지불 방법의 손실 비용도 있다.

역 회전의 가능성이 있으므로 신뢰가 필요하다. 상인은 고객을 조심스럽게 다루어야 하며, 그렇지 않으면 다른 대안으로 없을 것이다. 사기의 일정 비율은 피할 수 없다고 받아들여진다. 이러한 비용 및 지불 불확실성은 신뢰할 수 있는 제3자 없이 통신 채널을 통한 지불을 가능하게 하는 메커니즘이 없다.

필요한 것은 신뢰에 대한 알고리즘적 증명을 기반으로 한 전자 지불 시스템이다. 이것은 어떠한 두 가지의 당사자도 필요없이 직접적으로 상호 작용할 수 있도록 한다. 판매자들을 사기로부터 보호할 수 있는 회전 기능이 없는 거래는 판매자를 보호할 수 있다. 이러한 시스템은 두 번 소비 문제를 해결하기 위해 피어 투 피어 분산 타임 스탬프 서버를 사용하여 거래의 연대적 순서의 컴퓨터 증명을 생성하는 것을 제안한다. 시스템은 어느 정도 충직한 노드들이 협력하는 어떠한 공격 노드도 컴퓨터 처리 능력의 가장 큰 집단이 발생한 곳에서 이를 모두 능가할 때까지 안전하다.

2. 거래

우리는 전자 코인을 디지털 서명의 연쇄로 정의한다. 각 소유자는 앞선 거래의 해시를 디지털 서명하여 다음 소유자의 공개 키를 추가하여 코인 끝에 추가한다. 수취인은 서명을 확인하여 소유권 연쇄를 확인할 수 있다.

문제는 수취인이 소유자 중 한 명이 동전의 이중 소비를 하지 않았는지 확인할 수 없다는 것이다. 대부분의 경우, 모든 거래에 대해 이중 소비를 확인하는 신뢰할 수 있는 중심 관서 또는 화폐가 소개된다. 각 거래 후, 동전은 새 동전을 발행할 수 있도록 화폐에 다시 반환되어야 하며, 중심 통제에서 직접적으로 발행된 동전만 이중 소비되지 않도록 신뢰할 수 있다. 그러나 이 해결책의 문제점은 전체 통화 시스템의 운명이 민트를 운영하는 회사에 달려 있으며, 모든 거래가 은행과 마찬가지로 그들을 통과해야 한다.

수취인이 이전 소유자가 이전 거래에 서명하지 않았음을 확인할 수 있는 방법이 필요하다. 우리의 경우에는, 최초 거래가 중요하므로 나중에 이중 소비 시도에 대해 신경을 쓸 필요가 없다. 거래의 부재를 확인할 유일한 방법은 모든 거래에 대해 인식해야 한다. 민트 기반 모델에서, 민트는 모든 거래를 인식하고, 어느 것이 먼저 도착했는지를 결정했다. 믿을 수 있는 제3자 없이 이를 달성하기 위해서, 거래는 공개로 발표되어야 하고 참가자들이 받은 순서의 단일 선리력에 동의할 수 있는 시스템이 필요하다. 수취인은 날짜의 나머지적 구조 증명으로 거래가 먼저 도착헸음을 증명받아야 한다.

3. 타임스탬프 서버

우리가 제안하는 해결책은 타임스탬프 서버로 시작한다. 타임스탬프 서버는 타임스탬프가 찍힐 항목 블록의 해시를 가져와 해시를 널리 게시하며, 신문이나 우시넷 게시물과 같은 곳에서 게시한다. 타임스탬프는 데이터가 그 해시에 들어간 시간에 존재했음을 증명한다. 각 타임스탬프에는 직전 타임스탬프가 해시에 포함되어 체인을 형성한다. 추가적인 타임스탬프마다 이전 것들을 강화한다.

4. 작업 증명

피어 투 피어 방식의 분산 타임스탬프 서버를 구현하기 위해, 우리는 신문이나 우시넷 게시물과 같은것이 아닌 Adam Back의 Hashcash와 유사한 작업 증명 시스템을 사용해야 한다. 작업 증명은 해시 함수를 이중으로 스캔함으로써 구현된다. 예를 들어, SHA-256와 같은 해시 함수를 사용하여 해시가 제로 비트의 수로 시작되도록 값에 특정 값을 찾는 것이다.

우리의 타임스탬프 네트워크에서는, 블록에서 넌스를 증가시켜 해당 블록의 해시가 필요한 제로 비트들로 시작되도록 값을 확인함으로써 작업 증명을 구현한다. CPU의 작업이 그것을 작업 증명으로 충족시킬 때, 그 블록은 작업을 재수행하지 않고는 변경할 수 없다. 나중에 블록이 이어지면, 블록을 변경하기 위한 작업은 그 전후의 모든 블록을 재수행하는 것을 포함할 것이다.

작업 증명은 다수결의 결정대인 대표 결정에 대한 문제를 해결한다. 만약 다수가 하나의 IP 주소-하나의 투표에 의존한다면, 많은 IP를 할당할 수 있는 사람에 의해 왜곡될 수 있다. 작업 증명은 실제로 CPU당 하나의 표가 되며, 결정은 가장 긴 체인에 의해 표시되며, 이 체인에 가장 많은 작업 증명 노력이 투자된다. 만약 CPU의 주요 부분이 협력을 하지 않는 노드들에 의해 제어된다면, 솔직한 노드는 가장 빠르게 자라나서 경쟁하는 체인을 앞지를 것이다. 과도한 네트워크 스스로도 최소한의 구조를 필요로 한다. 메시지는 최선을 다해 송출되며, 노드들은 자유롭게 네트워크에서 떠나거나 다시 참여할 수 있으며, 긴 작업 증명 체인을 받아들이면서 자기가 떠난 동안 무슨 일이 있었는지에 대한 증명으로 받아들일 수 있다.

5. 네트워크

네트워크를 실행하기 위한 단계는 다음과 같다:

  1. 새 거래를 모든 노드에 전송한다.
  2. 각 노드는 새로운 거래를 블록에 수집한다.
  3. 각 노드는 블록의 어려운 작업 증명을 찾는다.
  4. 노드가 작업 증명을 찾으면 이를 모든 노드에 전송한다.
  5. 노드는 블록에 있는 모든 거래가 유효하고 이미 사용되지 않았다면 블록을 수용한다.
  6. 노드는 다음 블록을 생성함으로써 체인을 확장시키는 것으로 블록의 해시를 이전 해시로 사용한다.

노드들은 항상 가장 긴 체인을 올바른 것으로 간주하고 그것을 계속 확장할 것이다. 만약 두 노드가 동시에 다른 버전의 다음 블록을 발송하면, 일부 노드는 한 가지 또는 다른 것을 먼저 받을 수 있다. 이 경우에는, 그들이 받은 첫 번째 것에 대해 작업을 계속하지만, 나중에 다른 가지가 더 길어질 경우에 방어하여 저장할 것이다. 그 묶음은 다음 작업 증명이 발견되어 하나의 가지가 길어지고, 다른 가지에 작업하던 노드들이 그 긴 가지로 전환될 때까지 결영된다.

새로운 거래 방송은 모든 노드에 도달해야 할 필요는 없다. 많은 노드에 도달하면 금방 블록에 들어갈 것이다. 블록 방송도 놓친 메시지에 대하여 관대하다. 만약 노드가 블록을 받지 않는다면, 블록이 다음 블록을 받았을 때 미심쩍을 보이며 그것을 요청할 것이다.

6. 인센티브

꽃송이문장, 하나의 블록에 대한 첫 번째 거래는 블록 생성자가 소유한 새로운 동전을 시작하는 특수 거래이다. 이것은 노드가 네트워크를 지원하기 위한 동기를 부여하며, 돌출된 신화를 금으로 환전하여 순환에 도움을 주는 방법을 제공한다. 결정적인 양의 새 동전이 계속해서 순환되는 것은 금광원이 금을 추가하는 데 사용하는 자원을 소비하는 것과 유사하다. 우리의 경우에는, 그것은 중앙 실행명령이 없기 때문에, 증가하는 거래 수수료로도 인센티브를 기부할 수 있다. 만일 거래의 출력 값이 이니 입출력 값보다 작다면 차액은 거래를 포함하는 블록의 인센티브 값에 추가될 수 있다. 결정된 동전이 순환에 접어들어도, 인센티브는 완전히 거래 중심 수수료로 전환이 완전한 금화로 전환이 될 수 있었던지라도.

인센티브는 노드가 정직하게 유지하는 데 도움이 될 수 있다. 만약 탐욕스러운 공격자가 동일한 소유자에 의해 모든 정직한 노드보다 더 많은 CPU 파워가 모이게 되면, 그는 자신의 지불을 돌려받아 사람들을 속이기 위해 나가는 곳을 선택하거나 새 동전을 생성하는 데 사용하는 것이 좀 더 유

사토시 나카모토

2008년 10월 31일

초록

순수한 동등-대동등 버전의 전자 현금은 금융 기관을 거치지 않고 한 당사자에서 다른 당사자로 직접 온라인 결제를 가능케 할 것이다. 디지털 서명은 해결책의 일부를 제공하지만, 한번 이상의 소비를 방지하기 위해 신뢰할 수 있는 제3자가 여전히 필요하다면 주요 이점은 손실된다. 우리는 피어 투 피어 네트워크를 사용하여 두 번 소비 문제에 대한 해결책을 제안한다. 네트워크는 거래를 타임 스탬프로 해싱하여 계속되는 해시 기반 작업 증명의 연쇄로 만들어 기록을 형성한다. 이 기록은 작업 증명을 재수행하지 않고 변경할 수 없다.

1. 소개

인터넷 상의 상업은 거의 모두 전자 결제 처리를 위한 신뢰할 수 있는 제3자인 금융 기관에 의존하게 되었다. 대부분의 거래에 대해 시스템은 충분히 작동하지만, 그러나 신뢰 기반 모델의 내재적 약점으로 인해 여전히 결함이 남아 있다.

전적으로 취소할 수 없는 거래는 실제로 불가능하지만, 금융 기관은 분쟁을 중재할 수 없다. 중재 비용은 거래 비용을 높이고, 최소한의 실질적 거래 규모를 제한하며, 소규모 비정기적 거래의 가능성을 차단한다. 비정기적 거래를 위한 비회전 가능한 지불 수단을 만들 수 있는 방법이 없을 뿐만 아니라, 비회전 가능한 서비스를 위한 비회전 가능한 지불 방법의 손실 비용도 있다.

역 회전의 가능성이 있으므로 신뢰가 필요하다. 상인은 고객을 조심스럽게 다루어야 하며, 그렇지 않으면 다른 대안으로 없을 것이다. 사기의 일정 비율은 피할 수 없다고 받아들여진다. 이러한 비용 및 지불 불확실성은 신뢰할 수 있는 제3자 없이 통신 채널을 통한 지불을 가능하게 하는 메커니즘이 없다.

필요한 것은 신뢰에 대한 알고리즘적 증명을 기반으로 한 전자 지불 시스템이다. 이것은 어떠한 두 가지의 당사자도 필요없이 직접적으로 상호 작용할 수 있도록 한다. 판매자들을 사기로부터 보호할 수 있는 회전 기능이 없는 거래는 판매자를 보호할 수 있다. 이러한 시스템은 두 번 소비 문제를 해결하기 위해 피어 투 피어 분산 타임 스탬프 서버를 사용하여 거래의 연대적 순서의 컴퓨터 증명을 생성하는 것을 제안한다. 시스템은 어느 정도 충직한 노드들이 협력하는 어떠한 공격 노드도 컴퓨터 처리 능력의 가장 큰 집단이 발생한 곳에서 이를 모두 능가할 때까지 안전하다.

2. 거래

우리는 전자 코인을 디지털 서명의 연쇄로 정의한다. 각 소유자는 앞선 거래의 해시를 디지털 서명하여 다음 소유자의 공개 키를 추가하여 코인 끝에 추가한다. 수취인은 서명을 확인하여 소유권 연쇄를 확인할 수 있다.

문제는 수취인이 소유자 중 한 명이 동전의 이중 소비를 하지 않았는지 확인할 수 없다는 것이다. 대부분의 경우, 모든 거래에 대해 이중 소비를 확인하는 신뢰할 수 있는 중심 관서 또는 화폐가 소개된다. 각 거래 후, 동전은 새 동전을 발행할 수 있도록 화폐에 다시 반환되어야 하며, 중심 통제에서 직접적으로 발행된 동전만 이중 소비되지 않도록 신뢰할 수 있다. 그러나 이 해결책의 문제점은 전체 통화 시스템의 운명이 민트를 운영하는 회사에 달려 있으며, 모든 거래가 은행과 마찬가지로 그들을 통과해야 한다.

수취인이 이전 소유자가 이전 거래에 서명하지 않았음을 확인할 수 있는 방법이 필요하다. 우리의 경우에는, 최초 거래가 중요하므로 나중에 이중 소비 시도에 대해 신경을 쓸 필요가 없다. 거래의 부재를 확인할 유일한 방법은 모든 거래에 대해 인식해야 한다. 민트 기반 모델에서, 민트는 모든 거래를 인식하고, 어느 것이 먼저 도착했는지를 결정했다. 믿을 수 있는 제3자 없이 이를 달성하기 위해서, 거래는 공개로 발표되어야 하고 참가자들이 받은 순서의 단일 선리력에 동의할 수 있는 시스템이 필요하다. 수취인은 날짜의 나머지적 구조 증명으로 거래가 먼저 도착헸음을 증명받아야 한다.

3. 타임스탬프 서버

우리가 제안하는 해결책은 타임스탬프 서버로 시작한다. 타임스탬프 서버는 타임스탬프가 찍힐 항목 블록의 해시를 가져와 해시를 널리 게시하며, 신문이나 우시넷 게시물과 같은 곳에서 게시한다. 타임스탬프는 데이터가 그 해시에 들어간 시간에 존재했음을 증명한다. 각 타임스탬프에는 직전 타임스탬프가 해시에 포함되어 체인을 형성한다. 추가적인 타임스탬프마다 이전 것들을 강화한다.

4. 작업 증명

피어 투 피어 방식의 분산 타임스탬프 서버를 구현하기 위해, 우리는 신문이나 우시넷 게시물과 같은것이 아닌 Adam Back의 Hashcash와 유사한 작업 증명 시스템을 사용해야 한다. 작업 증명은 해시 함수를 이중으로 스캔함으로써 구현된다. 예를 들어, SHA-256와 같은 해시 함수를 사용하여 해시가 제로 비트의 수로 시작되도록 값에 특정 값을 찾는 것이다.

우리의 타임스탬프 네트워크에서는, 블록에서 넌스를 증가시켜 해당 블록의 해시가 필요한 제로 비트들로 시작되도록 값을 확인함으로써 작업 증명을 구현한다. CPU의 작업이 그것을 작업 증명으로 충족시킬 때, 그 블록은 작업을 재수행하지 않고는 변경할 수 없다. 나중에 블록이 이어지면, 블록을 변경하기 위한 작업은 그 전후의 모든 블록을 재수행하는 것을 포함할 것이다.

작업 증명은 다수결의 결정대인 대표 결정에 대한 문제를 해결한다. 만약 다수가 하나의 IP 주소-하나의 투표에 의존한다면, 많은 IP를 할당할 수 있는 사람에 의해 왜곡될 수 있다. 작업 증명은 실제로 CPU당 하나의 표가 되며, 결정은 가장 긴 체인에 의해 표시되며, 이 체인에 가장 많은 작업 증명 노력이 투자된다. 만약 CPU의 주요 부분이 협력을 하지 않는 노드들에 의해 제어된다면, 솔직한 노드는 가장 빠르게 자라나서 경쟁하는 체인을 앞지를 것이다. 과도한 네트워크 스스로도 최소한의 구조를 필요로 한다. 메시지는 최선을 다해 송출되며, 노드들은 자유롭게 네트워크에서 떠나거나 다시 참여할 수 있으며, 긴 작업 증명 체인을 받아들이면서 자기가 떠난 동안 무슨 일이 있었는지에 대한 증명으로 받아들일 수 있다.

5. 네트워크

네트워크를 실행하기 위한 단계는 다음과 같다:

  1. 새 거래를 모든 노드에 전송한다.
  2. 각 노드는 새로운 거래를 블록에 수집한다.
  3. 각 노드는 블록의 어려운 작업 증명을 찾는다.
  4. 노드가 작업 증명을 찾으면 이를 모든 노드에 전송한다.
  5. 노드는 블록에 있는 모든 거래가 유효하고 이미 사용되지 않았다면 블록을 수용한다.
  6. 노드는 다음 블록을 생성함으로써 체인을 확장시키는 것으로 블록의 해시를 이전 해시로 사용한다.

노드들은 항상 가장 긴 체인을 올바른 것으로 간주하고 그것을 계속 확장할 것이다. 만약 두 노드가 동시에 다른 버전의 다음 블록을 발송하면, 일부 노드는 한 가지 또는 다른 것을 먼저 받을 수 있다. 이 경우에는, 그들이 받은 첫 번째 것에 대해 작업을 계속하지만, 나중에 다른 가지가 더 길어질 경우에 방어하여 저장할 것이다. 그 묶음은 다음 작업 증명이 발견되어 하나의 가지가 길어지고, 다른 가지에 작업하던 노드들이 그 긴 가지로 전환될 때까지 결영된다.

새로운 거래 방송은 모든 노드에 도달해야 할 필요는 없다. 많은 노드에 도달하면 금방 블록에 들어갈 것이다. 블록 방송도 놓친 메시지에 대하여 관대하다. 만약 노드가 블록을 받지 않는다면, 블록이 다음 블록을 받았을 때 미심쩍을 보이며 그것을 요청할 것이다.

6. 인센티브

꽃송이문장, 하나의 블록에 대한 첫 번째 거래는 블록 생성자가 소유한 새로운 동전을 시작하는 특수 거래이다. 이것은 노드가 네트워크를 지원하기 위한 동기를 부여하며, 돌출된 신화를 금으로 환전하여 순환에 도움을 주는 방법을 제공한다. 결정적인 양의 새 동전이 계속해서 순환되는 것은 금광원이 금을 추가하는 데 사용하는 자원을 소비하는 것과 유사하다. 우리의 경우에는, 그것은 중앙 실행명령이 없기 때문에, 증가하는 거래 수수료로도 인센티브를 기부할 수 있다. 만일 거래의 출력 값이 이니 입출력 값보다 작다면 차액은 거래를 포함하는 블록의 인센티브 값에 추가될 수 있다. 결정된 동전이 순환에 접어들어도, 인센티브는 완전히 거래 중심 수수료로 전환이 완전한 금화로 전환이 될 수 있었던지라도.

인센티브는 노드가 정직하게 유지하는 데 도움이 될 수 있다. 만약 탐욕스러운 공격자가 동일한 소유자에 의해 모든 정직한 노드보다 더 많은 CPU 파워가 모이게 되면, 그는 자신의 지불을 돌려받아 사람들을 속이기 위해 나가는 곳을 선택하거나 새 동전을 생성하는 데 사용하는 것이 좀 더 유

https://nakamotoinstitute.or...
Show original content

2 users upvote it!

0 answers