분류 전체보기 130

[비트코인 구조] 메시지 헤더와 주요 메시지

미리 알아야 할 내용들 [비트코인 구조] P2P 네트워크 연결 P2P 네트워크 연결 비트코인 노드들이 서로 데이터를 주고받기 위해서는 노드들간의 P2P 네트워크 형성이 필요합니다. 이를 위해서 각 노드들은 각자 몇 개의 노드와의 연결을 형성해야 합니다. kwjdnjs.tistory.com [비트코인 구조] 비트코인 해시 함수(sha-256, hash256, hash160) 비트코인 해시 함수(sha-256, hash256, hash160) 해시 함수는 입력 데이터를 고정된 길이의 해시값으로 변환하는 함수를 말합니다. 비트코인에서는 기본적인 해시 함수인 sha-256과 이를 응용한 hash256, has kwjdnjs.tistory.com [비트코인 구조] 빅 엔디안(Big endian)과 리틀 엔디안(L..

[비트코인 구조] 네트워크 요청과 응답

미리 알아야 할 내용들 [비트코인 구조] P2P 네트워크 연결 P2P 네트워크 연결 비트코인 노드들이 서로 데이터를 주고받기 위해서는 노드들간의 P2P 네트워크 형성이 필요합니다. 이를 위해서 각 노드들은 각자 몇 개의 노드와의 연결을 형성해야 합니다. kwjdnjs.tistory.com 네트워크 요청과 응답 이번 글에서는 P2P로 연결된 다른 노드에게 각종 요청을 전송하고 응답을 받는 방법에 대해 알아보겠습니다. addr, getaddr 메시지 addr 메시지는 자신의 IP 정보를 연결된 노드에게 전달할 때 사용하는 메시지입니다. 만약 연결된 노드에게서 다른 노드들에 대한 IP 정보를 얻고 싶다면 getaddr 메시지를 보내면 됩니다. Blocks-First 새로운 풀노드는 최초로 생성된 0번 블록인 ..

[비트코인 구조] P2P 네트워크 연결

P2P 네트워크 연결 비트코인 노드들이 서로 데이터를 주고받기 위해서는 노드들간의 P2P 네트워크 형성이 필요합니다. 이를 위해서 각 노드들은 각자 몇 개의 노드와의 연결을 형성해야 합니다. 만약 새로운 노드가 네트워크에 참여하려면 어떻게 해야할까요? 지금부터는 이 부분에 대해 알아보겠습니다. 노드 탐색 비트코인 네트워크에 연결하기 위한 가장 첫 단계는 연결 가능한 노드를 찾는 일입니다. 비트코인 커뮤니티가 제공하는 dns를 이용하면 비트코인 노드의 아이피 주소를 쉽게 얻을 수 있습니다. 해당 주소는 다음과 같습니다. seed.bitcoin.sipa.be. 일반적인 윈도우 환경에서는 dns를 조회할 수 있는 dig명령어가 없기 때문에 아래 사이트를 이용하면 됩니다. 아래 사이트에 위 주소를 입력하면 다음..

[비트코인 구조] 작업증명(Proof-of-Work)과 난이도

미리 알아야 할 내용들 [비트코인 기본 구조] 3. 작업증명(Proof-of-Work) [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개발자 사토시 나카모토는 2008년 논문과 함께 비트코인 코어를 처음 공개했습니다. 이렇게 kwjdnjs.tistory.com [비트코인 구조] 비트코인 블록 기본 규칙 미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록(Block) 기초 미리 알아야 할 내용들 [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개 kwjdnjs.tistory.com [비트코인 구조] 비트코인 해시 함수(sha-256, hash256, hash1..

[비트코인 구조] 블룸 필터(Bloom Filter)

미리 알아야 할 내용들 [비트코인 구조] SPV(Simplified Payment Verification) 미리 알아야 할 내용들 [비트코인 구조] 머클 트리(Merkle Tree) 미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록 기본 규칙 미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록(Block) 기초 kwjdnjs.tistory.com 블룸 필터(Bloom Filter) SPV와 머클 트리에 대해 다시 한번 알아보겠습니다. 다음과 같은 머클 트리가 존재하고 SPV 노드가 트랜잭션 3을 검증하고 싶다고 가정해 보겠습니다. 이 경우 모든 트랜잭션의 해시값을 풀 노드에 요청할 필요가 없었습니다. 다음과 같이 해시01과 해시2만 요청한다면 트랜잭션 3을 검증할 수 있었습니다. 따라서 SPV ..

[비트코인 구조] SPV(Simplified Payment Verification)

미리 알아야 할 내용들 [비트코인 구조] 머클 트리(Merkle Tree) 미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록 기본 규칙 미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록(Block) 기초 미리 알아야 할 내용들 [비트코인 기본 구조] 2. 타임스탬프(Tim kwjdnjs.tistory.com [비트코인 기본 구조] 6. 머클 트리와 SPV(Merkle Tree & SPV) [비트코인 기본 구조] 5. 채굴(Mining) [비트코인 기본 구조] 4. 분산원장기술(Distributed Ledger Technology) [비트코인 기본 구조] 3. 작업증명(Proof-of-Work) [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트 kwjdnjs.tistory.com..

[비트코인 구조] 머클 트리(Merkle Tree)

미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록 기본 규칙 미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록(Block) 기초 미리 알아야 할 내용들 [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개 kwjdnjs.tistory.com [비트코인 기본 구조] 6. 머클트리와 SPV(Merkle Tree & SPV) [비트코인 기본 구조] 5. 채굴(Mining) [비트코인 기본 구조] 4. 분산원장기술(Distributed Ledger Technology) [비트코인 기본 구조] 3. 작업증명(Proof-of-Work) [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트 kwjdnjs.tistory.com..

[비트코인 구조] 블록 버전

미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록 기본 규칙 미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록(Block) 기초 미리 알아야 할 내용들 [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개 kwjdnjs.tistory.com [비트코인 구조] 빅 엔디안(Big endian)과 리틀 엔디안(Little endian) 빅 엔디안(Big endian)과 리틀 엔디안(Little endian) 엔디안(Endian)은 바이트가 저장되는 순서입니다. 빅 엔디안은 일반적으로 사람이 읽는 순서로, 리틀 엔디안 빅 엔디안의 역순으로 저장합니다. 예를 kwjdnjs.tistory.com 블록 버전 비트코인 블록체인은 지금까지 ..

[비트코인 구조] 비트코인 블록 기본 규칙

미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록(Block) 기초 미리 알아야 할 내용들 [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개발자 사토시 나카모토는 2008년 논문과 함께 비트코인 코어를 처음 kwjdnjs.tistory.com [비트코인 구조] 비트코인 해시 함수(sha-256, hash256, hash160) 비트코인 해시 함수(sha-256, hash256, hash160) 해시 함수는 입력 데이터를 고정된 길이의 해시값으로 변환하는 함수를 말합니다. 비트코인에서는 기본적인 해시 함수인 sha-256과 이를 응용한 hash256, has kwjdnjs.tistory.com [비트코인 구조] 빅 엔디안(Big..

[비트코인 구조] 비트코인 블록(Block) 기초

미리 알아야 할 내용들 [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개발자 사토시 나카모토는 2008년 논문과 함께 비트코인 코어를 처음 공개했습니다. 이렇게 공개된 비트코인은 처음으로 분산화된 네트 kwjdnjs.tistory.com [비트코인 기본 구조] 3. 작업증명(Proof-of-Work) [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개발자 사토시 나카모토는 2008년 논문과 함께 비트코인 코어를 처음 공개했습니다. 이렇게 kwjdnjs.tistory.com [비트코인 기본 구조] 6. 머클트리와 SPV(Merkle Tree & SPV) [비트코인..