비트코인이 나온 초창기에 이런 저런 알고리즘을 들여다 볼 때, 흥미로운 것이 바로 double spending를 방지하기 위한 complexity를 자동 조절하는 gravity well 이론이었는데, 이 걸 보고 생각난 것이 network을 불리해 complexity 를 인위적으로 통제한 뒤, block을 마구 만들어 내고 다시 네트웍에 연결해 double spending이 가능하겠구나... 라는 생각이었습니다.
물론 당시 googling을 통해 이걸 막기 위한 여러 노력이 이미 진행 중인 것을 봤고요.
그런데 모네로에서 정말 42분 간 double spending이 가능한 일이 발생했군요.
이를 소개한 글 두 곳을 소개합니다.
https://blockinpress.com/archives/5326 (한국어)
https://www.trustnodes.com/2018/05/07/monero-allegedly-attack-claims-double-spends-orphaned-chains-21-block-deep
생각해 보세요. 서비스나 상품을 판매하고 받은 코인이 한 두 시간 지나 chain 일부가 discard되어 송금 받은 transaction이 discard된다면... 상품은 팔았는데 돈을 받지 못하는 사고가 발생하는거죠.
그렇다고 커피 한 잔 주문 받았는데, "손님, 송금이 확인 될 때까지 한 시간 기다려 주시겠습니까?" 라고 할 수 없지 않겠어요?