Why Nostr? What is Njump?
2023-12-11 02:46:53

Keating⚡ on Nostr: 비트코인 주소는 공개키를 SHA256 그리고 RIPEMD160 으로 두번 각각 ...

비트코인 주소는 공개키를 SHA256 그리고 RIPEMD160 으로 두번 각각 해시한 값을 bech32 혹은 base58 로 인코딩한 값이다.

이름에서도 알 수 있지만 SHA256의 결과는 256비트 RIPEMD160의 결과는 160비트이다. 8비트는 1바이트이므로 공개키를 두번 해시해서 나온 값은 20바이트 임의 문자열이 된다.

OP_RETURN 스크립트가 없어도 누구든 주소값 20바이트를 임의로 정한 뒤 이를 수신인 주소로 해서 비트코인을 소량 보낼 수 있다.(물론 해당 주소의 비밀키는 아무도 모른다)

사실 OP_RETURN 이 없어도 비트코인 블록체인에 이렇게 메세지를 새겨 넣는 것은 가능하고 사실 이를 막을 수 있는 방법은 없다. 사실 이런 오용과 남용을 방지하기 위해 OP_RETURN 스크립트가 생겨났다.

실제로 이렇게 아무렇게나 만든 비트코인 주소로 비트코인을 보내는 일은 비트코인을 소각하는 행위로 간주할 수 있다.

https://twitter.com/btclog29/status/1625009923200516096

그런데 비트코인 풀노드 입장에서 이러한 주소로 전송된 비트코인은 계속해서 UTXO set 에 남아서 풀노드의 메모리를 점유하게 된다. 그것도 영원히 말이다.

이는 비트코인 네트워크의 메모리 사용 효율을 떨어뜨리며 잠재적인 위협 요소가 될 수 있다.

네트워크의 수수료율이 매우 낮을 때 위와 같은 소각주소를 대량으로 만들고 소량(1sat) 전송하는 공격이 발생할 경우 꾀 적은 비용으로 네트워크에 의미있는 부담을 줄 수 있을 것 같다.

현재 네트워크의 utxo 개수는 약 1억개 이상인데 이와 동일한 개수인 1억개의 쓰레기 utxo 를 만드는데 필요한 비용은 쉽게 계산해 볼 수 있다.

https://cryptoquant.com/asset/btc/chart/network-stats/utxo-count?window=DAY&sma=0&ema=0&priceScale=log&metricScale=linear&chartStyle=line

실제로 현재 비트코인 가격으로 1sat/vB 수수료율을(해당 수수료율은 불과 한두달 전만 해도 가능했었다) 이용해서 하나의 utxo 를 만들어 내는데 드는 비용은 겨우 100원 넘짓이며 이렇게 쓰레기 utxo 를 1억개 만들어 내는데 드는 비용은 약 100억원 정도일 뿐이다.
Author Public Key
npub1rc8xg9utcgectw7pqpgztn684e87mns63dxavs7zqfvc5zcut2yquvavsw