비트코인/비트코인 기본 구조 7

[비트코인 기본 구조] 7. 정리

[비트코인 기본 구조] 6. 머클트리와 SPV(Merkle Tree & SPV) [비트코인 기본 구조] 5. 채굴(Mining) [비트코인 기본 구조] 4. 분산원장기술(Distributed Ledger Technology) [비트코인 기본 구조] 3. 작업증명(Proof-of-Work) [비트코인 기본 구조] 2. 타임스탬프(Timestamp).. kwjdnjs.tistory.com 지금까지 알아본 내용들을 정리해보겠습니다. 가장 먼저 이중 지불 문제에 대해 알아봤습니다. 이중 지불 문제는 디지털 세상에서 제삼자 없이 거래를 하는 경우 발생할 수 있는 문제였습니다. 이 문제를 해결하기 위해 해시 함수를 이용하는 작업증명을 도입해 블록들의 체인을 만들었습니다. 이러한 체인은 이전 블록의 해시를 포함하고 ..

[비트코인 기본 구조] 6. 머클 트리와 SPV(Merkle Tree & SPV)

[비트코인 기본 구조] 5. 채굴(Mining) [비트코인 기본 구조] 4. 분산원장기술(Distributed Ledger Technology) [비트코인 기본 구조] 3. 작업증명(Proof-of-Work) [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문.. kwjdnjs.tistory.com 만약 블록체인이 모든 거래들을 계속해서 저장한다면 저장 공간이 지나치게 많이 필요할 것입니다. 따라서 비트코인 개발자인 사토시는 디스크 공간을 절약하기 위해 비트코인이 머클트리를 사용하도록 만들었습니다. 지금까지 봐왔던 블록의 구조는 다음과 같았습니다. 블록이 이런 모습일 경우 더 이상 저장할 필요가 없는 거래를 제거하게 되면 블록의 해시가 변화하게 되어 작업..

[비트코인 기본 구조] 5. 채굴(Mining)

[비트코인 기본 구조] 4. 분산원장기술(Distributed Ledger Technology) [비트코인 기본 구조] 3. 작업증명(Proof-of-Work) [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개발자 사토시 나카모토는 2008년 논문과 함 kwjdnjs.tistory.com 작업증명에는 많은 시간과 비용이 들어갑니다. 따라서 중앙화 되지 않고 분산화된 네트워크에서 이러한 작업을 수행하도록 독려하려면 인센티브가 필요합니다. 작업증명에 성공한 노드에게 인센티브를 지급하기 위해, 새로운 블록 안의 첫 거래는 작업증명을 발견한 노드에게 새로 발행된 화폐를 지급할 특별한 거래로 시작하게 됩니다. 이 거래를 미국 최대 암호화폐 ..

[비트코인 기본 구조] 4. 분산원장기술(Distributed Ledger Technology)

[비트코인 기본 구조] 3. 작업증명(Proof-of-Work) [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개발자 사토시 나카모토는 2008년 논문과 함께 비트코인 코어를 처음 공개했습니다. 이렇 kwjdnjs.tistory.com 비트코인 네트워크는 여러 노드(참여자)들이 서로 연결된 형태로 구성되어 있습니다. 즉 다음과 같이 새로운 거래가 발생하게 되면 최대한 많은 노드들에게 거래가 브로드캐스트 됩니다. 이렇게 거래를 받은 노드들은 각자 작업증명을 시작합니다. 만약 어떤 노드가 작업증명에 성공해 블록을 찾는다면 해당 노드는 다른 노드에게 작업증명된 블록을 브로드캐스트 합니다. 블록을 받은 노드들은 블록 내의 거래를 검증합니다..

[비트코인 기본 구조] 3. 작업증명(Proof-of-Work)

[비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개발자 사토시 나카모토는 2008년 논문과 함께 비트코인 코어를 처음 공개했습니다. 이렇게 공개된 비트코인은 처음으로 분산화된 네 kwjdnjs.tistory.com 작업증명을 설명하기 위해 먼저 해시에 대해 다시 한번 생각해 보겠습니다. 어떠한 값에서 해시를 구한다는 것은 다음과 같았습니다. 이전에 알아봤던 것처럼 어떤 값을 SHA-256함수와 같은 해시 함수를 통해서 해시 값을 얻어낼 수 있었습니다. 이러한 해시 함수에는 특징이 존재하는데 바로 해시의 값만으로는 원래 값을 알아낼 수 없다는 것입니다. 작업증명은 이 특징을 이용합니다. 작업증명은 기본적으로 정해진 몇 개의 0비트로 시..

[비트코인 기본 구조] 2. 타임스탬프(Timestamp)

[비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개발자 사토시 나카모토는 2008년 논문과 함께 비트코인 코어를 처음 공개했습니다. 이렇게 공개된 비트코인은 처음으로 분산화된 네트워크를 통해 제3자가 필요 없는 P2P 거 kwjdnjs.tistory.com 이중 지불 문제를 해결하기 위한 첫 단계는 거래들을 모아 타임스탬프를 찍는 것입니다. 타임스탬프를 한국어로 직역하면 시간 도장입니다. 즉 타임스탬프를 찍는다는 것은 어떤 데이터가 발생한 시각을 기록하는 것입니다. P2P 거래에는 여러 사람들이 참여하기 때문에 컴퓨터 간의 시간 차이가 존재할 수 있습니다. 또한 어떤 사람은 악의적으로 컴퓨터 시간을 변경해 거래가 발생한 시각을 조작할 수 있습니다. 예를 들어 다음과 같이 블록이 1, 2, 3..

[비트코인 기본 구조] 1. 이중 지불 문제(Double spending problem)

익명의 비트코인 개발자 사토시 나카모토는 2008년 논문과 함께 비트코인 코어를 처음 공개했습니다. 이렇게 공개된 비트코인은 처음으로 분산화된 네트워크를 통해 제3자가 필요 없는 P2P 거래를 구현했습니다. 이러한 구현을 하기 위해 반드시 풀어야 했던 문제가 바로 이중 지불 문제입니다. 지금부터 비트코인의 기본 구조를 알아보기 위한 전 단계로 이중 지불 문제에 대해 먼저 알아보겠습니다. 이중 지불 문제(Double spending problem)란 말 그대로 이중으로 지불되는 상황이 발생하는 문제를 말합니다. 오프라인에서 현금을 지급하는 경우 현금이 한 손에서 다른 손으로 직접 이동하기 때문에 이동 과정에서 지폐가 갑자기 복제되는 문제가 발생하지 않습니다. 하지만 온라인의 경우 모든 거래가 데이터, 즉 ..