Skip to content

태그: 응용

총 20개의 글이 있습니다.
PKI
응용
PKI(Public Key Infrastructure)는 공개 키 암호화를 실제 시스템에서 안전하게 사용할 수 있도록 만든 인프라이다. 공개 키 암호화는 수학적으로 안전하지만, 실제로 사용하려면 “이 공개 키가 정말 Alice의 것인가?”라는 질문에 답해야 한다. PKI는 이 문제를 중앙화된 신뢰 체계로 해결한다. 키 인증은 공개 키 암호화의 근본적인 문제이다. Bob이 Alice에게 암호화된 메시지를 보내려 한다고 하자. Bob은 Alice의 공개 키가 필요하다. 하지만 누군가 Alice의 공개 키라며 다른 키를 건네줄 수 있다. 이것이 중간자 공격(Man-in-the-Middle, MITM)이다. [정상적인 경우]Bob → Alice의 진짜 공개 키로 암호화 → Alice만 복호화 가능 [중간자 공격]B
Certificate Revocation
응용
인증서는 유효 기간이 있지만, 다음과 같은 이유로 만료 전에 폐기될 수 있다. 개인 키가 유출됨 인증서 정보가 변경됨 (회사명 변경 등) CA가 손상됨 도메인 소유권 변경 암호화 알고리즘 약화 인증서 폐기를 관리하는 방법에는 CRL, OCSP, OCSP Stapling, CRLite 등이 있다. Certificate Revocation List (CRL) CRL은 만료 전에 폐기된 인증서 목록이다. CA가 주기적으로 업데이트하여 배포한다. 클라이언트는 인증서를 검증할 때 CRL을 확인하여 폐기 여부를 체크한다. 실제 데이터는 아래와 같이 서명된 데이터 구조다. 발행자(Issuer): 이 CRL을 발행한 CA의 이름 발행 시각(This Update): CRL이 발행된 시각 다음 발행 시각(Next Upd
Certificate formats
응용
SSL 인증서 형식은 다양하지만, 모두 ASN.1(Abstract Syntax Notation 1) 형식 데이터를 기계가 읽을 수 있는 방식으로 인코딩하는 방법의 차이임. x509 인증서도 이 형식으로 정의됨. 기본 개념: ASN.1: 데이터 구조를 정의하는 표준 표기법 X.509: ASN.1로 정의된 공개키 인증서 표준 DER (Distinguished Encoding Rules): ASN.1을 바이너리로 인코딩하는 규칙 PEM: DER을 Base64로 인코딩하고 평문 앵커 라인 추가 정리하면, ASN.1 표기법을 사용하여 표시된 X.509인증서는 DER 인코딩을 통해 서명할 수 있는 바이트로 변환된다. 이는 사람이 쉽게 복사하거나 인식할 수 있는 텍스트가 아니므로 base64로 인코딩된다. 마지막으로
SSH
응용
SSH는 원격 서버에 안전하게 접속하기 위한 암호화 프로토콜이다. 공개키 인증의 원리 SSH는 비밀번호 대신 공개키 비대칭 암호화 방식을 사용한다. 따라서 두 개의 키를 사용한다. 개인키(Private Key): 절대 공유하지 않는 비밀 키 공개키(Public Key): 누구에게나 공개해도 되는 키 공개키로 암호화한 데이터는 개인키로만 복호화할 수 있다. 반대로 개인키로 서명한 데이터는 공개키로 검증할 수 있다. SSH 공개키 인증은 이렇게 작동한다. 클라이언트가 서버에 접속을 시도한다 서버는 등록된 공개키 목록(~/.ssh/authorized_keys)을 확인한다 서버가 무작위 챌린지 데이터를 생성해 클라이언트에게 보낸다 클라이언트는 개인키로 챌린지에 서명해 돌려보낸다 서버는 공개키로 서명을 검증한다
EthereumClient
블록체인
이더리움은 크게 세 가지 종류의 클라이언트 소프트웨어가 각자의 역할을 수행하며 상호작용하는 구조이다. Execution Client 실행 클라이언트는 이더리움의 상태(State)를 관리하고 트랜잭션을 실제로 처리하는 소프트웨어이다. 핵심 임무: 실행과 상태 관리 사용자가 보낸 트랜잭션(거래)을 실제로 실행하고, 스마트 컨트랙트 코드를 처리하는 역할을 전담한다. 이더리움의 현재 상태를 데이터베이스 형태로 꼼꼼하게 유지하고 계속 업데이트한다. 상태’정보란 다음을 포함한다: 모든 계정의 이더(ETH) 잔액 스마트 컨트랙트의 내부 저장 공간(데이터) 각 계정의 트랜잭션 횟수(논스, Nonce) 멤풀(Mempool) 관리 아직 블록에 포함되지 않은 트랜잭션들이 대기하는 공간(멤풀)을 관리한다. 나
CEX와 DEX
블록체인
암호화폐 거래소는 디지털 자산을 거래할 수 있는 플랫폼으로, 중앙화 거래소(CEX, Centralized Exchange)와 탈중앙화 거래소(DEX, Decentralized Exchange)로 나뉜다. CEX는 기업이 운영하며 사용자의 자산을 보관하지만, DEX는 스마트 컨트랙트를 통해 사용자가 직접 자산을 관리하며 P2P로 거래한다. 유동성과 슬리피지 거래소를 이해하려면 유동성과 슬리피지 개념을 먼저 알아야 한다. 유동성(Liquidity)은 시장에서 자산을 얼마나 쉽게 사고팔 수 있는지를 나타낸다. 유동성이 높다는 것은 원하는 가격에 즉시 거래할 수 있다는 뜻이고, 유동성이 낮으면 거래 상대방을 찾기 어렵거나 불리한 가격으로 거래해야 한다. 호가창에 매수/매도 주문이 빽빽하게 쌓여있으면 유동성이 높다
Stablecoin
블록체인
스테이블코인(Stablecoin)은 가격 안정성을 목표로 설계된 암호화폐로, 법정화폐, 상품, 또는 알고리즘을 통해 가치를 유지한다. 비트코인이나 이더리움과 같은 일반 암호화폐는 높은 변동성을 가지지만, 스테이블코인은 안정적인 가치를 제공하여 결제 수단, 가치 저장, 거래소 간 이동 등에 활용된다. 따라서 거래소 간 자금 이동 시 변동성 없이 빠르게 이전할 수 있다. 상거래 결제에 안정적으로 사용되며, 탈중앙화 금융(DeFi)에서 대출, 예금, 유동성 제공의 기초 자산으로 활용된다. 국경 간 송금에서 빠르고 저렴한 수단을 제공하고, 암호화폐 시장 변동성을 회피하기 위한 안전자산 역할도 한다. 법정화폐 담보형의 경우 실제 담보 보유 여부가 불투명할 수 있고, 각국 정부의 규제 변화에 민감하게 반
BFT
블록체인
비잔틴 장애 허용(Byzantine Fault Tolerance, BFT)은 분산 컴퓨팅 시스템에서 일부 노드가 악의적으로 행동하거나 임의로 실패하더라도 시스템이 합의에 도달하고 정상적으로 작동할 수 있는 능력이다. 이는 1982년 Leslie Lamport가 제시한 “비잔틴 장군 문제(Byzantine Generals Problem)“에서 유래했다. 비잔틴 장군 문제 여러 비잔틴 장군들이 도시를 포위하고 있고, 메신저를 통해 통신하며 공격 또는 후퇴를 결정해야 하는 상황이다. 문제는 일부 장군이나 메신저가 배신자일 수 있으며, 이들이 잘못된 정보를 전달할 수 있다는 점이다. 충성스러운 장군들은 배신자가 있더라도 동일한 작전 계획에 합의해야 한다. 신뢰할 수 없는 환경에서 합의가 필요한 다양한 시
Consensus mechanisms
블록체인
Consensus mechanism(합의 알고리즘)은 분산 네트워크에서 블록체인의 상태에 대해 모든 노드가 동의하도록 하는 메커니즘이다. Bitcoin에서 사용하는 Proof of Work 외에도 다양한 합의 메커니즘이 개발되어 사용되고 있다. Proof of Stake (지분 증명) Proof of Work에 대한 대안으로, 채굴의 필요성을 제거하여 작업 증명을 개선하는 것을 목표로 하는 합의 알고리즘이다. 암호화폐 보유자들은 의결권을 얻기 위해 잔고를 걸고(스테이킹) 거래를 검증하기 위해 네트워크에 의해 선택될 기회를 갖는다. 스테이킹을 통해 노드 또는 validator로서의 역할을 수행할 수 있다. 고가의 하드웨어 요구사항이나 어려운 계산 과정은 없지만 암호화폐 보유자들이 자금을 투입하는 데
ICO
블록체인
Initial Coin Offering (ICO)는 암호화폐 개발 업체에서 투자 자금을 모집하기 위해 자사에서 개발한 암호화폐의 일부를 현금이나 다른 암호화폐를 받고 넘겨주는 것이다. 미래에 상장될 코인의 가치를 약속하고 그보다 저렴한 환율로 현재의 자금을 환전해 주는 방식이다. 전통적인 기업공개(IPO)와 유사하지만, 주식 대신 암호화폐 토큰을 발행한다는 점에서 차이가 있다. ICO 방식이 처음으로 도입된 암호화폐는 이더리움이다. 개발자인 비탈릭 부테린은 백서(白書; whitepaper)를 공개하고 비트코인을 받아 개발에 필요한 자금을 확보했다. 이더리움이 성공적으로 개발되고 투자자들에게 배부된 ETH 토큰의 가치가 상승하자, 투자자들은 많은 이득을 보게 되었다. 이더리움의 성공 이후 수많은
Bitcoin Script
블록체인
비트코인 스크립트는 트랜잭션 출력의 사용 조건을 정의하는 스택 기반 프로그래밍 언어이다. ScriptPubKey와 ScriptSig 모두 같은 방식으로 파싱된다. 파싱을 시작하고 처음 읽은 한 바이트 값이 n이고 이 값이 0x010x4b(175) 사이의 값이면 n바이트 길이만큼 이어서 읽은 숫자를 한 원소로 간주한다. 그렇지 않으면 그 바이트 값은 오피 코드를 의미한다. 연산자, 오피코드 대응 표 비트코인의 스크립트에선 반복문을 허용하지 않는다. (튜링 완전하지 않다.) 튜링 완전한 스마트 계약 언어인 Solidity를 이용하는 이더리움은 gas라는 단위를 프로그램 실행 대가로 지불하도록 강제하여 해결한다. 거래를 하기 위해선 이전 트랜잭션의 해제 스크립트(ScriptPubKey)로 코
스마트 컨트랙트
블록체인
스마트 컨트랙트(Smart Contract)는 블록체인 상에서 자동으로 실행되는 프로그램으로, 계약 조건이 충족될 때 자동으로 실행되는 디지털 계약이다. 중개자 없이 신뢰할 수 있는 거래를 가능하게 하며, 투명성과 불변성을 보장한다. 역사적 배경 스마트 컨트랙트라는 용어는 1994년 미국의 컴퓨터 과학자 Nick Szabo가 처음 제안했다. 1996년 Szabo는 여러 논문을 발표하며 스마트 컨트랙트를 “계약 조건을 실행하는 전산화된 거래 프로토콜”로 정의했다. 그의 비전은 일반적인 계약 조건을 충족하고, 악의적이거나 우발적인 예외를 최소화하며, 신뢰할 수 있는 중개자의 필요성을 줄이는 것이었다. 자판기를 예시로 들어 설명했다: 동전을 넣으면 기계가 상품을 제공하는 방식처럼, 계약 당사자 간에 신뢰가 거의