[김정민 변호사의 IT와 법] 양자컴퓨터가 바꿀 미래(1) 비트코인 암호체계 진짜 깰까
상태바
[김정민 변호사의 IT와 법] 양자컴퓨터가 바꿀 미래(1) 비트코인 암호체계 진짜 깰까
  • 김정민 변호사
  • 승인 2019.11.18 10:21
  • 댓글 2
이 기사를 공유합니다

지난달 구글의 양자컴퓨터, 슈퍼컴퓨터 1만년걸릴 연산 3분만에 해결
비트코인등 암호화폐 보안체계 무너뜨릴 연산능력 과시...비트코인 가격 한때 급락
암호화폐 블록체인시스템, 매우 보안성 높은 것은 사실이나 이론상으론 '가능'
김정민 변호사
김정민 변호사

[김정민 변호사] 지난달 24일 구글이 양자컴퓨터를 이용해 슈퍼컴퓨터로 1만년 걸리는 연산을 단 3분만(정확히는 200초)에 성공했다고 발표하자 비트코인 가격이 폭락하는 사태가 벌어졌다. 이를 계기로 양자컴퓨터는 무엇이고, 양자컴퓨터가 암호화폐에 미치는 영향은 또 무엇인지 사람들의 관심이 집중되었다.

양자컴퓨터는 양자물리학과 컴퓨터과학의 하이브리드라고 할 수 있다. 이를 정확히 이해하려면 두 분야를 전문적으로 공부해야 하지만, 전문적인 이해는 아니라도 그 원리와 개념 만이라도 알 수 있다면, 양자컴퓨터가 상용화될 미래가 어떤 모습일지 예측해 볼 수 있을 것이다.

디지털컴퓨터의 일종인 스마트폰이 어떻게 동작하는지도 이해하기 어려운 분야인데 여기에 양자물리까지 접목되어 있는 분야다 보니, 이를 설명하기도, 이해하기도 매우 어렵다.

미국 구글이 개발한 양자컴퓨터와 선다 피차이 최고경영자(CEO). 사진=구글
미국 구글이 개발한 양자컴퓨터와 선다 피차이 최고경영자(CEO). 사진=구글

가상화폐 암호화기술의 핵심은 '일방향성'과 '충돌회피성' 

먼저 비트코인 등 블록체인 가상화폐에 적용된 암호화 기술을 알아보자.

비트코인 등 가상화폐라고 불리는 것들의 정식 명칭은 암호화폐(Crypto Currency)이다. 이는 암호화폐의 거래내역(송금내역)을 암호화하여 저장하기 때문인데, 여기에는 해독이 불가능한 암호화기술이 쓰인다. 가장 간단한 암호화기술은 해시함수인데 암호화폐는 거래내역을 해시함수로 축약해 블록(Block)으로 저장하고 이를 체인(Chain)처럼 연결한다. 여기서 나온 것이 블록체인이라는 기술이다.  

비트코인은 SHA-256(Secure Hash Algorithm 256)이라는 해시함수를, 이더리움은 keccak256이라는 해시함수를 사용한다. 그렇다면 해시함수란 무엇일까?

해시함수(hash function)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수를 말하는데(SHA-256, keccak256 모두 256bit의 고정값을 출력), 해시함수는 일방향성과 충돌회피성이라는 두 성질을 만족해야 한다.  익히 알고 있듯이 ‘y=f(x)’에서 f를 함수라고 하는데, 해시함수는 ‘y=H(x)’ 또는‘y=Hash(x)’ 라고 일반적으로 쓴다.

함수그림.

우리가 일상에서 가장 많이 접하는 해시함수는 포털사이트의 로그인 비밀번호 저장함수이다. 네이버에 ID를 ‘jmkim’ 비밀번호를 ‘1234abc’라고 설정하면, 네이버는 아이디 ‘jmkim’은 그대로 저장하는 반면 비밀번호 ‘123abc’는 해시함수로 암호화한 값 ‘0xA750C9‘(예시)를 저장한다(아무리 긴 비밀번호라도 고정된 길이로 저장). 이렇게 암호화 하는 이유는 네이버 서버관리자라도 사용자의 비밀번호를 모르게 하기 위함이다. 즉 해시된 ‘0xA750C9‘ 값을 보고 유저의 비밀번호 ‘123abc’를 계산해 낼 수 없다. 해시함수에 ‘123abc’를 입력하면 순식간에 ‘0xA750C9‘라는 출력값[  ‘0xA750C9‘ = H(‘123abc’) ]을 얻을 수 있는 반면, ‘0xA750C9‘ 을 입력으로 받아서  ‘123abc’ 출력값을 만들어내는 H함수의 역함수는 수학적으로 존재할 수 없다.

네이버는 사용자가 암호를 잊어버린 경우 원래 암호를 알려주지 않고, 새로운 암호를 설정하라고 하는데, 그 이유가 네이버도 사용자의 암호를 모르기 때문이다. 네이버는 ‘0xA750C9‘만을 저장하고 있고, 이 값으로 원 암호 ‘123abc’를 계산할 수 없다. 이것을 일방향성이라고 한다. [‘123abc’ -> ‘0xA750C9‘] 방향의 계산은 순식간에 할 수 있지만,  [‘0xA750C9‘ -> ‘123abc’] 방향의 계산은 과장을 조금 보태서 10만년 이상이 걸린다.

비밀번호를 해시함수로 변환해서 저장한다고 하면 혹자는 잘못된 비밀번호를 넣었는데 로그인이 성공하는 경우가 발생할 수도 있지 않을까? 우려를 한다. H(‘123abc’) 와 H(‘124abd‘) 값이 ‘0xA750C9‘로 동일하다면, 그런일이 발생할 수 있다. 그러나 이런 일이 일어나지 않게 하는 것이 충돌회피성이다. 해시함수는 서로다른 입력값이 같은 결과값을 가지기 매우 어렵게 설계된 함수이다.

기존의 디지털 컴퓨터로 위 해시함수를 무력화할 수 있는 방법은 없을까? 수학적으로 역함수는 존재하지 않는다. 거꾸로 계산할 수 없다면 모든 경우의 수를 다 대입해보면된다. 예전에는 비밀번호를 숫자 4자리로 쓰는 경우가 많았다. 이 비밀번호를 풀기 위해서는 10000번만 입력을 해보면된다. 운이 좋은 경우에는 10번 이내에 찾을 수도 있고, 운이 나쁘다면 10000번을 입력해야 할 수도 있다. 디지털컴퓨터로 해시함수의 역계산을 하는데 10만년이 걸린다는 것은 이렇게 무작위로 입력해서 알아내는 것을 전제하고 있다.

실제 해시함수의 입력값은 길이의 제한도 없고, 숫자만으로 이루어지지도 않았다. 심지어 한글도 가능하다. 그렇다면 무작위로 입력해야 할 값이 엄청나게 많아진다. 한가지 더, 누군가가 무작위 입력을 통해 해시함수를 역계산하는 프로그램을 만들었고, 10시간만에 계산할 수 있다고 하자. 입력값을 여러번 해시하도록 함수를 디자인 하면 보안을 유지할 수 있다. 10번 해시를 돌리게 디자인 하면, 역계산 프로그램은 100시간이 걸린다. 일방향성은 이런 강점이 있다. 실제 비트코인의 경우 거래내역을 머클트리를 이용하여 여러번 해시를 한다.

머클트리 그림.
머클트리 그림.

그림에서 ‘루트해시’를 ‘머클루트’라고 하는데, 제일 아래에 있는 거래내역들을 2개씩 묶어서(연결해서) 해시를 하고, 그 결과값들을 다시 해시해서 최종적으로 1개(머클루트)가 될 때까지 해시를 한다. 이런 모양을 컴퓨터공학에서는 나무(Tree) 모양이라고 해서 ‘트리 구조’라고 한다. 비트코인은 평균 10분간 모인 거래내역을 블록으로 만드는데, 10분간 1000건 정도 거래내역이 모인다(현재는 2000건 정도). 1024건의 거래내역을 머클트리 그림과 같이 해시를 하여 머클루트값을 찾으려면 1024번(0단계) -> 512번(1단계) -> 256번(2단계) 총 11단계의 해시를 해야 한다. 일방향성 함수인 해시는 11단계를 계한하는데 1초도 걸리지 않는다. 거래내역이 틀림없는지 검증하는 것은 1초도 안걸린다. 그러나 반대로 머클루트값으로 0단계의 거래 내역을 예측하거나 수정할 수는 없는 노릇이다.
 
비트코인 거래를 하기 위해서는 개인키를 발급받아야 한다(거래소를 통하지 않은 직접거래). 개인키를 발급받으면, ‘공개키’->’비트코인지갑주소’의 변환을 거쳐야 하는데, 공개키를 비트코인지갑주소로 변환하는 과정에 해시함수를 사용한다. 지갑주소는 다른 정보들과 합쳐진 후 해시를 돌려 고정길이가 블록에 저장된다. 블록에 저장된 정보는 만인에게 공개되어 있다. 그러나 머클트리 설명에서 보았듯이 블록의 정보로 지갑주소, 거래내역을 역계산하는 것은 거의 불가능하다. 나아가 비트코인의 경우 블록의 정보를 수정할 수 있다면, 내 지갑주소에 어마어마한 비트코인이 전송되도록 할 수 있지만, 블록정보를 수정하는 것이 불가능하다. 블록의 정보를 수정하면 블록내의 해시값이 모두 바뀌고 이후 블록의 해시값도 모두 바뀐다. 1개의 블록정보만을 아무도 모르게 수정할 수 없다.

그렇다면, 양자컴퓨터가 개발되면 어떻게 비트코인 암호 시스템을 깰 수 있는 것일까?
(2편에서 계속)

●김정민 변호사는 서울대에서 컴퓨터공학, 법학(부전공)을 공부했다. 4회 변호사시험에 합격했으며 (주)케이엘넷 준법지원팀 팀장으로 있다. 대한변호사협회 IT블록체인특위 대외협력기획 부위원장, 서울지방변호사회 기획위원회 위원, 한국블록체인법학회 정회원이다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 2
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.
호바드 2019-11-19 23:22:50
오~ 전문성있는 가치있는 기사 잘읽었습니다.

재밌다.ㄷㄷ 2019-11-18 15:13:14
고급진 기사 오줌 지렸습니다 굳