본문 바로가기
  • 시 쓰는 개발자
1일 1개념정리 (24년 8월~)/블록체인

1일1개 (68) - 중동 석유 부자가 맘먹고 블록체인 해킹하기

by poetDeveloper 2024. 10. 24.
반응형

1일 1개념정리 24.08.09.금 ~ 

 

큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.

무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!


#68. 블록체인이 안전한 이유

학교 팀플을 하다가, 블록체인 이야기가 나왔고 이런 질문을 받았다. "컴퓨터에 기록되는 모든 것은 결국 위조가 가능한 것 아닌가요 ? 블록체인이 왜 안전한가요 ?" 이를 막상 대답하려 하니 어떻게 설명해야될지 모르겠더라. 오늘은 가벼운 주제로 이에 대해 다뤄보자. 제목은 어그로지만, 사실 블록체인이 안전한 이유를 설명하는 좋은 예시이다. 그리고 이제부턴 블로그 제목을 약간 이런식으로 달아봐야겠다 ....

 

블록체인이 안전한 이유

한마디로, 데이터를 "다 같이 확인하고 기록하는 방식" 때문이다. 블록체인은 여러 컴퓨터(노드)가 연결되어 하나의 네트워크를 형성하고, 모든 거래나 정보 변경을 이에 기록한다. 변경이 일어났다면 네트워크에 있는 모든 컴퓨터가 함께 확인할 수 있다. 누군가 데이터를 위조하려 한다면 ??? 네트워크 "반 이상"의 컴퓨터를 동시에 해킹해서 동일한 위조 기록을 만들어야하는데, 이는 현실적으로 매우 어렵고 비용이 많이 든다.

여기서 네트워크 반 이상을 동시에 해킹하는 것을 "51% 공격"이라고 한다. 각 노드가 독립적으로 블록체인 사본을 가지고 있을 때 새로운 트랜잭션에 대해 반 이상의 노드가 합의해야 한다는 것이다. 즉 51%의 노드가 검증에 성공하면 해당 블록이 유효한 블록임을 인정하게 된다.

 

또한.... 블록체인은 데이터를 "블록" 단위로 나눠서 시간 순서대로 연결해 저장하는데, 각 블록에는 이전 블록의 정보가 포함되어 있다. 이것이 체인처럼 연결되어 있다. 따라서, 한 블록의 데이터를 바꾸면 그 다음 블록도 바꿔야하고, 그럼 또 그다음 블록도 바꿔야하고 ..... 따라서 도미노처럼 이후의 모든 블록을 바꿔야 하므로 이것이 어렵다.

 

왜 100% 합의가 아니고, 51% 합의일까 ??

모든 노드의 동의를 얻는 것 자체가 일단 비효율적이다. 블록을 검증하는 것은 아주 어려운 수학문제를 풀고 정답을 맞추는 것인데 이것 자체가 100% 모든 노드에게 시키는 것이 비효율적이고 오래걸리며, 현실적으로 네트워크 참여자 수가 많아질수록 불가능에 가깝다. 그래서 효율성과 보안성 사이에서 균형을 맞추기 위해 51%만 검증 통과하면 유효한 블록으로 간주하게 된다.

 

아라비아 갑부가 맘먹고 블록체인 해킹하면 가능한 것 아닌가요 ?

질문 자체가 유치해보일 수 있다 ....... 하지만 좋은 예시다. 왜냐 ?? 우리는 블록체인 해킹이 불가능하다고 잘 이야기하지 않고, 천문학적인 비용과~ 시간~~ 등등의 이유를 들어가며 안된다고 말했기 때문이다. 그럼 불가능 한것은 아니란 소리일까 ????? 앞서 말했듯 이론상 51%를 동시에 해킹한다면 블록체인 조작 가능성이 있다. 그렇지만 51% 공격을 성공시키는 것은 매우 어렵다.

 

1. 엄청난 비용과 자원

일단 비트코인이나 이더리움 규모가 엄청 큰데, 이 네트워크를 공격하려면 그 반절만큼의 자원을 확보해야한다는 소리다. 근데 그 비용이 너~~~무 비싸고 실제로 그걸 수행할 인력, 공간, 인프라 등등 .... 이것이 너무 막대한 자금이다. 

 

2. 공격의 한계와 이득의 불확실성

51% 공격을 성공한다고 해도, 기존의 데이터를 지우거나 소유권을 마음대로 변경할 수는 없다. 단기적으로 새로운 블록을 임의로 생성하거나 일부 거래를 취소할 수 있지만, 이러한 조작은 다른 노드에 의해 곧바로 감지된다. 아까 말했듯 모든 노드가 네트워크 복사본을 가지고 있는데,,,, 위조된 블록이 추가된 네트워크랑 원본 네트워크랑 대조해보는 것은 시간문제이다.

 

3. 네트워크의 빠른 대응

블록체인 커뮤니티는 51% 공격이 발생하면 이를 해결할 수 있는 방법을 찾는다. 예를 들어, *하드 포크(hard fork)를 통해 공격자의 공격을 무력화할 수 있다. 하드포크는 블록체인에서 기존의 프로토콜과 호환되지 않는 새로운 프로토콜로 네트워크를 업그레이드하는 것을 의미한다. 일종의 ... 업그레이드이다. 그래서 네트워크 규칙 바꿔서 공격자가 통제할 수 없게 만드는 것이다 !! 공격자가 51%를 차지했다고 해도 하드 포크로 인해 새로 만들어진 체인에서는 그 힘을 발휘하지 못하게 되는 원리이다.

 

4. 대형 블록체인의 안전성

비트코인이나 이더리움 같은 대형 블록체인은 매우 크고 전 세계에 분산되어 있어서 이 네트워크를 동시에 장악하는 것은 현실적으로 거의 불가능에 가깝다. 네트워크 참여자들(= 채굴자, 소유자 등등)이 세계 곳곳에 분포해 있기 때문에, 이를 모두 동시다발적으로 해킹하는 것은 엄청난 비용과 자원이 필요하며, 성공 확률이 낮다.

 

그래서 애당초 시도할 생각 자체를 안하는 느낌인듯하다 .... 시도해도 바로걸리고, 51% 성공해도 버전 바꿔서 도망가고, 애당초 거기까지 가는데 천문학적인 비용이 들고... 고런 느낌 ~

반응형