지금까지는 그냥 수업을 '듣기'만 했는데 이젠 따로 공부하지 않으면 안 될 수준이 되어 별도 기록한다.
나만을 위한 정리라서 아마 다른 사람에게는 별 도움이 안 될 것이다.
블록체인 핵심 기술
(보안요소)
1. 키 기반 암호기술
키는 비밀번호 같은 것: 공개키와 개인키로 나뉘며, 공개키는 자물쇠, 개인키는 열쇠 역할을 한다.
대칭키 암호화:
키: 같은 키를 양측이 공유.
암호화/복호화: 같은 키 사용.
장점: 빠르고 간단.
단점: 키를 안전하게 공유하는 것이 어려움.
보관: 물리적으로 전달하거나 안전한 초기 세션을 통해 공유.
비대칭키 암호화:
공개키: 모두가 알 수 있는 자물쇠.
개인키: 나만 아는 열쇠.
암호화: 공개키 사용.
복호화: 개인키 사용.
장점: 키 공유 시 안전.
단점: 대칭키보다 느림.
대칭키와 비대칭키의 차이가 암호화 기술의 핵심이다.
공개키와 개인키는 비대칭키 암호화 방식의 일부다.
2. 해시 알고리즘
해시 알고리즘
해시 알고리즘은 데이터를 특정 길이의 숫자와 문자로 변환하는 특별한 수학 공식이다.
이 변환된 결과를 해시값이라고 부른다.
쉬운 예
데이터: "고양이"라는 단어.
해시 알고리즘: 특별한 수학 공식.
해시값: "abc123" 같은 짧은 코드.
중요한 특징
고정 길이: 아무리 긴 데이터도 항상 같은 길이의 해시값으로 변환된다.
예: "고양이"도 "큰 고양이"도 해시값은 길이가 같다.
고유한 값: 서로 다른 데이터는 다른 해시값을 가진다.
예: "고양이"의 해시값과 "강아지"의 해시값은 다르다.
변경 불가: 데이터를 조금이라도 바꾸면 해시값이 완전히 달라진다.
예: "고양이"와 "고양이!"의 해시값은 완전히 다르다.
용도
데이터 무결성 확인: 데이터가 바뀌지 않았는지 확인할 때 사용한다.
예: 파일을 다운로드할 때, 해시값이 같으면 파일이 안전하게 다운로드된 거다.
요약
해시 알고리즘: 데이터를 짧은 코드로 변환하는 공식.
해시값: 변환된 짧은 코드.
특징: 고정 길이, 고유한 값, 변경 시 다른 값.
용도: 데이터가 바뀌지 않았는지 확인.
해시에 대해 너무 유치원생 같이 정리하는 것 같지만 처음에는 가장 쉽게 개념 정리만 해야 한다.
더 디테일한 작업은 뒤에서 계속 된다.
3. 인증기술 - CA, PKI
인증(Authentication): 님 누구?
인가(Authorization): 님 이거 할 권한 있?
인증기술: 내가 누구인지 증명하는 방법
그걸 위한 구체적인 방법에 CA와 PKI 개념이 쓰인다.
CA (Certificate Authority, 인증 기관)
CA는 신뢰할 수 있는 제3자로, 사람이나 웹사이트의 신원을 확인해주는 역할을 한다.
비유: CA는 온라인 세상에서 신분증을 발급해주는 기관이다.
예시
웹사이트 인증서: 웹사이트가 안전한지 확인하려면 CA가 발급한 인증서가 필요하다.
예: 우리가 은행 웹사이트에 접속할 때, CA가 인증서를 발급해서 그 웹사이트가 진짜 은행인지 확인한다.
PKI (Public Key Infrastructure, 공개키 기반 구조)
PKI는 CA가 인증서를 발급하고 관리하는 시스템이다.
PKI는 공개키와 개인키를 이용해 안전한 통신을 가능하게 한다.
구성 요소
공개키: 모두가 알 수 있는 키.
개인키: 나만 아는 키.
인증서: CA가 발급한 신분증 같은 것, 공개키와 신원 정보가 포함돼 있다.
예시
SSL/TLS: 웹사이트 보안에 사용되는 프로토콜.
PKI를 사용해 웹사이트의 신원을 확인하고, 안전한 통신을 가능하게 한다.
요약
CA (인증 기관): 신뢰할 수 있는 제3자로, 신분증(인증서)을 발급해줌.
PKI (공개키 기반 구조): CA가 인증서를 발급하고 관리하는 시스템.
공개키: 모두가 알 수 있는 키.
개인키: 나만 아는 키.
인증서: CA가 발급한 신분증 같은 것.
이 정도 읽어도 긴가 민가하면 데이터 흐름을 보면 된다.
데이터 흐름
웹사이트 주인:
CA에 인증서를 신청한다.
CA는 웹사이트 주인의 신원을 확인하고, 인증서를 발급한다.
웹사이트 주인은 이 인증서를 자신의 웹서버에 설치한다.
이용자:
이용자가 웹사이트에 접속한다.
웹사이트는 CA가 발급한 인증서를 이용자에게 보여준다.
이용자의 브라우저는 CA의 신뢰 목록을 확인하고, 인증서가 진짜인지 확인한다.
인증서가 유효하면, 안전한 연결(SSL/TLS)이 시작된다.
CA와 PKI
CA (인증 기관):
웹사이트 주인의 신원을 확인하고, 인증서를 발급한다.
신뢰할 수 있는 제3자 역할을 한다.
PKI (공개키 기반 구조):
CA가 인증서를 발급하고 관리하는 시스템이다.
공개키와 개인키를 이용해 데이터를 안전하게 암호화하고 복호화한다.
인증서에는 웹사이트의 공개키가 포함되어 있다.
공개키와 개인키의 사용 (간단히)
웹사이트 주인:
개인키는 안전하게 보관한다.
공개키는 인증서에 포함되어 CA로부터 발급받는다.
이용자:
인증서를 통해 웹사이트의 공개키를 받는다.
브라우저는 이 공개키를 사용해 세션 키(대칭키)를 암호화하여 웹사이트에 전송한다.
웹사이트는 자신의 개인키로 세션 키를 복호화한다.
이후 통신은 이 세션 키(대칭키)를 사용해 암호화된다.
요약
웹사이트 주인: CA를 통해 인증서를 받아 웹서버에 설치.
이용자: 웹사이트에 접속하여 인증서를 확인하고, 안전한 연결을 시작.
CA: 신뢰할 수 있는 제3자로 인증서를 발급.
PKI: CA가 인증서를 발급하고 관리하는 시스템.
* 부록 *
브라우저의 인증서 확인 과정
웹사이트 접속:
이용자가 웹사이트에 접속한다.
웹사이트는 서버에 설치된 인증서를 브라우저에 제공한다.
인증서 확인:
브라우저는 인증서를 확인한다. 이 과정에서 브라우저는 다음을 검사한다:
유효성: 인증서가 현재 유효한지 (만료되지 않았는지).
발급자: 인증서를 발급한 CA가 신뢰할 수 있는지. 브라우저는 미리 내장된 신뢰할 수 있는 CA 목록을 가지고 있다.
서명: 인증서가 CA의 디지털 서명으로 서명되었는지 확인한다.
도메인: 인증서가 해당 웹사이트의 도메인과 일치하는지.
안전한 연결 설정 (SSL/TLS):
인증서가 유효하고 신뢰할 수 있다고 판단되면, 브라우저는 웹사이트와 안전한 연결(SSL/TLS)을 설정한다.
이 과정에서 브라우저는 웹사이트의 공개키를 사용해 세션 키를 암호화하여 전송하고, 웹사이트는 자신의 개인키로 세션 키를 복호화한다.
이후 통신은 이 세션 키(대칭키)를 사용해 암호화된다.
요약
브라우저는 웹사이트에 접속할 때 인증서를 확인한다.
브라우저는 인증서의 유효성, 발급자, 서명, 도메인을 검사한다.
인증서가 유효하면, 브라우저는 웹사이트와 안전한 연결을 설정한다.
내가 여기까지 보고 드는 생각이, 블록체인 공부 다 하면 정보보안기사 붙겠다 싶네.
4. 네트워크 + 웹서비스 기술
블록체인 네트워크: 블록체인은 분산 네트워크로 구성됩니다. 여러 컴퓨터(노드)가 네트워크에 참여하여 블록체인을 유지하고 관리합니다.
주요 개념:
P2P (Peer-to-Peer) 네트워크:
모든 노드가 동등한 권한을 가지며 직접 데이터를 주고받습니다.
중앙 서버가 없어서 탈중앙화가 이루어집니다.
노드:
블록체인 네트워크를 구성하는 개별 컴퓨터.
블록체인 데이터를 저장하고 새로운 거래를 검증하며, 블록을 생성합니다.
5. 합의 알고리즘 - 합의 알고리즘의 필요성과 분류
합의 알고리즘
합의 알고리즘은 분산 네트워크에서 모든 노드가 동일한 데이터를 가지고 있다는 것을 보장하는 방법입니다.
블록체인에서는 모든 거래가 검증되고, 새로운 블록이 추가되기 전에 모든 참여자가 이에 동의해야 합니다.
합의 알고리즘의 필요성
신뢰 구축: 중앙 권한 없이도 네트워크 내 모든 참여자가 데이터를 신뢰할 수 있게 합니다.
무결성 유지: 데이터가 변경되지 않고 올바르게 유지되도록 합니다.
중복 방지: 동일한 거래가 여러 번 기록되는 것을 방지합니다.
주요 합의 알고리즘의 분류
작업 증명 (Proof of Work, PoW)
개념: 복잡한 수학 문제를 해결하는 작업을 통해 블록을 생성.
장점: 보안이 강하고 공격이 어렵습니다.
단점: 많은 전력과 시간이 필요합니다.
예시: 비트코인(BTC).
지분 증명 (Proof of Stake, PoS)
개념: 소유한 암호화폐의 양에 비례하여 블록을 생성할 권한을 부여.
장점: 에너지 효율이 높고, 빠르게 블록을 생성할 수 있습니다.
단점: 초기 소유자가 유리할 수 있습니다.
예시: 이더리움 2.0 (ETH).
위임 지분 증명 (Delegated Proof of Stake, DPoS)
개념: 암호화폐 소유자들이 대표자를 선출하고, 이 대표자들이 블록을 생성.
장점: 빠르고 효율적입니다.
단점: 중앙화의 위험이 있습니다.
예시: EOS.
권한 증명 (Proof of Authority, PoA)
개념: 신뢰할 수 있는 노드들이 블록을 생성.
장점: 매우 빠르고 효율적입니다.
단점: 중앙화된 시스템에 가까워질 수 있습니다.
예시: VeChain.
용량 증명 (Proof of Capacity, PoC)
개념: 디스크 공간을 사용하여 블록을 생성.
장점: 에너지 효율적입니다.
단점: 많은 저장 공간이 필요합니다.
예시: Burstcoin.
요약
합의 알고리즘은 분산 네트워크에서 데이터를 신뢰할 수 있게 하는 방법입니다.
필요성: 신뢰 구축, 무결성 유지, 중복 방지.
주요 알고리즘:
PoW: 복잡한 수학 문제 해결.
PoS: 암호화폐 소유량에 따라 블록 생성.
DPoS: 대표자를 선출하여 블록 생성.
PoA: 신뢰할 수 있는 노드들이 블록 생성.
PoC: 디스크 공간을 사용해 블록 생성.
6. 스마트 컨트랙트
스마트 컨트랙트란?
스마트 컨트랙트는 블록체인 상에서 자동으로 실행되는 프로그램입니다.
특정 조건이 충족되면 자동으로 계약이 실행되는 디지털 계약이라고 생각하면 됩니다.
스마트 컨트랙트의 기본 개념
자동화된 계약: 스마트 컨트랙트는 사람이 개입하지 않아도 자동으로 실행됩니다.
조건 기반 실행: 특정 조건이 충족되면 스마트 컨트랙트가 자동으로 실행됩니다.
블록체인 기반: 블록체인에 기록되기 때문에 누구나 계약 내용을 확인할 수 있으며, 변경이 불가능합니다.
스마트 컨트랙트의 특징
자율성: 계약이 설정된 조건에 따라 자동으로 실행됩니다.
신뢰성: 블록체인에 기록되어 변경할 수 없으므로 신뢰할 수 있습니다.
투명성: 모든 참가자가 계약 내용을 확인할 수 있습니다.
보안성: 블록체인의 암호화 기술을 사용해 보안을 유지합니다.
스마트 컨트랙트의 예시
예시 1: 보험 청구
조건: 특정 지역에 폭풍이 발생하면.
스마트 컨트랙트: 보험사가 자동으로 보험금을 지급.
예시 2: 부동산 거래
조건: 구매자가 계약금을 지불하면.
스마트 컨트랙트: 자동으로 부동산 소유권 이전.
스마트 컨트랙트의 작동 방식
코딩: 계약 내용을 프로그래밍 언어(예: Solidity)로 작성합니다.
배포: 스마트 컨트랙트를 블록체인 네트워크에 배포합니다.
실행: 조건이 충족되면 스마트 컨트랙트가 자동으로 실행됩니다.
기록: 실행 결과가 블록체인에 기록되어 변경할 수 없습니다.
스마트 컨트랙트의 장점과 단점
장점
효율성: 자동으로 실행되므로 시간과 비용을 절약할 수 있습니다.
신뢰성: 블록체인에 기록되므로 신뢰할 수 있습니다.
투명성: 모든 계약이 공개적으로 검증 가능합니다.
단점
복잡성: 프로그래밍 지식이 필요합니다.
변경 불가: 한 번 배포된 스마트 컨트랙트는 변경할 수 없습니다.
보안 문제: 코드에 오류가 있을 경우 취약점이 될 수 있습니다.
스마트 컨트랙트의 주요 플랫폼
이더리움 (Ethereum): 가장 널리 사용되는 스마트 컨트랙트 플랫폼입니다.
EOS: 빠른 거래 속도를 제공하며, 스마트 컨트랙트를 지원합니다.
Hyperledger Fabric: 기업용 블록체인 플랫폼으로 스마트 컨트랙트를 지원합니다.
요약
스마트 컨트랙트는 특정 조건이 충족되면 자동으로 실행되는 디지털 계약으로, 블록체인에 기록되어 신뢰성과 투명성을 제공합니다.
보험 청구, 부동산 거래 등 다양한 분야에서 활용될 수 있으며, 이더리움과 같은 플랫폼에서 주로 사용됩니다.
'블록체인 > 블록체인 기본 A to Z' 카테고리의 다른 글
블록체인에서의 비잔틴 문제(Byzantine Generals Problem) (0) | 2024.05.17 |
---|---|
[경남] 블록체인 기본과정 - 5차시 - 2 (0) | 2024.05.17 |
서비스에 블록체인을 도입하기 전에 고려해야 하는 것들 (0) | 2024.05.13 |