암호화폐 탈취문제가 아닌 암호화폐 자체의 공격도 현실적으로 가능할까요?
암호화폐 시장에서 자주 문제가 되는 것이 암호화폐 거래소 해킹, 개인지갑 해킹 등의 문제라고 생각합니다. 복잡한 연산등을 풀어내어 채굴하는 POW방식이나 기타등등 코인들의 경우, 암호화폐 소스코드 자체를 변형시키거나 기타등등 기술적으로 암호화폐 자체를 공격하여 무쓸모하게 만드는 방식이 현실적으로 가능한 것인지, 이론상의 가능성으로 회자되는 이야기인지, 현실적으로 빈번히 일어나는 것인지 궁금합니다.
질문 자체가 매우 모호합니다. 암호화폐 소스코드 자체를 변형은 얼마든지 가능합니다. 상당수가 오픈소스이니까요. 그러나 이렇게 변형된 소스를 어떻게 배포하여 다른 서버에 똑같이 소스를 넣을 수 있을까요? 거의 희박한 확률이죠.
PC의 바이러스도 운영체제를 감염시키는 것이 아니라 운영체제에서 사용되는 응용 프로그램을 감염시키는 것이니까요.
암호화폐 자체를 무쓸모하게 만드는 가장 현실적인 가능은 암호화폐를 법으로 모든 국가에서 사용금지를 시키는 것입니다.
기술적으로 거래소 해킹, 지갑 해킹, POW 해시 공격을 제외하고 현실적으로 가능한 방법은 없다고 보시는 것이 맞습니다. 그외 방법은 논문이나 연구로는 가능하지만 현실에서는 거의 불가능합니다.
질문자께서 질문해주신 내용을 읽어보니 블록체인 자체를 공격하는 것이 가능한지, 이론상의 이야기인지, 현실적으로 빈번히 일어나는 것인지 궁금해하시는 듯합니다. 이에 대해 답변을 드리도록 하겠습니다.
우선 결론적으로 블록체인을 공격하는 것이 실제로 가능하지만 일반적으로 우리가 널리 이용하는 블록체인이 해킹을 당하는 것은 그렇게 자주, 빈번한 일은 아니지 않나 생각합니다. 그럼 계속해서 답변을 드리도록 하겠습니다.
블록체인 네트워크는 해당 블록체인을 움직이는 수 많은 노드들의 연결로 이루어집니다. 이러한 노드들이 블록체인 상의 거래들을 검증, 승인, 기록해 나가게 되고 이 과정에서 많은 연산 파워와 자원들이 필요합니다.
애초에 블록체인의 개념이 '분산원장기술'이라고 할 때, 특정 블록의 거래 내역이 해킹으로 위, 변조 되더라도 다른 많은 블록들의 거래 내역의 무결성이 유지됨으로써 유효하고 완전함을 보증할 수 있다는 것은 알고 있으실 것입니다.
비트코인의 예를 들어보겠습니다. 비트코인의 블록체인은 평균 10분마다 새로운 블록이 생성됩니다. 그리고 네트워크를 유지하는데 필요한 연산 파워를 100 퍼센트라고 할 때 산술적으로는 그것의 최소 51% 정도에 해당하는 연산 능력을 가지고 있어야 위, 변조된 데이터가 담긴 블록을 10분 안에 나머지 49%보다 더 빠르게 생성할 수 있고 그것을 49%보다 더 많은 51%에게 전달하고 기록할 수 있을 것입니다.
51% 공격이 이루어지면 49%의 실제 거래 내역이 동일하더라도 그것보다 더 많은 블록들이 위, 변조된 51%의 거래 내역을 기록하고 있으므로 결국 위, 변조된 내용이 진짜 거래로 인식되는 결과를 초래할 수 있습니다. 이렇게 되면 공격이 성공한 것이죠.
하지만, 비트코인의 경우 이용자도 많고 거래도 활발하며 현실적으로 비트코인 네트워크를 구성하는 모든 연산 파워의 51%를 해킹에 동원하는 것은 시간과 비용 측면에서 불가능에 가깝기 때문에 현재로서는 안전하다고 볼 수 있을 것입니다.
그런데, 이용자가 적고 트렌젝션이 활발하지 않은 블록체인의 경우, 데이터 위, 변조를 위한 연산 파워를 확보하여 51% 공격을 성공시키기가 쉬워집니다.
실제로 Verge나 비트코인 골드의 경우 이 51% 공격이 성공하여 경제적 피해를 입은 경우도 있습니다.
다시 정리하자면 블록체인도 이론적으로는 해킹이 가능하지만, 널리 이용되는 소위 말해서 메이저 코인들의 블록체인을 해킹하는 것은 현실적으로는 불가능에 가깝다고 할 수 있겠습니다.
답변이 도움이 되길 바랍니다.
안녕하세요. 암호화폐 자체적인 취약점이 발생되어 실제로 암호화폐가 복사된 사건이 있었습니다. ERC20 기반이었는데 당시 특정 암호화폐의 스마트컨트랙트 부분에 버퍼오버플로우 취약점이 발견이 되어 해당 취약점을 이용하여 특정 암호화폐의 복사시도가 있었습니다. 실제로 복사가 되었지만 특정거래소로 옮겨서 판매까지는 성공하지 못했습니다.
그런데 복사된 경위를 확인해 보니 ERC20 표준함수에 문제가 발생된 것이 아니라 자체적으로 제작된 함수를 사용하여 문제가 발생되었죠. 자체적으로 작성을 한 뒤 시큐어코딩이 잘 되었는지 확인을 해봤어야 하는 문제였는데 확인을 못했죠.
초기에 암호화폐를 제작할 때 보안에 신경을 써두고 제작이 되었다면 이런문제가 발생이 되지 않았을텐데 참 안타까웠습니다. 추후에도 이런 문제가 발생하지 않을 거라는 보장은 없으므로 질문자님께서도 만약 신생 암호화폐 프로젝트에 투자를 하신다고 커뮤니티를 통해 시큐어코딩 잘 되었는지 자체적으로 제작된 함수에 보안성이 검증이 되었는지 꼭 한번 확인을 하시길 권장 드립니다.