[백서 스터디] 1.1 비트코인 백서 초록 요약.

in #kr6 years ago (edited)

Bitcoin: A Peer-to-Peer Electronic Cash System

Satoshi Nakamoto

Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.

출처 : www.bitcoin.org

비트코인 백서의 가장 첫단락에 있는 요약본입니다.
블록체인을 이해하기 위한 첫단계는 비트코인을 이해하는것이고, 그 이해는 백서를 기본으로 이해하는것이 가장 좋습니다.
번역자마다 조금 다르게 이해하고 번역할 수도 있고, 오역도 있을 수 있습니다.
그리고 기술적인 내용이 포함되므로 정확히 전달하기도 어려운 내용들이 있습니다.
저는 번역보다는, 이해할 수 있도록 풀어서 설명하려고 합니다. 정확한 뜻은 반드시 원문을 보셔야 합니다.

[A] 주요 쟁점

  1. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.

P2P 전자화폐 시스템은 금융기관 없이 사용자간 직접적인 온라인 결재 및 전송을 가능하게 한다.

  • P2P(Peer-to-peer) : 같은 네트워크 하에서 동등한 계층 노드(peer nodes)들이 서로 서버와 클라이언트 역할을 함. (ex) 웹하드 파일 공유시스템 토렌트

p2p.PNG

  • 노드(Node) : P2P 네트워크에서 각 개체들. 사람, 휴대폰, PC, 태블렛 등이 모두 노드가 될 수 있다.
  1. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending.

디지털 서명이 일정부분 해결하지만, 이중지불 문제를 해결하기 위해서 신뢰할 만한 제3자가 개입되는건 많은 이점을 잃어버리는 결과를 초래한다.

  • 디지털 서명(Digital signature) : 네트워크에서 송신자의 신원을 증명하는 방법으로, 송신자가 자신의 비밀키로 암호화한 메시지를 수신자가 송신자의 공용 키로 해독하는 과정 (ex) 공인인증서에 디지털서명이 사용됨.
  1. We propose a solution to the double-spending problem using a peer-to-peer network.

우리는 이중지불 문제를 해결하기 위해서 P2P 네트워크 방식을 제안한다.

  • 이중지불(double-spending) : 단일 화폐 단위가 두번 지불되어 발생하는 문제.

이중지불.PNG

예) A가 통장잔고에 10,000원이 있는데, 이 10,000원을 동시에 B,C에게 10,000원씩 보내려고 시도하면서 발생하는 문제. (중앙화방식에서는 순차적으로 처리하므로 문제가 없으나, 네트워크에서는 발생할 수 있는 문제)

[B] 이중지불 문제 해결방안

The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work.

계속 진행되고 있는 암호화(hash-based) 작업증명[POW] 체인에 네트워크 타임스탬프 및 거래를 암호화(by hashing)방법으로 기록한다.

이렇게 진행하게 될 경우, 작업증명[POW]을 되풀이 하지 않는 이상, 기록된 데이터는 변경되지 않는다.

  • 해쉬[hash]

해시 함수(hash function)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다.

해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다. 그 용도 중 하나는 해시 테이블이라는 자료구조에 사용되며, 매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어에 널리 사용된다. 해시 함수는 큰 파일에서 중복되는 레코드를 찾을 수 있기 때문에 데이터베이스 검색이나 테이블 검색의 속도를 가속할 수 있다. 예를 들어서, DNA sequence에서 유사한 패턴을 찾는데 사용될 수도 있다.

또한 암호학에서도 사용될 수 있다.

암호용 해시 함수는 매핑된 해싱 값만을 알아가지고는 원래 입력 값을 알아내기 힘들다는 사실에 의해 사용될 수 있다. 또한 전송된 데이터의 무결성을 확인해주는 데 사용되기도 하는데, 메시지가 누구에게서 온 것인지 입증해주는 HMAC를 구성하는 블록으로 사용된다. 해시 함수는 결정론적으로 작동해야 하며, 따라서 두 해시 값이 다르다면 그 해시값에 대한 원래 데이터도 달라야 한다. (역은 성립하지 않는다) 해시 함수의 질은 입력 영역에서의 해시 충돌 확률로 결정되는데, 해시 충돌의 확률이 높을수록 서로 다른 데이터를 구별하기 어려워지고 검색하는 비용이 증가하게 된다.

해쉬함수.PNG

<해쉬함수 충돌>

해쉬함수중에는 암호학적 해쉬함수(Cryptographic Hash Function)와 비암호학적 해쉬함수로 구분되곤 한다.

암호학적 해쉬함수의 종류로는 MD5, SHA계열 해쉬함수가 있으며 비암호학적 해쉬함수로는 CRC32등이 있다.

암호학적 해쉬함수는 역상(pre-image), 제2역상(2nd preimage), 충돌쌍(collision)에 대하여 안전성을 가져야 하며 인증에 이용된다 . 암호학적 해쉬함수는 임의의 길이를 입력 받기는 하지만 MD Strength Padding할 때 길이정보가 입력되므로 최대 길이에 대한 제한이 있다. 예를 들어 패딩시 하위 8비트에 길이정보가 입력 되는 경우에는 해쉬가능한 최대 길이는 0xFF가 되어 255바이트가 된다.(실제 길이정보는 패딩방식에 따라 다를 수 있다)

특징

해시 함수의 가장 기본적인 성질은 두 해시 값이 다르다면 원래의 데이터도 다르다는 것이다.

이 특징은 해시 함수가 결정적이기 때문이다. 반대로 해시 함수는 단사 함수가 아니다. 같은 해시 값을 갖더라도 원래의 입력값이 같다는 것을 시사하지만 보장해주지는 않는다. 원래 입력의 한 비트만 바뀌더라도 해시 함수의 성질로 인해 해시 값은 크게 달라진다.

출처 : 위키피디아(https://ko.wikipedia.org)

  • 작업증명[POW,Proof of work] : 신뢰에 대한 증명을 위하여 요청자로부터 일정수준의 작업을 요구되고, 요청한 작업을 완수하면 신뢰가 되었다고 증명됨, 비트코인의 경우 작업증명에 대한 프로세스를 해쉬함수 방법으로 채택하고 있음.
  • 네트워크 타임스탬프[Network timestamps] : 분산시스템에서 사용되는 논리적인 시간 기록관계

타임스탬프.PNG

*해쉬체인은 재귀적 함수임. 재귀적함수란? 돌고도는 함수?..

The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power.

가장 긴 체인은 각 사건 순서를 입증해 주기도 하며, 가장 큰 CPU power(연산능력)을 보여주기도 한다.

*CPU 연산능력(CPU Power) : 해쉬 암호를 풀어내기 위해서는 CPU의 성능이 요구된다. 많은 해쉬 암호를 성공적으로 푼 체인들은 CPU Power를 입증한것이 되므로 해당 체인을 신뢰할 수 있다.

As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers.

노드들에 의해서 다수의 CPU power(연산능력) 네트워크를 공격하는데 협조하지 않는한, 가장 긴 체인을 만들어서 공격자를 능가하게 될 것이다.

The network itself requires minimal structure.

이러한 네트워크는 최소한의 구조를 필요로 한다.

Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.

메세지는 최선의 방법으로 전파(broadcast) 된다.

노드들은 자발적으로 네트워크를 떠나거나 다시 합류할 수 있다.

네트워크를 떠난 후 다시 합류하였을때, 네트워크 작업들을 증명하는 방법은 가장 긴 작업증명[POW] 체인을 수락하면 된다.

*broadcast : 네트워크에 참여하고 있는 모든 사용자들에게 뿌려지는 메세지. 받는 사람의 수용여부와 상관없이 메세지들이 공유된다.

Sort:  

Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://bitcoin.org/bitcoin.pdf