비트코인/비트코인 구조 35

[비트코인 구조] 탭스크립트와 P2TR

미리 알아야 할 내용들 [비트코인 구조] 탭루트(Taproot) 미리 알아야 할 내용들 [비트코인 구조] 스크립트(Script)와 Opcode, P2PK 미리 알아야 할 내용들 [비트코인 구조] 잠금 스크립트(scriptPubkey)와 해제 스크립트(scriptSig) 기초 미리 알아야 할 내용들 [비트 kwjdnjs.tistory.com [비트코인 암호학] 5. 슈노르 서명(Schnorr signature) [비트코인 암호학] 3.2 공개키와 개인키 [비트코인 암호학] 3.1 공개키 암호화 [비트코인 암호학] 2.3 타원곡선의 스칼라 곱셈 [비트코인 암호학] 2.2 유한체에서의 타원곡선 [비트코인 암호학] 2.1 유 kwjdnjs.tistory.com [비트코인 구조] 세그윗(Segwit), Bech3..

[비트코인 구조] 탭루트(Taproot)

미리 알아야 할 내용들 [비트코인 구조] 스크립트(Script)와 Opcode, P2PK 미리 알아야 할 내용들 [비트코인 구조] 잠금 스크립트(scriptPubkey)와 해제 스크립트(scriptSig) 기초 미리 알아야 할 내용들 [비트코인 구조] 비트코인 트랜잭션(Transaction) 기초 미리 알면 좋은 내용 kwjdnjs.tistory.com 탭루트(Taproot) 탭루트는 2021년 진행된 비트코인 소프트포크의 명칭입니다. 주요 변경점으로는 슈노르(Schnorr) 서명의 도입, 탭스크립트의 도입 등이 있습니다. 다중서명과 슈노르(Schnorr) 서명 기존의 비트코인은 ECDSA를 사용하여 서명을 검증하였습니다. ECDSA는 충분히 좋은 디지털 서명방식이지만, 다중서명에 있어서는 비효율적인 방..

[비트코인 구조] HD 지갑 파생 경로(Derivation Paths)

미리 알아야 할 내용들 [비트코인 구조] BIP32: HD지갑(Hierarchical Deterministic Wallet) 미리 알아야 할 내용들 [비트코인 구조] BIP39: 니모닉(Mnemonic)과 시드(Seed) 미리 알아야 할 내용들 [블록체인 용어] 니모닉(Mnemonic) 코인을 보관하기 위해 개인 지갑을 이용하는 경우 사용자는 블록 kwjdnjs.tistory.com HD 지갑 파생 경로(Derivation Paths) 이번 글에서는 HD 지갑의 파생 경로에 대한 표준에 대해 알아보겠습니다. 이를 위해 먼저 파생 경로를 표현하는 방법에 대해 알아보겠습니다. 지난 글에서 다음과 같은 키 파생을 진행했었습니다. 이는 다음과 같이 표현할 수 있습니다. 마스터 개인키(m) -> 인덱스 0번 일반..

[비트코인 구조] BIP32: HD지갑(Hierarchical Deterministic Wallet)

미리 알아야 할 내용들 [비트코인 구조] BIP39: 니모닉(Mnemonic)과 시드(Seed) 미리 알아야 할 내용들 [블록체인 용어] 니모닉(Mnemonic) 코인을 보관하기 위해 개인 지갑을 이용하는 경우 사용자는 블록체인 계좌의 통장 비밀번호라고 할 수 있는 개인키를 직접 보관해야 합니 kwjdnjs.tistory.com [비트코인 구조] 개인키(Private key), 공개키(Public key), 주소(Address) 생성 미리 알아야 할 내용들 '비트코인/암호학' 카테고리의 글 목록 평범한 대학생의 블록체인 기술 관련 블로그 입니다. kwjdnjs.tistory.com [비트코인 암호학] 3.1 공개키 암호화 타원곡선을 이용해 디지 kwjdnjs.tistory.com [비트코인 암호학] 2...

[비트코인 구조] BIP39: 니모닉(Mnemonic)과 시드(Seed)

미리 알아야 할 내용들 [블록체인 용어] 니모닉(Mnemonic) 코인을 보관하기 위해 개인 지갑을 이용하는 경우 사용자는 블록체인 계좌의 통장 비밀번호라고 할 수 있는 개인키를 직접 보관해야 합니다. 보관된 개인키는 블록체인 상의 자신의 계좌에 접 kwjdnjs.tistory.com [비트코인 구조] 비트코인 해시 함수(sha-256, hash256, hash160) 비트코인 해시 함수(sha-256, hash256, hash160) 해시 함수는 입력 데이터를 고정된 길이의 해시값으로 변환하는 함수를 말합니다. 비트코인에서는 기본적인 해시 함수인 sha-256과 이를 응용한 hash256, has kwjdnjs.tistory.com BIP39: 니모닉(Mnemonic)과 시드(Seed) 비트코인에서 사..

[비트코인 구조] 멤풀(Mempool)

멤풀(Mempool) 비트코인 풀 노드는 트랜잭션을 수집하여 블록에 담고 작업증명을 진행해야 합니다. 이 과정에서 만약 수집한 트랜잭션을 블록에 포함하기 전에 임시로 저장할 수 있는 공간이 있다면, 트랜잭션을 더욱 효율적으로 관리할 수 있습니다. 여기에서 등장한 것이 바로 멤풀입니다. 멤풀은 '메모리 풀(Memory pool)'의 약자입니다. 트랜잭션을 임시로 저장하는 공간이 풀 노드의 메모리이기 때문에 붙여진 이름입니다. 메모리는 휘발성 저장소 입니다. 따라서 만약 풀 노드가 종료된다면, 멤풀 역시 사라집니다. 결론적으로 멤풀에 오래 남아있는 트랜잭션은 시간이 지날수록 없어지게 됩니다. 만약 트랜잭션이 블록에 포함된다면 해당 트랜잭션은 멤풀에서 제거됩니다. 이러한 방식으로 멤풀은 지속적으로 변경되면서 ..

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

미리 알아야 할 내용들 [비트코인 구조] 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..