블록체인 12

#12 p2wpkh

p2wpkh 스크립트 P2WPKH 스크립트는 비트코인과 비트코인 기반의 암호화폐에서 사용되는 스크립트 유형 중 하나입니다. 이것은 Segregated Witness (SegWit)이라는 프로토콜 업그레이드와 관련이 있습니다. P2WPKH는 "Pay to Witness Public Key Hash"의 약어로, 기본적으로는 보내는 쪽이 수신자의 공개 키 해시에 비트코인을 송금하는 방법을 말합니다. P2WPKH 스크립트는 SegWit 주소 형식 중 하나인 "bc1"로 시작하는 주소를 사용합니다. 이 주소 형식은 이전에 사용되던 "1"로 시작하는 주소와는 다른 형태를 가지고 있습니다. 자세한 설명을 위해 P2WPKH 스크립트가 작동하는 방식을 살펴보겠습니다: 수신자의 주소 생성: 수신자가 비트코인을 받기 위해 ..

블록체인 2023.07.25

#11 블룸 필터

블룸 필터(Bloom Filter)는 확률적인 데이터 구조로, 주어진 요소가 집합에 속해 있는지 여부를 빠르게 확인하는 데 사용되는 자료구조입니다. 블룸 필터는 빠른 조회 속도와 상대적으로 적은 메모리 사용량으로 유명하며, 특히 빅 데이터 환경에서 많이 사용됩니다. 이제 블룸 필터의 작동 원리와 특징에 대해 자세히 설명하겠습니다. 블룸 필터의 작동 원리 비트 배열 (Bit Array): 블룸 필터는 먼저 일련의 비트를 갖는 배열을 사용합니다. 이 배열의 길이는 미리 정의되며, 모든 비트는 초기에 0으로 설정됩니다. 해시 함수 (Hash Function): 블룸 필터는 여러 개의 해시 함수를 사용합니다. 각 요소를 필터에 추가할 때, 해당 요소를 여러 번의 해시 함수를 통해 다른 위치에 매핑시킵니다. 이 ..

블록체인 2023.07.25

#10 단순 지급 검증

블록체인은 탈중앙화된 분산원장 기술로, 여러 개의 블록으로 이루어진 체인 형태로 데이터를 저장하고 검증하는 시스템입니다. 이러한 블록체인은 중앙 서버가 없으며, 네트워크에 참여하는 모든 노드들이 데이터의 변경과 검증에 참여합니다. 단순 지급 검증(Simple Payment Verification, SPV)은 블록체인 네트워크에서 거래의 유효성을 확인하는 간소화된 방법입니다. SPV는 전체 블록체인의 복사본을 보유하지 않고도 특정 거래가 블록체인에 기록되었는지 확인할 수 있도록 해줍니다. 이 방법은 주로 블록체인의 노드 중에서 리소스가 제한적이거나 경량 노드인 경우에 유용합니다. SPV의 작동 방식은 다음과 같습니다: 블록 헤더 다운로드: SPV 노드는 블록체인 네트워크로부터 블록 헤더들을 다운로드합니다...

블록체인 2023.07.25

#9 네트워킹

블록체인은 분산 네트워크로 구성된 기술로, 중앙화된 서버가 필요하지 않고 여러 컴퓨터 노드들이 상호 작용하면서 데이터를 공유하고 관리하는 시스템입니다. 네트워킹은 블록체인 기술의 핵심 요소 중 하나로, 블록체인 네트워크의 원활한 운영과 데이터 신뢰성을 보장합니다. 블록체인 네트워킹의 주요 특징과 작동 방식에 대해 아래에서 자세히 설명드리겠습니다. 분산 네트워크: 블록체인은 네트워크에 여러 개의 노드가 분산되어 있습니다. 이러한 노드들은 전세계적으로 분포된 컴퓨터들로 구성되며, 서로 다른 위치에 물리적으로 분산되어 있습니다. 이 분산된 형태로 운영되기 때문에 한 국가나 기관의 제어 아래에 집중되지 않고, 전체 네트워크의 안정성과 신뢰성이 높아집니다. P2P (Peer-to-Peer) 통신: 블록체인 네트워..

블록체인 2023.07.25

#8 블록

블록 헤더 블록체인은 블록이라고 불리는 데이터의 체인으로 구성되어 있습니다. 각 블록은 네트워크에 의해 검증된 거래 정보를 포함하고 있으며, 블록 헤더는 각 블록의 구성 요소 중 하나로 중요한 역할을 수행합니다. 이제 블록 헤더에 대해 아주 자세히 설명해드리겠습니다. 블록 헤더는 하나의 블록을 고유하게 식별하고 그 블록의 유효성을 검증하는 데 사용되는 메타데이터 세트입니다. 모든 블록 헤더는 다음과 같은 주요 구성 요소들로 이루어져 있습니다: 1. 버전 (Version): 블록체인의 프로토콜 버전을 지칭합니다. 버전 번호는 블록체인의 업그레이드 및 호환성 문제를 처리하는 데 사용됩니다. 2. 이전 블록 해시 (Previous Block Hash): 이전 블록의 고유한 식별자인 해시 값입니다. 이전 블록의..

블록체인 2023.07.25

#7 p2sh

P2SH(페이로드가 있는 P2SH)는 비트코인과 같은 암호화폐에서 사용되는 스크립트 언어를 기반으로 한 중요한 기술입니다. P2SH는 "Pay to Script Hash"의 약자로, 이를 통해 더 복잡하고 다양한 스크립트를 실행하는데 사용됩니다. 이전의 전통적인 P2PKH(Pay to Public Key Hash)나 P2PK(Pay to Public Key) 스크립트보다 더 유연하고 보안성이 높아진 특징이 있습니다. P2SH의 주요 아이디어는 스크립트를 해시화(hash)하여 해시값을 주소로 사용하는 것입니다. 이러한 해시값은 20바이트 길이의 고정된 크기로, 주소와 비슷하게 표현됩니다. 그러나 이 주소는 스크립트의 해시값으로 해석되어, 블록체인 트랜잭션에 해당 스크립트를 실행하는 데 사용됩니다. P2SH..

블록체인 2023.07.25

#6 스크립트

스크립트란? 블록체인에서의 스크립트는 스마트 계약이나 트랜잭션을 실행하는데 사용되는 코드 조각을 말합니다. 스마트 계약은 프로그래밍적인 논리를 통해 자동으로 실행되는 계약으로, 블록체인에 기록되고 검증되어 결과를 적용합니다. 이러한 스크립트를 통해 블록체인 네트워크의 동작 방식을 조정하고 사용자들 간에 거래 및 데이터 전달을 수행할 수 있습니다. 블록체인에서 사용되는 스크립트는 여러 가지 언어로 작성될 수 있으며, 가장 널리 사용되는 언어는 다음과 같습니다. Solidity: 이더리움 블록체인과 같은 이더리움 기반 블록체인에서 가장 널리 사용되는 스마트 계약 언어입니다. JavaScript: 블록체인 플랫폼인 이오스(EOS)와 트론(TRON)과 같은 일부 블록체인에서는 JavaScript 기반의 스크립팅..

블록체인 2023.07.25

#5 트랜잭션

트랜잭션이란? 블록체인은 분산형 데이터베이스 기술로, 거래 정보를 블록이라고 하는 체인 형태로 연결하여 기록하는 시스템입니다. 트랜잭션은 이러한 블록체인에서 핵심적인 요소로서, 사용자 간에 자산을 전송하거나 정보를 기록하는 등의 작업을 의미합니다. 블록체인에서의 트랜잭션은 일련의 단계로 이루어집니다. 아래는 트랜잭션이 어떻게 진행되는지를 자세하게 설명하는 과정입니다: 트랜잭션 요청: 블록체인 네트워크에서 트랜잭션이 시작됩니다. 사용자가 자산을 전송하거나 정보를 기록하고자 할 때, 해당 트랜잭션을 생성하여 네트워크에 전달합니다. 트랜잭션 검증: 트랜잭션은 블록체인 네트워크에 속한 노드들에 의해 검증됩니다. 노드들은 트랜잭션이 유효하고 정당한지 확인하는 프로토콜에 따라 검증합니다. 유효성 검사는 보통 해당 ..

블록체인 2023.07.25

#4 직렬화

블록체인에서 직렬화(serialization)는 중요하고 기본적인 개념으로, 데이터를 블록체인 네트워크에 기록하고 전송하기 위해 데이터를 일렬로 나열하는 과정을 의미합니다. 이렇게 직렬화된 데이터는 네트워크 상에서 전달되거나 영구 저장소에 기록되며, 블록체인의 안전성과 신뢰성에 기여합니다. 블록체인은 분산된 컴퓨터 네트워크에 의해 운영되며, 이 네트워크에 참여하는 다양한 컴퓨터들은 각각 다른 구성과 운영체계를 가지고 있습니다. 이로 인해 각각의 컴퓨터들이 데이터를 서로 이해하고 해석할 수 있어야 하는데, 이를 위해 직렬화가 필요합니다. 여러 프로그래밍 언어와 플랫폼에서 데이터를 다루는 방식은 서로 다를 수 있습니다. 직렬화는 이러한 다양한 형태의 데이터를 일관성 있게 표현하는 방법을 제공하여, 서로 다른..

블록체인 2023.07.25

#3 타원곡선 암호

타원곡선 암호 타원곡선 암호(Elliptic Curve Cryptography, ECC)는 공개키 암호 시스템의 일종으로, 타원곡선의 수학적 성질을 이용하여 암호화와 서명 등 보안 기능을 수행하는 암호 기술입니다. ECC는 RSA와 같은 다른 공개키 알고리즘과 비교하여 보안성을 유지하면서 훨씬 작은 키 크기를 사용할 수 있어서 효율적이고 안전한 암호 기술로 널리 사용됩니다. 타원곡선은 다음과 같은 수학적인 형태를 가지는 곡선입니다: y^2 = x^3 + ax + b 여기서 a와 b는 곡선의 계수를 나타내며, 주로 유한체(Finite Field) 상에서 정의됩니다. 이때, 유한체는 특정한 크기를 가지는 숫자의 집합으로, 이 크기를 '소수 p'로 나타내는 경우가 일반적입니다. 따라서 ECC에서 사용되는 곡선..

블록체인 2023.07.25