전체 글
-
비트코인(블록체인)은 왜 개인키로 암호화하고 공개키로 복호화하는것인가?블록체인 2024. 9. 19. 14:03
왜 개인키로 암호화하고 공개키로 복호화할까?개인키와 공개키의 역할:개인키(Private Key): 거래를 생성하거나 서명할 때 사용됩니다. 개인키는 절대 타인에게 공개되지 않고, 거래 소유자가 본인임을 증명하는 데 사용됩니다.공개키(Public Key): 개인키로 암호화된 데이터를 복호화하거나, 거래 검증 시 사용됩니다. 누구나 접근 가능한 공개된 정보로, 이를 통해 거래의 유효성을 확인할 수 있습니다.암호화 과정:사용자가 거래를 생성할 때 개인키로 서명하여 암호화합니다.이 암호화된 정보는 공개키를 통해 복호화되어, 다른 노드들이 해당 거래가 올바른지 확인할 수 있습니다.이렇게 하면 거래 소유자의 신원이 보호되며, 거래의 무결성 또한 보장됩니다.비대칭 암호화 방식을 사용했을 때의 이점보안성 강화:개인키는..
-
SPV(Stratum Payment Verification) 노드블록체인 2024. 9. 18. 21:32
SPV(Node)의 개념SPV(간이 결제 검증, Simplified Payment Verification) 노드:SPV 노드는 블록체인의 전체 데이터(블록의 모든 트랜잭션)를 다운로드하지 않고도 트랜잭션을 검증할 수 있는 경량 노드입니다.블록 헤더만을 다운로드하여 트랜잭션이 블록체인에 포함되어 있는지 검증합니다. 블록 헤더는 약 80바이트 정도로 작으며, 각 블록의 메타데이터(블록 높이, 타임스탬프, 이전 블록 해시 등)와 머클 루트(Merkle Root)를 포함합니다.SPV 노드는 특정 트랜잭션이 해당 블록의 일부인지 확인하기 위해 머클 루트와 머클 경로(Merkle Path)를 사용합니다.SPV 노드는 풀 노드에 의존하여 블록 및 트랜잭션 데이터를 제공받습니다.Stratum의 개념Stratum:Str..
-
비트코인 mempool 이란 무엇인가?블록체인 2024. 9. 13. 22:11
비트코인에서 **메모리 풀(Mempool)**은 아직 블록체인에 포함되지 않은 미확인 트랜잭션들이 임시로 저장되는 공간입니다. 노드들은 새로운 트랜잭션이 발생할 때 이를 즉시 블록에 추가하지 않고, 먼저 메모리 풀에 저장한 후 트랜잭션이 유효한지 검증하고, 채굴자들이 트랜잭션을 블록에 포함시킬 때까지 대기합니다.메모리 풀(Mempool)의 주요 기능미확인 트랜잭션 저장: 트랜잭션이 네트워크에 전파되면 각 노드들은 트랜잭션을 확인하고 유효성을 검사한 후, 메모리 풀에 임시로 저장합니다.채굴자들이 블록을 채울 때 활용: 채굴자들은 새 블록을 만들 때 메모리 풀에서 트랜잭션을 선택해 블록에 포함시킵니다. 수수료가 높은 트랜잭션이 우선적으로 선택되기 때문에, 사용자는 더 빠른 처리를 원할 경우 높은 수수료를 설..
-
비트코인에 UTXO방식이란 무엇을 뜻하는가?블록체인 2024. 9. 13. 07:01
UTXO(Unspent Transaction Output) 방식은 비트코인의 핵심적인 거래 처리 방식으로, 미사용 트랜잭션 출력을 기반으로 작동합니다. 이는 비트코인의 트랜잭션을 추적하고 검증하는데 중요한 개념입니다. UTXO 모델은 복잡한 방식으로 보일 수 있지만, 간단히 말하면 "사용되지 않은 자금의 기록"을 유지하는 시스템입니다.아래에서는 UTXO 개념을 아주 상세히 설명하겠습니다.1. UTXO 기본 개념UTXO는 말 그대로 아직 사용되지 않은 트랜잭션 출력입니다. 비트코인의 모든 트랜잭션은 입력과 출력으로 구성되며, 출력 중에서 아직 다른 트랜잭션에 사용되지 않은 것들이 UTXO입니다.입력(Input): 트랜잭션을 만들 때 사용하는 이전 트랜잭션의 UTXO. 즉, 이전 트랜잭션의 출력 중에서 사용..
-
비트코인 merkle root란?블록체인 2024. 9. 13. 06:33
비트코인의 Merkle Root는 블록 내의 모든 트랜잭션을 요약한 해시 값으로, 블록 헤더에 포함되는 중요한 요소 중 하나입니다. Merkle Root는 트랜잭션을 Merkle Tree(머클 트리)라는 구조로 정리하여 생성됩니다.Merkle Tree의 개념Merkle Tree는 트랜잭션들을 효율적으로 요약하고 검증하기 위해 사용하는 해시 트리 구조입니다. 이 트리 구조의 특징은 다음과 같습니다:각 트랜잭션은 트랜잭션 해시 값으로 변환됩니다.인접한 두 트랜잭션 해시 값을 해싱하여 상위 노드의 해시 값을 만듭니다.이 과정을 반복하여 트리의 최상단에 도달하는데, 이 최상단의 해시 값이 Merkle Root입니다.Merkle Tree 구성 예시블록 안에 여러 트랜잭션(Tx1, Tx2, Tx3, Tx4)이 있다..
-
비트코인 네트워크 통신, 비트코인 클라이언트 통신블록체인 2024. 9. 13. 05:41
비트코인 클라이언트 통신에서 RPC(Remote Procedure Call)는 올바르게 사용됩니다. 그러나 비트코인 네트워크의 통신과 비트코인 클라이언트와의 통신은 구분할 필요가 있습니다.1. 비트코인 네트워크 간 통신 (P2P 통신)비트코인 네트워크에서 노드 간의 통신은 P2P 프로토콜을 통해 이루어집니다.이 통신은 블록, 트랜잭션, 메시지 등을 교환하는 데 사용되며, TCP/IP 기반으로 동작합니다.즉, 네트워크 자체에서 이루어지는 통신은 P2P 방식이며, 여기서 RPC는 사용되지 않습니다.2. 비트코인 클라이언트와의 통신 (RPC 사용)비트코인 클라이언트(예: bitcoind 노드)와 외부 애플리케이션(지갑, 데이터 분석 도구 등)은 RPC를 통해 통신합니다.비트코인 클라이언트는 JSON-RPC 인..
-
Http1.1 vs http2.0 차이점 및 분석자바웹프로그래밍 2024. 9. 12. 22:26
HTTP/1.1과 HTTP/2.0의 주요 차이점은 웹 통신 방식과 성능 최적화에 있습니다. 간단하게 설명하자면, HTTP/2.0은 HTTP/1.1의 한계를 극복하고 더 빠르고 효율적인 웹 통신을 지원하기 위해 개발된 버전입니다. 차이점을 자세히 설명하자면:1. 전송 방식HTTP/1.1: 하나의 요청에 하나의 응답만 가능하며, 다중 요청을 처리할 때 병목 현상이 발생할 수 있습니다. 이를 해결하기 위해 여러 연결을 사용해 병렬 처리를 시도하지만, 네트워크 자원을 많이 사용하게 됩니다.HTTP/2.0: 하나의 연결로 여러 요청과 응답을 동시에 처리할 수 있습니다. 이를 **멀티플렉싱(Multiplexing)**이라고 하며, 하나의 연결을 효율적으로 사용하여 성능을 크게 향상시킵니다.2. 헤더 압축HTTP/1..
-
AOP vs OOP 차이점Spring 2024. 9. 12. 17:10
1. AOP의 목적: 횡단 관심사 분리AOP는 로깅, 보안, 트랜잭션 관리와 같은 공통 기능을 비즈니스 로직과 분리하기 위해 존재합니다. 만약 비즈니스 로직 안에서 AOP를 사용하게 된다면, 결국 AOP의 주요 이점 중 하나인 비즈니스 로직과 횡단 관심사 간의 분리가 무너지게 됩니다.예를 들어, 메서드 안에 로깅이나 트랜잭션 관리 코드를 직접 작성하는 것은 기존 방식의 절차적 프로그래밍으로 돌아가는 것과 같습니다.2. 비즈니스 로직 내에서는 이미 구체적인 작업이 수행됨비즈니스 로직 내에서는 특정한 작업(예: 결제 처리, 데이터 계산)이 수행되고 있습니다. AOP는 이 작업에 직접적으로 개입하는 것이 아니라, 이 작업 전후 혹은 에러 발생 시점에서 개입해야 합니다.비즈니스 로직 안에 Advice나 Poin..