LearnBitcoin

Bitcoin Dev Archive 2012

A tangent about BIP 10

1 message, 14 Jun 2012. Started by Alan Reiner.

Alan Reiner

Permalink Original thread on gnusha.org

Alan Reiner permalink original

On Thu, Jun 14, 2012 at 9:22 AM, Gavin Andresen <gavinandresen@gmail•com>wrote:

Quoted text (11 lines)
>
> I've been asked a couple of times: why doesn't signrawtx handle the
> BIP 0010 (https://en.bitcoin.it/wiki/BIP_0010) transaction format?
>
> I considered parsing/writing BIP 10 format for raw transactions, but
> decided that reading/writing BIP 10 format should happen at a higher
> level and not in the low-level RPC calls. So 'raw transactions' are
> simply hex-encoded into JSON strings, and encoding/decoding them is
> just a couple of lines of already-written-and-debugged code.
>
>

BIP 10 <https://en.bitcoin.it/wiki/BIP_0010> could use some improvement. I created it for offline and multi-sig tx but there was no reception to it because no one was using offline or multi-sig tx at the time except for Armory (which only currently implements offline tx). So I made something that fit my needs, and it has served its purpose well for me. But I also think it could be expanded and improved before there is wider adoption of it. It's a little clunky and not very rigorous.

Elements of it that I'd really like to keep:

(1) Some aspects of human-readability -- even if regular users will never look at it, it should be possible for advanced users to manually copy&paste the data around and see what's going on in the transaction and what signatures are present. I'm thinking of super-high-security situations where manual handling of such data may even be the norm. (2) Should be compact -- I took the concept of ASCII-armoring from PGP/GPG, because, for the reason above, it's much easier and cleaner to view/select when copied inline. If a random user accidentally runs across it, it will partially self-identify itself (3) Includes all previous transactions so the device can verify transaction inputs without the blockchain.

Things that could be added:

-- It needs a BIP16 script entry (this was created for vanilla multi-sig before BIP 16 was created) -- Comment lines -- Version number -- Use base58/64 encoding -- Rigorous formatting spec -- Binary representation -- A better name than "Tx Distribution Proposal"

I'll be releasing the Beta version of Armory soon, and after that, I'll probably be thinking about a multi-signature support interface. That would be a good time for me to tie in a better version of BIP 10 -- one that is compatible with other clients implementing the same thing.