1

I am looking into completing blockchain transactions over an extremely limited data transport channel. Think even more limited than a satellite connection. The maximum payload I can send at any one time is only 256 bytes. Does anyone here think it would be possible to send a payment transaction to be registered in the blockchain within that single payload?

I'm new to blockchain, so forgive me if this is a very basic question, but I'd like to understand precisely what components need to be sent, which I believe are (coins, recipient, signature) and that's it? Could someone give me more detail as to how many bytes each of these pieces of data would be on the Bitcoin network? If you can think of any network which is more compressed/efficient I would appreciate a pointer there too.

If Bitcoin or no other chain fits within the 256 byte payload to send what it needs to, can you think of any way of making things smaller/compressed? Perhaps hashing some of those values even further in a pre-determined way through an originating application that we can then "unhash/decompress" on the other side with the same properly configured receiving application to regenerate the proper data before being submitted to the chain?

Thank you! JP

2

Depends on the number of inputs, the types of scripts the inputs are redeeming, the number of outputs, and the type of scripts that the ouputs are paying to. The absolute minimum for a transaction that might appear on chain is 60 bytes :

02000000
01
  0000000000000000000000000000000000000000000000000000000000000000
  00000000
  00
  fdffffff
01
  0100000000000000
  00
00000000

But this just an academic example. The input is redeeming a utxo where the script does not require any signatures, and the output scriptpubkey is empty. You're more likely to find a 191 byte transaction such as :

02000000
00
01
01
  0000000000000000000000000000000000000000000000000000000000000000
  00000000
  00
  fdffffff
01
  0100000000000000
  16
    00 14 ffffffffffffffffffffffffffffffffffffffff
02
  21
    020000000000000000000000000000000000000000000000000000000000000001
  47
    3044022077777777777777777777777777777777777777777777777777777777777777770220555555555555555555555555555555555555555555555555555555555555555501
00000000

Which both redeems a and also pays to a p2wpkh segwit program. Note that this one doesn't have a change output in it, which most transactions carry. A second p2wpkh output will be another 32 bytes for a total of 223 bytes. Still less than your upper bound of 256 bytes.

  • Thank you so much, will review this with others here and see what they think! – user74364 Jan 17 '18 at 23:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.