밍경송의 E.B

[사이버보안] 블록체인 본문

CSE/사이버보안개론

[사이버보안] 블록체인

m_gyxxmi 2024. 6. 9. 17:20

 

이 글은 2024-1 ㅇ화여대  (인실 도 교수님의)  사이버보안개론 수업자료를 참고하였음을 밝힙니다.

 

 

이번 시간에는 블록체인의 기본 구조와 이슈 등에 대해 배운 내용을 정리해보겠습니닷.

정리하다 보니, 갑자기 대학교 입학하자마자 뭣도 모르고 블록체인 관련 동아리에 지원해볼까 했던 옛기억이 떠오르는데..

그때 들어가서 열심히 배웠으면 ㄴ혹시 돈을 좀 벌었을까?-- 아님 지금도 안 늦었을ㄹ까.. 아니야

 

 

 

💱블록체인이란?

: 기존의 중앙 집중 sys의 문제점에 대한 해결책으로 등장한 분산 sys의 일종으로, 네트워크 상의 참여자들이 공동으로 거래를 기록하고 관리하는 기술을 의미함.

중앙화 탈피가 목적인 P2P network

*이때 블록 단위의 데이터를 체인 형태로 연결하여, 참여자에게 분산 저장됨 (= 분산장부기술, 분산원장기술)

원장(ledger) : 거래 장부 

 

 

💱블록체인의 특징

탈중앙화 정부나 은행) 중앙 기관 없이 거래 가능 - 수수료 절감 효과
가용성,무결성 블록체인의 참여자는 원장이라는 거래 장부에 네트워크에서 발생하는 모든 거래를 기록.
투명성 블록 생성과 동시에 모든 참여자에게 전송.공유됨 -> 누구나 볼 수 있음.
보안성, 불변성 데이터 변조 및 탈취 불가
왜냐면.. 하나의 거래 수정을위해 모든 참여자의 원장을 수정해야 하니까.. 

 

여기서 좀 이해 안됐던 부분은 '가용성' 부분인데! 교수님이 설명해주셔서 이해가 돼따.

-> 중앙집중sys의 경우에는 그 sys가 마비되면 바로 이용이 불가능해지는데, 블록체인은 분산화 sys니까 애초에 중앙 sys가 없고.. 그래서 네트워크에서 일부 sys에 문제가 생겨도 이용이 가능해서 가용성이 높다 (비교적) 이런 의미로 이해했다!

 

 

 

💱블록체인의 개요

2009년 1월 사토시 나카모토로부터 최초 블록인 '제네시스 블록'이 생성되고 며칠 뒤 트랜잭션 생성

*제네시스 블록이란?

: 블록체인 데이터에서 기준이 되는 첫 블록

 

아 공부하기 싫어서 자꾸 개념 파고들기..하게 됩네요.. 사토시 나카모토는 진짜 뭐하는 사람일까? 이렇게 굉장하고 엄청난 걸 발명해놓고 정체는 오리무중인 게.. 신기한데 무섭기도 하고.. 관련 정보들 찾아보니까 사망설도 많이 도는 거 같은데.. 진짜 아직도 누군지? 여러명인지? 정보가 아예 없는 거보면 정말 그랬을지도.. 혹시 다 조작된 거 아닌가?하는 생각도..아님 기억은 없지만 사실 9살의 나였을지도? 

 

2009년 10월 첫 환율 발표 -> 가치 설정 (1달러 = 1,309.03 BTC) 

현재는 1만 BTC가 약 8841억..원..~

 

 

*2세대에 스마트 계약이 추가되어 다양한 응용서비스로 확장

 

 


 

 

💱블록체인의 거래과정

데이터 공동 소유 ->데이터 무결성 보장, 처리속도 빠름, 부인방지 가능

*3단계에서 타당성을 확인하는 과정이 있는데, 여기서 전자서명을 통해 검증이 이루어진다고 함.

 

전자서명에 대한 글 참조

https://mgyxxmi0219.tistory.com/94

 

[사이버보안] 암호기반 인증- Hash, MAC, 전자서명, 공개키 기반 구조

이 글은 2024-1 ㅇ화여대 사이버보안개론 수업자료를 참고하였음을 밝힙니다.  해시 함수 = 메세지 다이제스트 함수(Message Digest Function)해시 함수의 입력 메시지 = 프리이미지(Preimage)해시 결괏값

mgyxxmi0219.tistory.com

 

 

 

💱블록체인의 종류

*Public이 진정한 분산화 sys라고 볼 수 있겠음.

*Private의 경우에는 조직에 의해 내부적으로 활용되는 경우가 대부분 -> 참여자 수가 적기 떄문에 보안성이 낮다..~ 그치만 특화가 가능하고 신속하게 처리도 가능!

*Consortium의 경우, 위 두 유형의 중간 유형 느낌. 사용자별로 권한부여를 다르게 한댜

 

 


 

 

💱블록체인의 구조과 구성기술

: 거래가 담겨있는 블록이 이전 블록과 연결되어 있는 형태

*각 트랜잭션들을 해싱한 결과가 '머클루트'로 들어가 저장됨

*헤더에 있는 메타데이터(6부분)를 합산한 결과가 'Hash of the block'으로 들어가고, 이 해시값이 다음 블록의 '이전블록해시'에 들어가게 됨.

--> 이러니까,, 과거 정보. 트랜잭션을 변조한다는 것은 사실상 거의 불가능하다고 볼 수 있음! 뭐지 정보통신 배울 때 이런 비슷한 개념 있었던 거 같은데

 

 

 

 

*머클루트

: 블록체인의 원소 역할을 수행하는, 트랜잭션들의 해시트리 [데이터의 간편.확실한 인증을 위해 사용]

: 머클루트의 생성과정은 간단하다. 가장 가까운 노드 2개씩 쌍으로 묶어 합친 다음에 해싱하고, 그걸 또 가까운 노드랑 묶어서 해싱하고... -> 마지막 하나가 남을 때까지 하는데, 이때 남는 게 머클루트!

 

 

 

 

*공개키 암호화와 디지털 서명 

: 개인 간 거래 시 생성되는 디지털 서명(전자서명)을 검증하여 거래 내역이 변경되지 않았음을 입증 

- 비트코인과 이더리움의 경우 RSA가 아닌  ECDSA 알고리즘을 이용함

- 익명의 공개키를 계좌 정보로 이용 -> A가 B에게 얼마를 보냈는지 파악 가능 but A B가 누군지, 소유자에 대한 정보는 알  수 없음.

--> 원리는 전자서명이랑 완전 똑같은 거 같음. 개인키로 해시값 암호화해서 보내면 공개 키로 복호화해서 해시값이랑 비교해보는 거.. 무결성 확인하는 과정

 

 

 

 

 

*스마트 컨트랙트

: 계약 당사자가 사전에 협의한 내용을 미리 전자계약서에 넣어두고 -> 이 계약 조건이 모두 충족되면 자동으로 계약 내용이 실행되게 하는 sys

 

** 약속한 물건을 받으면 = 계약 조건이라, 이게 충족되면 3$를 지급하는 것이 자동으로 실행되고, 이 내용은 모두 블록체인에 기록될 것

 

 

 


 

💱블록체인의 취약점

 

1) 51% 공격

: 블록체인은 과반수 이상이 블록에 합의하면 정당한 블록으로 간주 -> 체인으로 연결하는데, 이때 나쁜! 악의적인 공격자가 과반수의 연산력을 확보해 거래 정보를 조작하는 경우가 발생할 수  있음.

-> 51% 를 장악한 노드가 다른 노드보다 더 빨리 신규 블록 생성 및 전파하여 정상데이터가 아닌 변조 데이터가 들어있는 블록을 채택하도록 하는 공격.. 👁️이때 자신이 송금한 기록을 삭제하고, 블록을 생성하여 연결하기 때문에 송금한 금액을 또 이용할 수 있음. (이중 지불 문제)

 

 

2) 이중 지불 문제

: 단일 화폐가 이중 결제되어 발생하는 문제

 

예를 들면, A가 B와 C 둘에게 '10000원 보내기'를 동시에 누른 경우, 어떻게 처리되어야 하는가?

 

- 은행과 같이 중앙제어sys이 존재하면 순서대로 거래 요청을 처리하기 때문에 이런 문제가 발생X..

but 이런 제 3기관이 없는 블록체인은 이중으로 블록을 생성할 수 있음!

위 그림과 같이 블록 체인에 분기가 형성될 수 있음.

 

그렇지만 분기가 생성되더라도, 계속해서 동시에 블록이 생성될 확률은 적다! 

-> 결국 속도의 차이로 더 길어지지 못한 블록은 버려지게 됨(엉클 체인과 고아 블록 발생) .. 

고아 블록은 거래로 인정되지 않기 때문에 이중 지불 문제를 해결할 수 있게 된다.

 

잘 모르는 내용이라 구글링해봤듬..!

*참고한 사이트

https://dong-life.tistory.com/110

 

 

 


 

 

 

💱합의 알고리즘

: P2P Network로 연결된 블록체인의 모든 노드가 동일한 거래 정보를 소유하고 공유할 때 사용되는 메커니즘.

앞선 취약점에 따른 문제를 해결하는 것이 합의 알고리즘의 목적!

 

 

 

1) PoW(Proof of Work. 작업 증명)

: 블록 '생성 작업'을 완료했음을 증명한다는 의미

 

how?

컴퓨터 연산을 통해 특정 문제를 가장 먼저 해결하는 사람(Miner.채굴하는 사람)블록 생성 권리를 부여(인센티브)받는 방식

-> 주어진 해시값에 따라 (앞서 다룬) 블록체인의 헤더 부분에 들어가는 Nonce값을 추측하여 맞추기

https://m.blog.naver.com/bodoblock00/221657805838

 

장점: 누구나 거래.검증에 참여 가능 -> 공정성 보장, 위변조 어려움 , 이중지불문제 해결

단점: 전력 소비 엄청남. ..특히 채굴 난이도가 높을 수록 고사양 장비가 필요. 근데? 채굴한 사람 빼고 나머지는 다 낭비.

 

 

 

2) PoS(Proof of Stake. 지분 증명)

: 암호화폐의 거래 빈도, 양 등을 고려해 암호를 풀지(PoW방식) 않고 보상을 받을 수 있는 방식

-> 작업이 아니라, 얼마나 많은 지분.Stake를 가졌는지에 따라 블록 생성에 더 많은 권한 부여

https://m.blog.naver.com/bodoblock00/221657805838

 

장점: 컴퓨팅 파워, 전력 낭비 방지. 경제적.

- 51% 공격을 당할 확률 낮음(왜냐면,, 지분의 51% 포섭.. 쉽지 않음) -> 분산화가 더 잘됨.

 

단점:

- 부익부 빈익빈의 문제 존재. 선출된 소수의 BP(블록 프로듀서.대표자)에 의해 의사결정이 이루어질 수 있음.

- 지분 싸움이기 때문에 코인을 묶어두려는 경향 ↑ . 유통량 감소로 이루어질 수 있음.

-*Nothing at Stake 문제 존재 : 의도적으로 분기(fork)를 만들어도 손해볼 것이 없기 때문에, 양쪽 분기에다가 블록을 붙일 수 있음 ..-> deposit을 걸게 함으로 대응할 수 있음.

 

 

 

 


3) PBFT(Pratical Byzantine Fault Tolerant)

: 1), 2)의 속도 및 성능 문제를 해결한 알고리즘

: 자기를 제외한 모든 나머지 노드에게 검증을 보냄 -> 하나로 모일 때까지.. ing

- 모든 노드와 통신하여 의사결정 -> Private 블록체인 유형에서 채택

 

 

장점

- 네트워크에 고장 혹은 배신자 노드가 존재해도 성공적 합의 가능

- 1) 2)에 비해 속도가 빠르고, 공평성이 보장됨.

 

단점 : 노드 수에 따라 검증 속도가 늦어져 트랜잭션 처리량이 감소할 수 있음

 

https://caileb.tistory.com/116

 

 

 

💱블록체인의 챌린지

- Security : 특히 private 유형의 경우, 조건만 만족하면 누구나 자격을 얻기 때문에 악의적인 행동이 용의함. 여러 보안 공격..과 같은 -> Authentication, Access Control 등의 보안 매커니즘 접목 필요

 

- Privacy : 블록체인의 투명성 -> 누구나 들여다볼 수 있다? -> 프라이버시 측면에선 취약점으로.. 그래서 데이터의 자세한 정보는 못 보는 상태로 data 사용이 가능하게 하는 기술과의 접목 필요

 

- Scability (확장성) : 모든 거래를 참여자 전원이 저장해야 함.

 

*블록체인의 트릴레마

ex 참여자가 많아지면 -> 분산화 ↑, 탈중앙화   , but 생산성이 떨어질 수 있음.

ex 보안성을 높이기 위해서는 참여자마다 권한을 달리하는 등, 중앙제어를 늘려야 함 -> 탈중앙화 ↓