블록체인의 개념을 습득하고 블록체인 안에서의 보안을 이해해보자
블록체인 개념
#1 금융위기와 블록체인
2008년 금융위기 → 법정화폐에 대한 불신
정부의 개입이 없을 경우 금융위기의 가능성이 존재
돈과 실물의 대응 관계에서 돈은 숫자에 불과
공짜를 바라는 심리에서 파생상품과 버블이 형성
⇒ 블록체인의 탄생
#2 블록체인의 탄생 과정
2008년 사토시 나가모토가 기존화폐의 위험성을 인지
따라서 온라인용 가상화폐 설계
최초의 마이닝 2009년 1월 3일 제네시스 블록 채굴
최초의 거래(트랜잭션) 2009년 1월 12일
최초의 오프라인 거래 2010년 5월 22일 10000 BTC로 피자 2판 구매
#3 블록체인
거래 내역(트랜잭션)을 모아 ‘블록’ 이라고 하는 데이터들로 구성된 DB : TX ( A→B )를 저장
P2P 방식의 블록 동기화 시스템
모든 노드에 동일한 블록 데이터를 실시간 동기화하는 분산 컴퓨팅 기술
블록 데이터를 누구라도 임의 수정, 삭제 불가능한 위변조 방지 기술
누구나 블록 데이터에 접근 및 조회 가능
#4 블록체인의 사용 이유
블록체인의 시스템이 무결성을 보증 (조작하더라도 다른 블록에서 해당 내용이 잘못되었음을 인증)
블록체인은 단순한 트랜잭션 기반으로 작성된 블록을 모두 조회가 가능 → 모든 장부에 해당 거래 내역을 작성해야하므로 처리 속도는 느려짐
따라서 데이터의 무결성을 보장하며 참여자 모두가 관리 주체이며 해킹의 발생 가능성도 적음
키페어 방식으로 사용자를 인증 (누구라는 개념이 아닌 어떤 키에 전송되는가를 인증 → 익명성이 보장)
→ 조작이나 해킹 가능, 정부의 개입 등 기존 화폐에 대한 불신에 의해 블록체인이 탄생했으며 해당 내용을 보장하기 위해 조작이 불가능하며 모든 사용자가 조회 가능한 블록체인이 나타남
#5 블록체인의 체인
블록체인의 블록에 이전 블록 해시를 저장하여 이전 블록과의 체인
SHA256() 해시 함수 → 입력 길이와 상관 없이 256bit(32byte) 출력
#6 블록체인의 블록 구성 요소
블록 해시
블록 해더 → 소프트웨어 버전, 이전 블록 해시, 블록 생성 시간, Nonce 값, 머클트리 해시, 채굴 난이도
Tx ID 들의 해시값 (머클트리 해시 값)
거래 개별 해시값 (트랜잭션 해시 값)
거래 내역 (거러에 대한 내용)
- 한 체인의 한 메인넷에 모든 노드에는 같은 블록이 실시간으로 저장됨
블록체인 원리
#1 출현 배경
P2P 환경에서 신뢰 여부를 알 수 없는 상대와 원격에서 안전하게 돈 거래하기 위함 → 모든 노드가 장부를 공유하여 중복해서 갖고 있음 → 수신한 TX(트랜잭션)을 판단하여 자신의 장부를 갱신
#2 근본 원리
노드가 수신한 이체 트랜잭션 ( 노드 A → 노드 B : X 금액 )에 대해 확인할 수 있는 것 ⇒ 노드 A가 X 금액을 갖고 있는지 여부 ( 노드 A가 금액을 수신하였거나 블록을 채굴하였다는 자신의 장부를 바탕으로 확인 ) ⇒ 노드 A가 지불한 것이 맞는지 ( 노드 A의 공개키로 트랜잭션 서명 검증 )
노드가 스스로 확인할 수 없는 것 ⇒ A→B 송금 이후 A→C 송금 수신되었을 때 어느 것이 먼저인지 확인할 수 없음 ( 합의 알고리즘의 필요성 )
#3 블록체인 처리 단계
트랜잭션 작성 → peer 전파를 통한 브로드캐스팅 → 각 노드 대기열에서 대기 → 블록 만들기(해시 퍼즐) 경쟁 → 블록 완성한 노드가 브로드캐스팅 → 모든 노드가 블록 검증
검증 과정에서 비정상 블록 즉시 폐기 / 정상 블록 기존 체인 추가 ( 스스로 확인 가능한 내용 확인 이후 )
Public 블록체인에서는 수시로 fork(분기) 일어나 조정 ( 스스로 확인 불가능한 내용이므로 일단 분기하여 블록 생성 )
#4 블록체인의 합의 알고리즘과 마이닝
PoW : Proof of Work (작업 증명) → 블록의 무한한 생성을 방지하기 위해 만든 작업 증명
PoS : Proof of Stake (지분 증명) → 많은 지분을 가진 사람이 새로 생성된 노드에 대한 증명으로 노드나 블록에 대한 조작이 어렵게 만듬
dPoS : Delegated PoS (대표 선출 증명)
ePoW : Hdac 합의 알고리즘
BFT : 대표적인 합의 알고리즘
합의는 블록생성 → 확신시 수용함으로써 이루어짐
Fork 발생시 합의 안됨 → 체인 분리
Public에서는 상시로 Fork 발생 및 조정
Private에서는 Mining node 제한 → Fork 가능성 매우 낮음 (분산 신뢰가 적어짐)
#5 블록체인 서명과 검증
Private key를 이용하여 Data에 서명 추가
publick key와 hash 함수를 이용하여 Data의 진위 여부 확인
블록체인은 이러한 개인키와 공개키 / 해쉬함수를 사용하는 암호화를 이용하여 비중앙집중 / 신뢰를 획득하는 구조
#6 블록체인 Multi-Sig
하나의 키를 N개로 분할 저장 (M-of-N Backups)
서명에 3개 중 2개의 키가 필요 (M-of-N Multi-Sig)
→ 단순히 유효 서명의 개수를 늘리는 방법 (공개키가 N개)
→ MPC 하나의 공개키로 여러의 서명을 하나의 서명으로 만드는 것
블록체인 구성요소
#1 Public Blockchain
현재 비트코인과 이더리움 같이 누구나 참여하고 접근이 가능한 블록체인
알고리즘으로 익명의 거래를 증명하며 안정성 익명성 신뢰성 투명성 등을 보장
확장성이 낮으며 거래속도가 느림
#2 Private Blockchain
허가받은 사용자만 접근이 가능한 블록체인으로 높은 확장성과 빠른 속도를 바탕으로 기업별 특징에 특화
중앙기관에 의하여 거래 증명과 의사 결정이 이루어짐 → 화폐는 필요하지 않을 수 있음
→ 분산 시스템의 변형으로도 볼 수 있음
노드의 많은 참여가 이루어지지 않아 해당 노드의 조작이 가능할 수 있음
#3 블록체인의 단점
처리 속도 문제 → 퍼블릭 블록체인은 느림 (모두가 동시에 정보를 동기화하며 신뢰성을 확보하기 위함)
컨텐츠 보안 문제 → 암호화 저장 또는 해시 저장
스마트 컨트랙트 보안 문제 → 한 번 기록된 스마트 컨트랙트 수정 불가능, 보안 취약점 업데이트가 불가능, 일반 프로그래밍과 다르게 오류가 발생하면 손실 범위가 큼
개인키 관리 문제 → 모든 권한과 자금은 지갑 주소(개인키)로 관리, 해당 주소를 분실할 경우의 복구 방안 들이 제대로 존재하지 않음
#4 블록체인 도입 시 고려사항
블록체인으로 무엇을 할 것인가? → 트랜잭션에는 송수신자 주소, 송금액, 검증용 퍼블릭키, 기타 정보 저장 가능 / 사용자 정의 영역을 지정하거나 송수신 등의 권한을 통제 가능
블록체인에 무엇을 담을 것인가? → 모든 정보를 저장 시 속도가 느려짐 / 어떤 핵심 정보를 블록체인에 담고 검증에 사용할지 결정
사용자/기기 인증 → 사용자 인증을 전자지갑으로 대신 가능 / 휴대폰 전자지갑은 다양한 dApp의 허브 역할 / 기업 외부에서 프라이빗 네트워크에 휴대폰으로 접근 시 제한
#5 블록체인 개발 방식
API를 통해서 웹에서 접근 가능 : java, javascript 등의 SDK&API를 통해서 블록체인의 기능에 접근 가능 / JSON-RPC를 통해 블록체인 서버에 접근 가능
스마트 컨트랙트 사용시 주의점 : 업데이트가 불가능 → 보안 사고가 생기지 않았다는 것이 안전하다는 의미는 아님 / 최소한의 코드만으로 스마트 컨트랙트로 개발하고 보안 취약점 검사를 의뢰
블록체인 적용 사례
#1 블록체인 적용 여부 판단
아래의 항목 중 4개 항목 이상에 해당되면 블록체인 적용에 적합한 비지니스
(1) 다수 참여자 간의 정보공유 중요
(2) 다수 참여자의 데이터 기록/업데이트
(3) 참여자 기록의 유효성 확인
(4) 중개자 배제를 통한 비용과 복잡성 감소
(5) 업무 Lead Time 감소 등 업무 효율성 이점
(6) 다른 참여자가 생성한 정보를 서로 신뢰 필요
#2 블록체인 응용 : Heriot Smart Home
편의 시스템과 에너지 절약 시스템의 각종 사용 정보를 투명하게 관리하고 관리비 내역의 조작 방지와 인증된 기기 및 입주민 확인 등 보안 서비스 제공
인증 및 인가 보호 메커니즘 (로그인 인증 처리, 사용자/디바이스 등록, 펌웨어 무결성/암호화, 채널 간 통신 보호)
Data Security, Transparency (수도,전기,광열 / 청구정보 / 개인정보)
프레임워크 보안 및 시큐어 코딩
불필요한 인터페이스 제거
#3 이외의 블록체인 응용
스마트 투어
스마트 팩토리
설문조사 / 투표
전자 계약
월마트 유통 이력 관리
식품 이력 관리
물류 유통 관리
Smart City Pass
Smart Home
이처럼 블록체인과 해당 보안에 대해 알아볼 수 있었음
'Security > Other' 카테고리의 다른 글
[OT보안] OT 보안이 무엇일까? (127) | 2023.10.12 |
---|