A.
비트코인 시스템을 이해한다면 비트코인이 해킹을 당하는 것이 왜 어려운지를 이해할 수 있습니다.
블록체인은 비트코인 그 자체이자 보안요소입니다.
비트코인에 대한 해킹은 주소 개인키에 대한 해킹과 블록체인에 대한 해킹의 두 가지 분류가 있습니다.
첫째, 비트코인 주소 개인키 대한 해킹에 관해 얘기해보겠습니다.
약간 기술적인 이야기가 나옵니다. 암호화 방식으로 비대칭 개인키-공개키 방식이라는 것이 있습니다.
복잡한 용어는 생략하고 가능한 이해하기 쉽게 쉬운 용어를 쓰겠습니다.
처음에 비트코인 주소를 생성하면 A라는 알파벳 숫자의 조합
(예를 들어 5JyG6MzoU9ML74TjobHvdoN9Noz11pCiisjSRAR1beGiSsJPngT)이 생성되고
이 암호화 문자 A가 지갑에 들어갑니다.
이 암호화 문자 A를 컴퓨터로 일정한 공식대로 마구 뒤섞고 계산 복잡하게 해서 새로운 문자 B를 만들어냅니다
(예를 들어 1DDENJTTiAkzuwtQbDqdDQzedWZeSYcu3Q).
A는 자기만 가지고 있고 이 A는 아무도 추정할 수 없습니다.
컴퓨터의 공식대로 계산하면 A를 가지고 B를 만들 수는 있지만 아무도 B를 가지고 A를 만들어낼 수는 없습니다.
B를 가지고 A를 만들어내려면 공식을 이용한 방법으로는 불가능하고 확률에 의해 무작위 대입을 하는 수밖에 없습니다.
굉장히 많은 경우의 수를 대입해야 하는데, 현재의 컴퓨터 기술로는 이를 해독하는 것이 불가능합니다.
만일 이게 해독이 가능하다면 비트코인뿐만 아니라 지구상에 현존하는 모든 암호체계는 전부 무력화되고 은행·카드·증권 부분의 모든 시스템이 붕괴된다고 생각하면 됩니다.
그래서 비트코인 주소 개인키에 대한 해킹은 불가능에 가깝습니다.
둘째, 블록체인에 대한 해킹입니다.
다시 한 번 말하자면 지갑 A에 얼마가 들어 있는지는 블록체인에 지갑 A로 얼마가 들어왔는지 혹은 나갔는지를 검증해서 계산합니다.
만일 누군가가 블록체인을 해킹해서 그 안의 숫자를 바꾼다면 지갑 A에 들어 있는 코인의 양을 바꿀 수도 있을 것 같습니다.
그래서 누군가가 열심히 블록체인 프로그램을 뜯어 중간에 숫자를 하나 바꿔서 다른 곳으로 전파했다고 가정해보겠습니다.
이 변조된 블록체인은 비트코인 네트워크에 연결되자마자 다른 PC들에 의해 거부를 당하고 오히려 이 PC가 외부의 올바른 블록체인을 가져와서 다시 정상적인 것으로 바뀔 것입니다.
자기 PC 안에 있는 혼자만의 블록체인을 변조해서 잠시나마 자기 지갑에 들어 있는 코인량의 숫자가 늘어난 것처럼 보일 수는 있습니다.
하지만 사용하지 못할 코인이므로 변조라고 볼 수는 없겠죠. 누구에게나 쉽게 들킬 위조지폐를 만들어놓고 사용하지 못하는데 위조하는 데 성공했다고 할 수는 없겠죠?
Q 그러면 비트코인은 해킹에 대해 안전한가요?
A. 아닙니다. 비트코인도 얼마든지 해킹을 당할 수가 있습니다.
아니, 무슨 말인가요? 앞에서는 비트코인은 해킹을 당할 염려가 없다고 하지 않았나요?
둘 다 맞는 말입니다.
은행 자체의 보안은 매우 튼튼해서 은행 자체가 해킹을 당할 일은 거의 없지만, 은행을 사용하는 사용자의 PC가 해킹을 당하는 일은 종종 발생하곤 합니다.
비트코인도 마찬가지입니다.
비트코인 자체의 보안성은 매우 뛰어나고 안정적이지만, 그 비트코인을 넣어두는 PC 자체는 사용자의 환경에 따라 바이러스 등에 의해 보안이 매우 취약할 수 있습니다.
이 경우 엄밀히 말하면 비트코인이 해킹을 당한 것은 아닙니다.
은행 사이트에서 피싱이 발생했다고 은행이 해킹을 당했다고 말하지 않는 것과 같습니다.
다음과 같은 경우에 비트코인이 탈취될 수 있습니다.
첫째, 비트코인 지갑을 넣어둔 PC의 보안 상태가 엉망인 경우입니다.
비트코인 탈취사고가 발생하는 가장 일반적인 경우입니다.
정상적이지 않은 사이트에 가서 무의식적으로 ‘프로그램 설치’를 누르다 보면 자기도 모르게 트로이나 키로거 프로그램이 설치되는 경우가 있습니다.
이때 PC 사용자의 모든 화면이나 키보드 클릭 등이 모두 해커에게 넘어갑니다.
이렇게 되면 PC에 들어 있는 비트코인 지갑이나 비밀번호가 탈취돼서 자신의 코인을 도둑맞을 수 있습니다.
둘째, 비트코인 지갑에 대한 관리가 부실하고 암호화를 하지 않거나 암호가 간단한 경우입니다.
비트코인 지갑은 적절한 백업이 필요합니다.
백업하지 않은 상태에서 PC가 제대로 실행되지 않으면 비트코인이 사라질 수도 있습니다.
그래서 백업을 해야 하는데 백업 파일을 안전하지 않은 이메일에 넣어두거나 바이러스에 걸린 USB 등에 넣어두어 탈취될 수 있습니다.
이 경우 지갑 자체에 강력한 암호화가 되어 있으면 지갑 자체가 탈취돼도 지갑에 들어 있는 코인은 도둑맞지 않습니다.
그런데 암호 설정을 안 해두면 코인을 도둑맞게 됩니다.
혹은 암호가 굉장히 간단하다면 해커가 무작위 대입을 통해 암호를 찾아내어 코인을 도둑맞게 됩니다.
셋째, 코인을 넣어둔 거래소의 계정보안이 허술한 경우입니다.
거래소에서 코인을 출금할 때 많은 경우 OTP라는 프로그램을 이용해서 안전하게 출금을 합니다.