another coin bites the dust
play

Another coin bites the dust Sergi Delgado Segura Cristina Prez-Sol, - PowerPoint PPT Presentation

Another coin bites the dust Sergi Delgado Segura Cristina Prez-Sol, Sergi Delgado-Segura , Guillermo Navarro-Arribas, Jordi Herrera-Joancomart Another coin bites the dust: An analysis of dust in UTXO based cryptocurrencies sr_gi


  1. Unprofitable outputs

  2. Unprofitable outputs To compute it, only an input spending from the analyzed output is used

  3. Unprofitable outputs To compute it, only an input spending from the analyzed output is used is_unprofitable ( 𝔭𝔳𝔲 ) = { 1, 𝔭𝔳𝔲 v < 𝔤 ⋅ 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s / α 0, otherwise

  4. Unprofitable outputs To compute it, only an input spending from the analyzed output is used is_unprofitable ( 𝔭𝔳𝔲 ) = { 1, 𝔭𝔳𝔲 v < 𝔤 ⋅ 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s / α 0, otherwise is the predicted size of the input that will spend output 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s 𝔭𝔳𝔲

  5. Unprofitable outputs To compute it, only an input spending from the analyzed output is used is_unprofitable ( 𝔭𝔳𝔲 ) = { 1, 𝔭𝔳𝔲 v < 𝔤 ⋅ 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s / α 0, otherwise is the predicted size of the input that will spend output 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s 𝔭𝔳𝔲 and is 4 for SegWit outputs, and 1 otherwise α

  6. Unprofitable outputs To compute it, only an input spending from the analyzed output is used is_unprofitable ( 𝔭𝔳𝔲 ) = { 1, 𝔭𝔳𝔲 v < 𝔤 ⋅ 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s / α 0, otherwise is the predicted size of the input that will spend output 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s 𝔭𝔳𝔲 and is 4 for SegWit outputs, and 1 otherwise α

  7. Unprofitable outputs To compute it, only an input spending from the analyzed output is used We need a way of is_unprofitable ( 𝔭𝔳𝔲 ) = { 1, 𝔭𝔳𝔲 v < 𝔤 ⋅ 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s / α computing the input size 0, otherwise is the predicted size of the input that will spend output 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s 𝔭𝔳𝔲 and is 4 for SegWit outputs, and 1 otherwise α

  8. Computing the inputs size

  9. Computing the inputs size 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s = fixed _ size + variable _ size

  10. Computing the inputs size 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s = fixed _ size + variable _ size version #inputs #outputs nLockTime 4-byte var size var size 4-byte prev_tx_id prev_out_index scriptSig length scriptSig nSequence var size 32-byte 4-byte var size 4-byte inputs value scriptPubKey length scriptPubKey 8-byte var size var size outputs

  11. Computing the inputs size 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s = fixed _ size + variable _ size fixed _ size = outpoint + nSequence = 40 bytes version #inputs #outputs nLockTime 4-byte var size var size 4-byte prev_tx_id prev_out_index scriptSig length scriptSig nSequence var size 32-byte 4-byte var size 4-byte inputs value scriptPubKey length scriptPubKey 8-byte var size var size outputs

  12. Computing the inputs size 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s = fixed _ size + variable _ size fixed _ size = outpoint + nSequence = 40 bytes version #inputs #outputs nLockTime 4-byte var size var size 4-byte prev_tx_id prev_out_index scriptSig length scriptSig nSequence var size 32-byte 4-byte var size 4-byte inputs value scriptPubKey length scriptPubKey 8-byte var size var size outputs

  13. Computing the inputs size 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s = fixed _ size + variable _ size fixed _ size = outpoint + nSequence = 40 bytes variable _ size = scriptSig _ len + scriptSig version #inputs #outputs nLockTime 4-byte var size var size 4-byte prev_tx_id prev_out_index scriptSig length scriptSig nSequence var size 32-byte 4-byte var size 4-byte inputs value scriptPubKey length scriptPubKey 8-byte var size var size outputs

  14. Computing the inputs size 𝔮𝔰𝔣𝔢 _ 𝔧𝔬 s = fixed _ size + variable _ size fixed _ size = outpoint + nSequence = 40 bytes variable _ size = scriptSig _ len + scriptSig version #inputs #outputs nLockTime 4-byte var size var size 4-byte prev_tx_id prev_out_index scriptSig length scriptSig nSequence var size 32-byte 4-byte var size 4-byte Depends on the UTXO type inputs value scriptPubKey length scriptPubKey 8-byte var size var size outputs

  15. Variable size (non-SegWit)

  16. Variable size (non-SegWit) - Pay-to-PubKey (P2PK) outputs:

  17. Variable size (non-SegWit) - Pay-to-PubKey (P2PK) outputs: - PUSH sig (1 byte) + sig (71-73 bytes)

  18. Variable size (non-SegWit) - Pay-to-PubKey (P2PK) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) - Pay-to-PubKeyHash (P2PKH) outputs:

  19. Variable size (non-SegWit) - Pay-to-PubKey (P2PK) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) - Pay-to-PubKeyHash (P2PKH) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) + PUSH pk (1 byte) + pk (33-65 bytes)

  20. Variable size (non-SegWit) - Pay-to-PubKey (P2PK) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) - Pay-to-PubKeyHash (P2PKH) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) + PUSH pk (1 byte) + pk (33-65 bytes) - Pay-to-multisig (P2MS) outputs:

  21. Variable size (non-SegWit) - Pay-to-PubKey (P2PK) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) - Pay-to-PubKeyHash (P2PKH) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) + PUSH pk (1 byte) + pk (33-65 bytes) - Pay-to-multisig (P2MS) outputs: - OP_0 (1 byte) + [PUSH sig (1 byte) + sig (71-73 bytes)] * req_sigs (1-20)

  22. Variable size (non-SegWit) - Pay-to-PubKey (P2PK) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) - Pay-to-PubKeyHash (P2PKH) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) + PUSH pk (1 byte) + pk (33-65 bytes) - Pay-to-multisig (P2MS) outputs: - OP_0 (1 byte) + [PUSH sig (1 byte) + sig (71-73 bytes)] * req_sigs (1-20) - Pay-to-ScriptHash (P2SH) outputs:

  23. Variable size (non-SegWit) - Pay-to-PubKey (P2PK) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) - Pay-to-PubKeyHash (P2PKH) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) + PUSH pk (1 byte) + pk (33-65 bytes) - Pay-to-multisig (P2MS) outputs: - OP_0 (1 byte) + [PUSH sig (1 byte) + sig (71-73 bytes)] * req_sigs (1-20) - Pay-to-ScriptHash (P2SH) outputs: - ∅

  24. Variable size (SegWit)

  25. Variable size (SegWit) - Pay-to-Witness-Public-Key-Hash (P2WPKH) outputs:

  26. Variable size (SegWit) - Pay-to-Witness-Public-Key-Hash (P2WPKH) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) + PUSH pk (1 byte) + pk (33 bytes)

  27. Variable size (SegWit) - Pay-to-Witness-Public-Key-Hash (P2WPKH) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) + PUSH pk (1 byte) + pk (33 bytes) - Pay-to-Witnes-ScriptHash (P2WSH) outputs:

  28. Variable size (SegWit) - Pay-to-Witness-Public-Key-Hash (P2WPKH) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) + PUSH pk (1 byte) + pk (33 bytes) - Pay-to-Witnes-ScriptHash (P2WSH) outputs: ∅ -

  29. Variable size (SegWit) - Pay-to-Witness-Public-Key-Hash (P2WPKH) outputs: - PUSH sig (1 byte) + sig (71-73 bytes) + PUSH pk (1 byte) + pk (33 bytes) - Pay-to-Witnes-ScriptHash (P2WSH) outputs: ∅ - Witness scripts discounted = 1/4 α

  30. Two metrics for non-profitable

  31. Two metrics for non-profitable Lower bound (unprofitable_low): Takes into account the minimum size of the input -

Recommend


More recommend