Bitcoin Forum
October 22, 2017, 04:14:08 PM *
News: Latest stable version of Bitcoin Core: 0.15.0.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: [1] 2 3 »  All
  Print  
Author Topic: Multi-signature address never receives bitcoins  (Read 4792 times)
monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 03, 2013, 03:25:44 PM
 #1

Hi guys,

So I'm experimenting with multi-signature addresses on testnet.

I've created myself a two-of-two multi-signature address for an account named "1":

Code:
bitcoind -testnet addmultisigaddress 2 ["""04E062CB0F8E305AE452C191C39D74B3E30C9E3DDDB63F8121FC14F4134825AAAD0169F1E3762CFA3BD840F1C36BD1D60F0407FD50D79B2FBA6B407CF0A6498198""","""04B735503ECF6D7D73F58A64E2EAB7DA78EB78B1CDF5F4BB8A3FFA8941EE725492E9A86AB3D3374B0729E1A74EF93A9DFCDA1527DEBBD1CB7B1ACC08166C8E1E6B"""] "1"

2NBSBcf2KfjPEEqVusmrWdmUeNHRiUTS3Li

Confirmed that the address is associated with the account:

Code:
C:\Program Files\Bitcoin\daemon>bitcoind -testnet getaddressesbyaccount 1
[
    "2NBSBcf2KfjPEEqVusmrWdmUeNHRiUTS3Li"
]

Sent a transaction to this address from another account:

Code:
C:\Program Files\Bitcoin\daemon>bitcoind -testnet sendfrom "" 2NBSBcf2KfjPEEqVusmrWdmUeNHRiUTS3Li 3.14159

9254bd323e58e58271801a54af1192bf0a5a6574c8fa032e893f8d22147c1a26

Confirmed that the transaction exists:

Code:
C:\Program Files\Bitcoin\daemon>bitcoind -testnet gettransaction 9254bd323e58e58271801a54af1192bf0a5a6574c8fa032e893f8d22147c1a26
{
    "amount" : -3.14159000,
    "fee" : 0.00000000,
    "confirmations" : 1,
    "blockhash" : "00000000008d949940f0860593d2eed0886ab07cb324b6c894753825a1535
690",
    "blockindex" : 5,
    "blocktime" : 1378220260,
    "txid" : "9254bd323e58e58271801a54af1192bf0a5a6574c8fa032e893f8d22147c1a26",

    "time" : 1378219996,
    "timereceived" : 1378219996,
    "details" : [
        {
            "account" : "",
            "address" : "2NBSBcf2KfjPEEqVusmrWdmUeNHRiUTS3Li",
            "category" : "send",
            "amount" : -3.14159000,
            "fee" : 0.00000000
        }
    ]
}

But the transaction just never arrives (yet it has been deducted from my main balance):

Code:
C:\Program Files\Bitcoin\daemon>bitcoind -testnet listaccounts 0
{
    "" : 6.85841000,
    "1" : 0.00000000,
}

Any idea what's going on here?


Cheers, Paul.
1508688848
Hero Member
*
Offline Offline

Posts: 1508688848

View Profile Personal Message (Offline)

Ignore
1508688848
Reply with quote  #2

1508688848
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 04, 2013, 09:32:15 AM
 #2

getreceivedbyaddress returns 0 as well.

Code:
C:\Program Files\Bitcoin\daemon>bitcoind -testnet getreceivedbyaddress 2NBSBcf2KfjPEEqVusmrWdmUeNHRiUTS3Li

0.00000000

Anyone?
monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 04, 2013, 04:30:31 PM
 #3

As far as I can tell, sending to a multi-sig address will only show up in your balance or at an address if *all* private keys for the multi-sig are in your wallet. This negates the whole point of multi-sig transactions.

I cannot work out how you're supposed to tell if a multi-sig address where *less than all* private keys are in your wallet has received any bitcoins, or what the balance is. It could be there is no way to tell (making this functionality extremely limited) or it could be that bitcoins simply never arrive at all.

Either way this is such a shame as multi-sig would be a nice secure way to store your bitcoins, but with this currently functionality, it's pretty much useless. :|
gmaxwell
Moderator
Legendary
*
qt
Offline Offline

Activity: 2324



View Profile
September 04, 2013, 05:06:45 PM
 #4

As far as I can tell, sending to a multi-sig address will only show up in your balance or at an address if *all* private keys for the multi-sig are in your wallet. This negates the whole point of multi-sig transactions.

Correct. It doesn't make sense to show as part of your balance coins which you have no idea if you can spend them or not.

They can still be spent, manually.

Quote
I cannot work out how you're supposed to tell if a multi-sig address where *less than all* private keys are in your wallet has received any bitcoins, or what the balance is. It could be there is no way to tell (making this functionality extremely limited) or it could be that bitcoins simply never arrive at all.

Either way this is such a shame as multi-sig would be a nice secure way to store your bitcoins, but with this currently functionality, it's pretty much useless. :|
The idea is that for now you use them manually. In the future yet undeveloped functionality would replace the private key for the other siginers in your wallet with some instructions that tells the client how it can go about getting the required signature(s).

Such signers have to exist, first, before you can worry about figuring out how to interface them... thus the start with manual use.

Bitcoin will not be compromised
monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 04, 2013, 08:44:25 PM
 #5

Correct. It doesn't make sense to show as part of your balance coins which you have no idea if you can spend them or not.

They can still be spent, manually.

Well, without being able to see the balance of an multi-sig account you completely rule out several use cases which could help secure bitcoins for merchants who are in charge of bitcoins on behalf of other users. No one can send bitcoins for you to secure if you can't tell when they've arrived.

To me it would make perfect sense to have a visible balance on a multi-sig address and not be able to spend it (without being multi-signed). That's the whole point of them in the first place.

Quote
The idea is that for now you use them manually.

But how do you even know when they've arrived at an address in order to spend them?

Cheers, Paul.
jgarzik
Legendary
*
qt
Offline Offline

Activity: 1470


View Profile
September 04, 2013, 10:27:28 PM
 #6

The tools for multisig are admittedly poor, at the moment.

Multi-sig introduces an interesting concept:  bitcoins that you might be able to spend.  Therefore, your balance only shows bitcoins when you control 100% of the private keys.

Right now, you need to take a few extra steps.  Some tools outside bitcoind exist to help with multisig, but in general, additional work is needed in this area.


Jeff Garzik, bitcoin core dev team and BitPay engineer; opinions are my own, not my employer.
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 05, 2013, 07:13:46 AM
 #7

The tools for multisig are admittedly poor, at the moment.

Multi-sig introduces an interesting concept:  bitcoins that you might be able to spend.  Therefore, your balance only shows bitcoins when you control 100% of the private keys.

Right now, you need to take a few extra steps.  Some tools outside bitcoind exist to help with multisig, but in general, additional work is needed in this area.

Even that tool you posted still suffers from the same problem: *no one can tell that bitcoins were sent to them on a multi-sig address*.

In fact, they write:

Code:
6) Send bitcoins to the multisig address.

$ ./bitcoind -testnet sendtoaddress 2MsfxrcnDNF1kHJRxXT11TnAgDvVHkEvzSd 1.5
ad39b5d53230af4784fb46720e5bc474f16a97a2fc6e85eed5fd3ef423e97885

7) Time passes.  Now, at least two parties are happy, and want
   to spend the bitcoins.

Time passes. How much time? Are they sure the coins actually arrived?

IMO, all this could be solved simply by allowing the balance to include multi-sig addresses.

Cheers, Paul.
dserrano5
Legendary
*
Offline Offline

Activity: 1848



View Profile
September 05, 2013, 12:39:38 PM
 #8

In fact, they write:

Code:
6) Send bitcoins to the multisig address.

$ ./bitcoind -testnet sendtoaddress 2MsfxrcnDNF1kHJRxXT11TnAgDvVHkEvzSd 1.5
ad39b5d53230af4784fb46720e5bc474f16a97a2fc6e85eed5fd3ef423e97885

7) Time passes.  Now, at least two parties are happy, and want
   to spend the bitcoins.

Time passes. How much time? Are they sure the coins actually arrived?

You can check whether the transaction was included in a block.

monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 05, 2013, 01:55:56 PM
 #9

In fact, they write:

Code:
6) Send bitcoins to the multisig address.

$ ./bitcoind -testnet sendtoaddress 2MsfxrcnDNF1kHJRxXT11TnAgDvVHkEvzSd 1.5
ad39b5d53230af4784fb46720e5bc474f16a97a2fc6e85eed5fd3ef423e97885

7) Time passes.  Now, at least two parties are happy, and want
   to spend the bitcoins.

Time passes. How much time? Are they sure the coins actually arrived?

You can check whether the transaction was included in a block.

You can only do that if you have the transaction ID. If someone simply sends you some bitcoins without the transaction ID, you're buggered. Smiley
kjj
Legendary
*
Offline Offline

Activity: 1302



View Profile
September 05, 2013, 02:18:12 PM
 #10

You can check whether the transaction was included in a block.

You can only do that if you have the transaction ID. If someone simply sends you some bitcoins without the transaction ID, you're buggered. Smiley

Huh

Multisig addresses are fully visible in blocks, just like regular addresses.

p2pcoin: a USB/CD/PXE p2pool miner - 1N8ZXx2cuMzqBYSK72X4DAy1UdDbZQNPLf - todo
I routinely ignore posters with paid advertising in their sigs.  You should too.
monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 05, 2013, 04:34:42 PM
 #11

Huh

Multisig addresses are fully visible in blocks, just like regular addresses.

I was talking about using the bitcoind client. Are you suggesting that bitcoin users should manually parse the blockchain to determine if their funds arrived?
jgarzik
Legendary
*
qt
Offline Offline

Activity: 1470


View Profile
September 05, 2013, 04:52:29 PM
 #12

Huh

Multisig addresses are fully visible in blocks, just like regular addresses.

I was talking about using the bitcoind client. Are you suggesting that bitcoin users should manually parse the blockchain to determine if their funds arrived?

This is a fair criticism, and no, average users cannot be expected to parse the block chain.

Average users can, however, watch a specific address on blockchain/block explorer.


Jeff Garzik, bitcoin core dev team and BitPay engineer; opinions are my own, not my employer.
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
kjj
Legendary
*
Offline Offline

Activity: 1302



View Profile
September 05, 2013, 04:58:40 PM
 #13

Huh

Multisig addresses are fully visible in blocks, just like regular addresses.

I was talking about using the bitcoind client. Are you suggesting that bitcoin users should manually parse the blockchain to determine if their funds arrived?

Multisig addresses are not useful as-is.  External tools of some sort are required.

The reference implementation could be improved to be sure, but it will never be able to be the whole infrastructure for multisig.

As jgarzik notes, there are tools available already that are suitable for infrequent multisig usage.

p2pcoin: a USB/CD/PXE p2pool miner - 1N8ZXx2cuMzqBYSK72X4DAy1UdDbZQNPLf - todo
I routinely ignore posters with paid advertising in their sigs.  You should too.
monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 05, 2013, 05:00:22 PM
 #14

This is a fair criticism, and no, average users cannot be expected to parse the block chain.

Average users can, however, watch a specific address on blockchain/block explorer.

This is true, but the primary job of bitcoind is to parse the blockchain, so having to use another parser seems... wasteful. Smiley
monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 05, 2013, 05:02:20 PM
 #15

Multisig addresses are not useful as-is.  External tools of some sort are required.

The reference implementation could be improved to be sure, but it will never be able to be the whole infrastructure for multisig.

As jgarzik notes, there are tools available already that are suitable for infrequent multisig usage.

The thing is, if bitcoind would simply include multi-sig transactions in the balance of each account, this entire problem goes away doesn't it?
kjj
Legendary
*
Offline Offline

Activity: 1302



View Profile
September 05, 2013, 05:13:56 PM
 #16

Multisig addresses are not useful as-is.  External tools of some sort are required.

The reference implementation could be improved to be sure, but it will never be able to be the whole infrastructure for multisig.

As jgarzik notes, there are tools available already that are suitable for infrequent multisig usage.

The thing is, if bitcoind would simply include multi-sig transactions in the balance of each account, this entire problem goes away doesn't it?

A tiny little part of the problem goes away, sure.  But not the whole thing.

What would be needed is a general means to monitor specific scriptPubKeys.  There has been a lot of discussion on that topic over the last few months.  Check the mailing list and IRC logs to see why it isn't a simple change to make.

p2pcoin: a USB/CD/PXE p2pool miner - 1N8ZXx2cuMzqBYSK72X4DAy1UdDbZQNPLf - todo
I routinely ignore posters with paid advertising in their sigs.  You should too.
ninjabanker
Newbie
*
Offline Offline

Activity: 13


View Profile
September 07, 2013, 01:51:44 AM
 #17

Multisig addresses are not useful as-is.  External tools of some sort are required.

The reference implementation could be improved to be sure, but it will never be able to be the whole infrastructure for multisig.
Here's is an outline of how one such external tool might work:

http://praesto.airdns.org:63853/issues/5
monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 16, 2013, 08:27:17 AM
 #18

Is it trivial for me to modify my build of bitcoind to consider multi-sig addresses in the balance calculations?

So, listsinceblock, gettransactions, listaccounts (and the rest of the commands which return transaction info) commands would consider multi-sig addresses?
jgarzik
Legendary
*
qt
Offline Offline

Activity: 1470


View Profile
September 16, 2013, 02:15:10 PM
 #19

Is it trivial for me to modify my build of bitcoind to consider multi-sig addresses in the balance calculations?

If, and only if, you control all keys involved in a multisig transaction.

Otherwise, such a transaction may be considered "partially controlled" and not really part of your "fully controlled" balance.  bitcoind cannot prove that you can spend a multisig.


Jeff Garzik, bitcoin core dev team and BitPay engineer; opinions are my own, not my employer.
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
monsterer
Legendary
*
Offline Offline

Activity: 1008


View Profile
September 17, 2013, 07:50:05 AM
 #20

If, and only if, you control all keys involved in a multisig transaction.

Otherwise, such a transaction may be considered "partially controlled" and not really part of your "fully controlled" balance.  bitcoind cannot prove that you can spend a multisig.

But this is already the case - if I have both private keys in the wallet, then the balance is displayed by bitcoind. But I'm asking whether a trivial code change would allow me to work with partially controlled multi-sig addresses?
Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!