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억원 정도일 뿐이다.
Published at
2023-12-11 01:46:53Event JSON
{
"id": "9186f67298647ea79f45e586372b1a9204f25ac368bbe28c4bb432d904539140",
"pubkey": "1e0e64178bc23385bbc1005025cf47ae4fedce1a8b4dd643c202598a0b1c5a88",
"created_at": 1702259213,
"kind": 1,
"tags": [],
"content": "비트코인 주소는 공개키를 SHA256 그리고 RIPEMD160 으로 두번 각각 해시한 값을 bech32 혹은 base58 로 인코딩한 값이다.\n\n이름에서도 알 수 있지만 SHA256의 결과는 256비트 RIPEMD160의 결과는 160비트이다. 8비트는 1바이트이므로 공개키를 두번 해시해서 나온 값은 20바이트 임의 문자열이 된다.\n\nOP_RETURN 스크립트가 없어도 누구든 주소값 20바이트를 임의로 정한 뒤 이를 수신인 주소로 해서 비트코인을 소량 보낼 수 있다.(물론 해당 주소의 비밀키는 아무도 모른다)\n\n사실 OP_RETURN 이 없어도 비트코인 블록체인에 이렇게 메세지를 새겨 넣는 것은 가능하고 사실 이를 막을 수 있는 방법은 없다. 사실 이런 오용과 남용을 방지하기 위해 OP_RETURN 스크립트가 생겨났다.\n\n실제로 이렇게 아무렇게나 만든 비트코인 주소로 비트코인을 보내는 일은 비트코인을 소각하는 행위로 간주할 수 있다.\n\nhttps://twitter.com/btclog29/status/1625009923200516096\n\n그런데 비트코인 풀노드 입장에서 이러한 주소로 전송된 비트코인은 계속해서 UTXO set 에 남아서 풀노드의 메모리를 점유하게 된다. 그것도 영원히 말이다.\n\n이는 비트코인 네트워크의 메모리 사용 효율을 떨어뜨리며 잠재적인 위협 요소가 될 수 있다.\n\n네트워크의 수수료율이 매우 낮을 때 위와 같은 소각주소를 대량으로 만들고 소량(1sat) 전송하는 공격이 발생할 경우 꾀 적은 비용으로 네트워크에 의미있는 부담을 줄 수 있을 것 같다.\n\n현재 네트워크의 utxo 개수는 약 1억개 이상인데 이와 동일한 개수인 1억개의 쓰레기 utxo 를 만드는데 필요한 비용은 쉽게 계산해 볼 수 있다.\n\nhttps://cryptoquant.com/asset/btc/chart/network-stats/utxo-count?window=DAY\u0026sma=0\u0026ema=0\u0026priceScale=log\u0026metricScale=linear\u0026chartStyle=line\n\n실제로 현재 비트코인 가격으로 1sat/vB 수수료율을(해당 수수료율은 불과 한두달 전만 해도 가능했었다) 이용해서 하나의 utxo 를 만들어 내는데 드는 비용은 겨우 100원 넘짓이며 이렇게 쓰레기 utxo 를 1억개 만들어 내는데 드는 비용은 약 100억원 정도일 뿐이다.",
"sig": "2bbdadc5901c5306d7d3c8b994e71b4971089805a9c8284ca92978f8f48b76e65fc8431740ceb71381da31deba7d291176178868c39d11bd08ec52ac7bfd853b"
}