51%공격은 무엇입니까?
블록체인 해킹과 관련하여 51% 공격이라는 말이 있는데
개념 설명좀 부탁드립니다
안녕하세요.
51% 공격이라 함은 비트코인에서 많이 얘기되는 건데요.
만약 앨리스와 밥이 중고거래를 하는데 비트코인으로 거래를 한다고 가정하겠습니다.
앨리스가 밥에게 비트코인을 1비트코인을 전송합니다.
밥은 전송한 정보가 블록에 담긴 것을 확인하고 앨리스에게 물품을 건네줍니다.
만약 앨리스가 전체 해시 파워 중 51% 이상의 파워를 가지고 있다면
앨리스가 밥에게 전송한 내용이 없는 블록을 생성하여 현재 블록보다 더 길이가 긴 블럭체인을 생성합니다.
비트코인은 블록이 긴 블록을 선택하므로 앨리스가 밥에게 전송한 내용이 없는 블록이 선택됩니다.
그러면 전송한 내역이 비트코인 블록에서 사라지게 됩니다.
앨리스는 물품만 받고 실제 돈을 지불하지 않은 상태가됩니다.
비트코인 네트워크에 아직 사용하지 않은 비트코인이 남아있으므로 다시 비트코인을 사용할 수 있는 상태가 됩니다.(이중 지불)
즉 51% 공격은 전체 해시 파워의 51%보다 높은 해시 파워로 트랜잭션을 조작하는 공격을 말합니다.
비트코인이 나오게 된 배경은, 인터넷 거래를 할때 신뢰받을 만한 제 3자(금융기관)의 도움 없이 개인 대 개인이 직접 거래를 하고 싶다는 배경에서 나오게 되었습니다.
오프라인에서는 개인 대 개인이 거래하는데 문제가 없습니다. 서로 얼굴을 보며, 신분증을 확인하면 신뢰할 수 있기 때문이죠.
그러나 익명성으로 활동할 수 있는 인터넷에는 거래시 신뢰부분이 문제가 됩니다. 속일 수 있는 여지가 많은거죠..그래서 우리는 인터넷에서 거래할때는 제 3자 금융기관의 도움을 받습니다.
그런데 이러한 도움에는 여러가지 비용도 많이 들고 문제점들이 있습니다.
그 문제를 해결하기 위해서 제 3자 금융기관이 아닌, p2p 네트워크 기반의 신뢰할 만한 시스템을 구축하자 라는 아이디어로 비트코인이 나오게 되었습니다.
p2p는 개인 대 개인이 연결된 네트워크의 집단이라고 보시면 됩니다. 하나의 거대한 네트워크 시스템이죠.
이 거대한 네트워크 시스템을 시스템 자체로 신뢰를 구축해보자라고 시작된것이 비트코인입니다.
그런데 여기서 발생할 수 있는 가장 큰 문제는 이중지불(double-spending)입니다.
이중지불은, A에게 1,000원이 있는데, A가 동시에 B와 C에게 1,000원씩 지불하는 경우에 문제가 발생한다는 것입니다.
제 3자의 신뢰받는 기관이 있는경우 제 3자를 통해서 거래가 이루어지므로 문제가 없는데, p2p기반 네트워크 시스템에서는 이러한 문제가 발생할 가능성이 있습니다.
그래서 이를 해결하기 위해서 비트코인에서는 해쉬(암호알고리즘), 타임스탬프(거래시간내역서버), POW(작업증명) 등의 개념을 도입하여 문제를 해결하려고 했습니다.
이 문제해결방식에서 복합적으로, 거대한 네트워크에서 과반수 이상의 신뢰받는 네트워크를 구축하면 공격자의 공격에도 무너지지 않는다. 라는 개념이 비트코인 신뢰의 핵심입니다. 이 핵심 개념을 무너뜨릴 수 있는건 과반수 이상의 공격이 됩니다.
윗 답글에 좋은 답변이 있어서, 과반수 이상의 공격이 나온 배경에 대해서 설명드렸습니다.
도움이 되었으면 좋겠네요~