[블록체인에 대한오해]블록체인은 해킹 솔루션이 아니다!

Words
794
Reading
4 min
Listen
Play
9y

검은수염.png

안녕하세요. yellowboy1010@yellowboy1010 입니다.

요즘 강연을 나갈 때가 많은데요. (사진도 많이 찍음 ㅎㅎ)

예전과는 다르게 청중들의 눈빛이 초롱초롱하고 필기도 많이 합니다.

음... 근데 대부분 질문하는 것들이 비슷하더라고요.

예전에 수학 과외할 때 열심히 하는 학생들이 단계별로 질문하는 것들이 비슷한 것처럼

블록체인도 비슷한데, 오늘은 그 중 하나를 이야기 하려고 합니다.

(1)해킹의 수법은 무엇일까 ?

우리가 흔히 해킹이라고 한다는 것은 비밀 정보를 탈취하는 쪽에 가까울 것입니다. 비유를 하자면 집안에 지갑이 있는데, 몰래 집문을 열고 들어가서 지갑을 갖고 나오고, 지갑이 없어졌다는 것 외에는 아무 흔적도 남기지 않는 것이죠. 이를 위해서는 자물쇠를 훔치거나, 요즘같은 신식 스마트 도어락에서는 비밀번호를 탈취하는 방법이 있죠. 해킹이라는 것이 꼭 무슨 복잡한 알고리즘이 필요한 것만은 아닙니다. 옆사람 비번 칠 때 그거 슬쩍 보고 로그인해서 자산 훔쳐가는 것도 해킹의 방식입니다. 어찌됐든 비밀정보를 훔쳐서 개인의 어떠한 것들을 가져가는 것이죠. 대부분이 중간자 공격에 해당됩니다. (네트워크 상에 도청기 같은 것을 설치하여 정보들을 빼오는 것)

DDOS는 무엇일까요? DDOS는 해킹이라기 보다는 공격입니다. 이 것은 '집단 폭행' 이라고 보시면 됩니다. 예를 들어 학교 다닐 때 공부잘하는 친구 있잖아요? 맨날 올백 맞는 친구... (사실 저입니다 . ㅎㅎㅎ) 그 친구가 잘 되는 게 너무 얄밉습니다. 그래서 한 100명이서 몰려가서 수학 과외를 시켜달라고 합니다. (아, 참 피곤했었죠...ㅎㅎ) 그럼 이 친구는 수학 과외를 하다가 뻗어버립니다. DDOS 공격은 중앙화된 서버를 집중 공격하여 과부화를 만들어내는 것입니다.

랜섬웨어는 무엇일까요? 랜섬웨어는 자물쇠 공격이라고 보시면 됩니다. 내일 중간고사입니다. 근데 학교에 있는 사물함을 엄청 두꺼운 자물쇠로 잠급니다. 그러고는 돈을 요구합니다. '너 낼 시험이래매? 이거 필요하면 나한테 돈 내놔... 근데 현금이면 내가 누군지 알려지니까 비트코인으로 내..' 이겁니다. 이 것도 해킹이라기 보다는 공격이죠.

이제 해킹과 공격의 차이가 감이 잡히시나요? DDOS나 랜섬웨어는 어떠한 특수 정보가 빠져나가지는 않습니다. 그런데, 해킹은 특수한 정보가 빠져나가고 이 것이 자산의 탈취로 이어집니다.

(2)블록체인이 정말 해킹에 강할까 ?

자, 해킹과 공격에 대한 차이로 여러분은 전문가가 되셨습니다. (정말???? ) 네, 아무튼 그럼 이제 본격적으로 블록체인이 해킹에 강할 지를 생각해 봅시다. 블록체인에서 해킹의 대상이 되는 것은 무엇인가요? 첫째는 자산을 움직이는 개인키겠구요, 둘째는 블록 안에 있는 정보겠죠. 사실 블록체인에 있는 데이터는 거의 해쉬값이 많아서 빼갈 것이 그닥 없습니다.

그럼 먼저 개인키를 봅시다. 개인키는 자산을 움직이는 핵심 요소입니다. 이 것은 익명을 기반으로 한 자산 이동 플랫폼에서 제일 중요한 거죠. 그런데 개인키 탈취 안 되나요? 잘 되던데... 이건 블록체인의 영역이 아닙니다. 이 것은 Device의 영역입니다. 그래서 하드 월렛 서비스가 많이 나오잖아요? 그리고 월렛 서비스가 잘못되면 개인키도 잘못되죠. 얼마 전 parity 지갑 사건 보시면 됩니다. 문제 많이 발생합니다. 이 개인키 보관 이슈는 앞으로도 해결해야 하는 문제입니다. 이 뿐만이 아니죠. 개인키는 보통 ECC 함수로 부터 나오는데, 기본적으로 개인키에서 공개키가 만들어지면 역산이 안 된다는 특징을 갖습니다. 그런데 양자 컴퓨터가 나오면 (100년 뒤) 역산이 될 것이라고 합니다. 이럼 마이닝이고 뭐고 다 문제가 되죠... 암튼 개인키 해킹 잘 됩니다. 거래소 해킹 되는 거 보면 이건 그냥 각자가 얼마나 잘 보호하느냐의 문제입니다.

다음은 블록체인입니다. 블록체인에서의 해킹은 무엇일까요? 사실 블록체인은 해킹이랑 그닥 어울리지 않습니다. 위에 언급했듯이 해킹은 비밀정보를 빼가는 것인데, 블록체인은 공개정보이고 비밀정보가 없습니다. 공개 장부잖아요? 누구나 적을 수 있고 읽을 수 있다는 점이죠.

중요한 점은 어떠한 데이터를 진실로 볼 것이냐 입니다. 그 정보를 조작 불가능하다는 것이 아니라, 우리가 합의 하에 진실로 간주할 수 있는 정보를 만드는 것이 핵심이죠. 그렇다면 여기서 문제는 ? 우리가 참이라고 생각했던 정보를 거짓으로 만드는 것이죠. 그게 어떤 문제이죠? (아 이렇게 질문하는 선생들 정말 짜증났는데... ) 그건 이중 지불입니다. 컴퓨터 세계에서는 복붙이 가능하잖아요?(왜들 그러세요 ㅋㅋ 학창시절 복붙 한 번쯤은 해보셨을 텐데...) 중앙 서버가 없으면 제가 돈을 썼는데, 안 썼다고 우기는 것이 가능합니다. 이 것이 문제인데, 이 것은 사실 해킹과는 좀 다른 관점입니다. 보편적 진실에 다다르는 방법의 문제입니다.

여기서 검증과 합의 원리가 작동하는데요. A가 B에게 1000원을 보내는 거래를 만들고요, A가 C에게 1000원을 보내는 거래를 만듭니다. 그럼 둘 다 아직은 참이잖아요? 컨펌이 안됐으니... 그럼 두 개의 블록이 형성됩니다. 블록체인은 다수의 원리라 A가 B에게 보내는 블록이 먼저 채굴되어 긴 체인이 되면 그 쪽으로 합의가 되고 A가 C에게 보내는 돈은 사라지게 됩니다.

그럼 A가 C에게 돈을 보내는 쪽 블록이 길어지면? 그 쪽 블록이 참이 되게 되는 것이죠. 그래서 충분한 컨펌시간이 필요한 것입니다.

또하나! 마이너들이 잘못된 Transaction으로 블록을 만들면 어떡하나요? 그래서 패널티와 검증이 필요한 것입니다. 마이너가 만든 블록은 다른 노드들로 부터 받아들여져야 합니다. 그렇지 않으면 버려집니다. 이게 검증과 합의의 과정이죠. 만약 잘못 만든 블록이 받아들여지지 않는다면 자기가 지금껏 쓴 전기 소모량이 아까워 지는거죠.

만약 마이너들이 담합을 한다?(우지한처럼 ...) 이러면 답 없습니다. 지금까지의 논리는 이 마이너들이 담합을 하면 사람들이 신뢰하지 않을테고 자신들이 가진 코인의 가격이 똥값이 될 거니 그럴 이유가 없다라는 것입니다. 그런데, 지금 보면 알 수 있듯이, 세상사가 그렇게 녹록치 않습니다. 어떻게든 선량한 시민들을 눈속임으로 속여 거대한 이익을 챙기고 있습니다.

블록체인은 보셨듯이 만능이 아닙니다. 이건 정말 신뢰 기반의 네트워크 입니다. 우리가 맘놓고 있으면 알아서 방어해주는 것이 아닙니다. 우리가 정치에서도 국민 주권이 있으면 최순실 나가라고 촛불집회 하고 그래야 조금 받아들여지잖아요? 피곤하긴 하지만 블록체인도 많이 신경을 써야 합니다. 은행 쓰듯이 쓰게 되면 어느새 내 잔고는 늪에 빠져서 허우적거리고 있을 것입니다. 권한에는 책임이 따릅니다. 항상 모니터링하고 우지한이 또 어떤 꿍꿍이를 가지고 뭔갈 꾸밀지 상시 모니터링 해야 합니다.

오늘 진짜 찬물 끼얹는 소리 아닙니다. ㅎㅎㅎ (조금 있긴 한건가???)

오늘 쓰면서 좀 괜찮다고 생각했는데...

어찌됐든 오늘도 좋은 하루 되세요 ^^

[블록체인에 대한오해]블록체인은 해킹 솔루션이 아니다! | Ecency