Pages:
Author

Topic: [coinb.in] Open Source, Multi Signature, HD Wallet, SegWit/Bech32 and more! - page 14. (Read 74845 times)

newbie
Activity: 2
Merit: 0
The same thing is happening to me -   the 3-of-5 isn't working.  I had a 2-of-3 work just fine this morning, but this afternoon, there is no way to get the 3-of-5 to work.  Is coinbin not coding the transactions correctly? (Tried with blockchain.info to push too)
Is my money lost for ever??? (  Undecided Thanks coinb.in...)  I hope that is not the case...
Thanks,
-Luc

The hex encoded transaction you have given me via email appears to use non existent transaction IDs, as I've explained back to you. I don't think your money is lost, but if you could try again and note down each step you take, and the output and then contact me if it fails.
Thanks for reply. I think I know why.  When I put my RedeemScript in your area to construct the transaction, it shows me the three inputs, but the numbers are mixed up.
For example, the first one you listed from the decode transaction section is: 3fbd...120a   but is listed like this in the construct transaction section: 0a12...bd3f.
It looks like the 8 bit groupings are grouped together, but in some sort of reverse order (0a is at the start in one, and at the end in the other).
Correct me if I'm wrong, but it looks like (to me) there is an error somewhere in your code that flipped the txid's. ?
Is this a little-endian/big-endian thing?
I'm not sure why it would have worked for 2-of-3 but now for 3-of-5 it's being encoded differently?
-Luc
legendary
Activity: 1106
Merit: 1026
Could it be possible that only non compressed public keys are allowed to be added during the multisig creation?
hero member
Activity: 714
Merit: 601
The same thing is happening to me -   the 3-of-5 isn't working.  I had a 2-of-3 work just fine this morning, but this afternoon, there is no way to get the 3-of-5 to work.  Is coinbin not coding the transactions correctly? (Tried with blockchain.info to push too)
Is my money lost for ever??? (  Undecided Thanks coinb.in...)  I hope that is not the case...
Thanks,
-Luc

The hex encoded transaction you have given me via email appears to use non existent transaction IDs, as I've explained back to you. I don't think your money is lost, but if you could try again and note down each step you take, and the output and then contact me if it fails.

I finally could test succesfuly with real money.
answering my own questions: the redeem script is given when you create the multisig address.
It's quite simple!!

Have made a tutorial in french.
Will translate it in english and post here.

Thanks, glad you liked it.

Great work on this!

I've tried the service and a 2of3 worked great.
however, I tried something that I actually need right now in the form of a 6-of-10 and... no go Sad
Getting a tx rejected -22 and log error says "nonstandard transaction: scriptsig-size" which I assume relates to the 500b limit mentioned earlier in the thread.
Is there a way to make this work?
Reading around in some other discussions I saw being mentioned that even a 15 of 15 should work, so I'm a bit confused as to why 6 of 10 doesn't.

Also OutCast, on a side note, it would be really great if you could provide the non-minified bitcoinjs code (either as a download here or in the git repo) as part of the opensource approach.


Thanks! Smiley

Can you drop me a email with the details, and i'll take a look. I'm not sure right now.
newbie
Activity: 2
Merit: 0
My 3 of 5 is being rejected... The "verify script" shows all in order. Blockchain.info pushtx:
Quote
Script not of right size, expecting 2 but got 5

I couldn't use Blockchain.info's pushtx for this. *shrugs*

I just used the one on OPs website.



Coinb.in is also failing... I also just tried a 3 of 4...

3 of 4 worked fine for me... note that if you try to resubmit the same transaction it will say your txn is invalid.

My 3 of 4 just got confirmations. 3 of 5 still being rejected by both coinb.in and blockchain.info.

It might be over 500 bytes... in which case (I'm told) it won't get confirmed by anyone.

The same thing is happening to me -   the 3-of-5 isn't working.  I had a 2-of-3 work just fine this morning, but this afternoon, there is no way to get the 3-of-5 to work.  Is coinbin not coding the transactions correctly? (Tried with blockchain.info to push too)
Is my money lost for ever??? (  Undecided Thanks coinb.in...)  I hope that is not the case...
Thanks,
-Luc
newbie
Activity: 4
Merit: 0
A few remarks:

There seem to be a bug: in both "create transaction" and "verify transaction", the input transaction is unknown to blockchain. Is it normal?

Also, in the signing page, could there be a "verify" button or an automatic verify step before the transaction is signed?

I use chome in linux.
In create new transaction, when you paste the redeem script with the middle button, the script is not activated. When you add a space or any caracter (or remove a caracter), the address goes wrong.
There is no check on the redeem script integrity. This can be dangerous I think.
There should be a verify step.

In the verify tab, could you add a "sign" button for transactions, or a "create transaction" for a redeem script? This would simplify the whole process.

Thanks for reading
newbie
Activity: 4
Merit: 0
I finally could test succesfuly with real money.
answering my own questions: the redeem script is given when you create the multisig address.
It's quite simple!!

Have made a tutorial in french.
Will translate it in english and post here.
newbie
Activity: 4
Merit: 0
Hi

This is very cool.
However, I don't understand everything.

Can someone make a complete tutorial for the average user to make simple 2of3 transactions?

Some questions:
- what is a redeem script?
- what should we put in that field?
- can't there be some simplifications like predifined 2of3 addresses and transactions?
- in  the transaction, what should I use as inputs?

Sorry for so many questions.
It would be so great if it could be usable by average users!
sr. member
Activity: 469
Merit: 253
as a followup - I just tried doing a manual multisig transaction of a 6 of 10, using only compressed pub keys in the latest bitcoin core, but still getting tx rejected 22. the script is somewhat shorter than with the non-compressed, but definitely not by a huge amount.

Any ideas on how to get this to work?
I've seen people saying that with compressed pub keys even a 15 of 15 could fit within the 520b limit, so what am I missing here?

Hi, I'm guessing you're the same guy as I spoke with on reddit? the answer is still: use Eligius. 6 of 10 is not standard (exceeds 500 limit). Was there some aspect of that explanation that didn't make sense? (Unless it wasn't you, in which case, sorry).
newbie
Activity: 9
Merit: 0
as a followup - I just tried doing a manual multisig transaction of a 6 of 10, using only compressed pub keys in the latest bitcoin core, but still getting tx rejected 22. the script is somewhat shorter than with the non-compressed, but definitely not by a huge amount.

Any ideas on how to get this to work?
I've seen people saying that with compressed pub keys even a 15 of 15 could fit within the 520b limit, so what am I missing here?
newbie
Activity: 9
Merit: 0
Great work on this!

I've tried the service and a 2of3 worked great.
however, I tried something that I actually need right now in the form of a 6-of-10 and... no go Sad
Getting a tx rejected -22 and log error says "nonstandard transaction: scriptsig-size" which I assume relates to the 500b limit mentioned earlier in the thread.
Is there a way to make this work?
Reading around in some other discussions I saw being mentioned that even a 15 of 15 should work, so I'm a bit confused as to why 6 of 10 doesn't.

Also OutCast, on a side note, it would be really great if you could provide the non-minified bitcoinjs code (either as a download here or in the git repo) as part of the opensource approach.


Thanks! Smiley
sr. member
Activity: 412
Merit: 287
I don't mean to nag, but is there any sign of upcoming support for compressed keys? I think it's pretty vital, as when any party to a multisig address uses a key from bitcoind, or electrum from the next release on, will encounter the issue I had with the scriptSig reconstruction (leaving out all signatures where the key was compressed).
newbie
Activity: 2
Merit: 0
good job with this. it's very useful. i'll be sending a donation your way shortly.

is there anyway we can modify the script to bypass the requirement of being online for the transaction creation (i believe it looks up your balance)? I would like to use this offline.

Thanks!
hero member
Activity: 714
Merit: 601
Quick question.! Do I have to run my own bitcoind client on the server to be able to run this script.?

No, its not required.
hero member
Activity: 518
Merit: 500
BTC < > INR & USD
Quick question.! Do I have to run my own bitcoind client on the server to be able to run this script.?
legendary
Activity: 1498
Merit: 1000
BTW, does anyone know how to import a multi-signature wallet (which requires at least 2 out of 3 keys for basic multi signature)?

I've seen this command in the console but it seems to accept only one private key! How to specify the second, third, etc??

importprivkey [label] [rescan=true]

Anyone?

addmultisigaddress
sr. member
Activity: 408
Merit: 250
BTW, does anyone know how to import a multi-signature wallet (which requires at least 2 out of 3 keys for basic multi signature)?

I've seen this command in the console but it seems to accept only one private key! How to specify the second, third, etc??

importprivkey [label] [rescan=true]

Anyone?
sr. member
Activity: 412
Merit: 287
Any further thoughts on this? Every client that upgrades to BIP0032 will not be able to use your service, and right now, bitcoind (the only to work with P2SH) returns compressed keys and will not work with your site.

In fact I realize now why it worked before but not now. Back then I created the address with all uncompressed keys! But this is unrealistic right now.
sr. member
Activity: 412
Merit: 287

As I'm sure you are aware; signatures must be added to the 'scriptSig' in the same order the 'public keys' are found in the 'redeem script', because of this signatures aren't simply inserted to the scriptSig, they are rebuilt. The code for this is here:

Code:
var pubkeyList = scriptListPubkey(redeemScript);
var sigsList = scriptListSigs(o.script);
sigsList[countObject(sigsList)+1] = signature;
for(x in pubkeyList){
for(y in sigsList){
if(Bitcoin.ECDSA.verify(sighash, sigsList[y], pubkeyList[x])){
s.writeBytes(sigsList[y]);
}
}
}

So, I suspect when the Bitcoin.ECDSA.verify() function is called it fails to validate your signature against a public key because its the wrong kind. (i.e. its compressed when it should be uncompressed) This means its not re-added.

I'm not sure how you'd fix this exactly, but I will have a think.

Ah interesting. I didn't know they had to have a particular order. While you can't just change the public keys in the redeemScript, could scriptListPubkey() decompress public keys as they're encountered? I'm guessing elsewhere it expects them to be uncompressed too to have easy access to the full key.
hero member
Activity: 714
Merit: 601
Awesome, cheers.

I tried it again on Chrome. Trying to sign the partially signed transaction just yields a transaction with one different signature.
I tried with the unsigned transaction, and that failed too.

One thing that could be causing trouble is that I'm using one compressed keys, I notice it asks for them to be uncompressed when you're entering them? But, then again, the key I'm having trouble signed with came from Coinb.in.

Have you tried signing the transaction I pasted? I've used Coinbin before, and been telling a lot of people about it.

As I'm sure you are aware; signatures must be added to the 'scriptSig' in the same order the 'public keys' are found in the 'redeem script', because of this signatures aren't simply inserted to the scriptSig, they are rebuilt. The code for this is here:

Code:
var pubkeyList = scriptListPubkey(redeemScript);
var sigsList = scriptListSigs(o.script);
sigsList[countObject(sigsList)+1] = signature;
for(x in pubkeyList){
for(y in sigsList){
if(Bitcoin.ECDSA.verify(sighash, sigsList[y], pubkeyList[x])){
s.writeBytes(sigsList[y]);
}
}
}

So, I suspect when the Bitcoin.ECDSA.verify() function is called it fails to validate your signature against a public key because its the wrong kind. (i.e. its compressed when it should be uncompressed) This means its not re-added.

I'm not sure how you'd fix this exactly, but I will have a think.
sr. member
Activity: 412
Merit: 287
I've made a couple of tweaks to the source code which should decrease the load when attempting to sign, so let me know if your netbook handles it any better.

What version of chrome are you using? How did you get on with firefox?

My tests cases:

https://blockchain.info/tx/652724841d5feea4a80c01225577ed012bef80634e033cd1f2a33a937eeaa2fb

https://blockchain.info/tx/63093ac0911672afb041763d68edca6815952accda98b95dfec5cb96cd1ea129

Awesome, cheers.

I tried it again on Chrome. Trying to sign the partially signed transaction just yields a transaction with one different signature.
I tried with the unsigned transaction, and that failed too.

One thing that could be causing trouble is that I'm using one compressed keys, I notice it asks for them to be uncompressed when you're entering them? But, then again, the key I'm having trouble signed with came from Coinb.in.

Have you tried signing the transaction I pasted? I've used Coinbin before, and been telling a lot of people about it.
Pages:
Jump to: