Bitcoin Forum
June 22, 2024, 08:28:17 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Development & Technical Discussion / Re: Minimum tx amount where amount = fee on: July 15, 2014, 04:03:17 PM
Thanks for your answer @DannyHamilton. And you are right, my description is rather confusing. So let me express it with an example:

For a given tx the amount to be sent is X btc. The (suggested) tx fee for this tx is Y. However, X = Y, so there's no point in sending out this tx. So my question is, does the above occur for any given value of X?

My arbitrary assumption is also that amounts smaller than X will need more fees to be sent than the actual value, I might be wrong on this one.
2  Bitcoin / Development & Technical Discussion / Minimum tx amount where amount = fee on: July 15, 2014, 01:57:08 PM
What is the absolute minimum amount which, when transferred over a tx, its value equals the tx's suggested fee? Is it the dust amount of 0.00005430 BTC? How is this value affected when that amount is the only unspent output spent in the tx and when there are more unspent outputs than just this one?
3  Bitcoin / Development & Technical Discussion / Re: signrawtransaction hex on: June 03, 2014, 09:57:03 PM
Thanks for the tips, guys. gmaxwell you are right: I though it would be rather convenient if the hex-encoded reply of signrawtransactions wouldn't contain any malleable data (which is not true, as kjj explained) so my program would use this internally as a transaction identifier (as tx id can change) so now I will follow your advice and create a hash based on the tx's outputs' address/amount information for that purpose. I will then use this hash to compare it against the one I create for all txs in a block when one of my outgoing txs gets mutated until I track it down and re-associate it internally with its new tx id.
4  Bitcoin / Development & Technical Discussion / Redeemable unspent output / multi-sigs? on: June 03, 2014, 01:54:48 PM
How can I tell if an incoming payment is redeemable by my receiving address's private key through the RPC API?

My concern is receiving a multi-sig tx which I will process in my program but then won't be able to redeem, so for now I call gettxout for every single unspent output not generated by my program and check that the "reqSigs" return parameter equals to 1. Is this the right way to do it?
5  Bitcoin / Development & Technical Discussion / Re: signrawtransaction hex on: June 03, 2014, 01:07:28 PM
Great answer, kjj.

So I suppose I have to create a custom hash over my tx's inputs which will never change no matter how my tx gets mutated.

Let's say I've sent out a tx, it got mutated and my program tries to see the original tx's progress (confirmations etc), it sees the original tx orphaned so it should start looking for its mutated version, how do I do this? Scan all txs in the recent blocks and compare their inputs with my original tx's inputs until I get a perfect match? What is the most efficient way to handle this case?
6  Bitcoin / Development & Technical Discussion / Tracking outgoing transactions / malleability attack on: June 03, 2014, 12:38:26 PM
What is the best way (in terms of security and/or resources) to track my outgoing transactions through the RPC API?

I would like to be able to track them down using their tx id and also to have a fallback mechanism for when my outgoing transaction's id changes as a result of a malleability attack.
7  Bitcoin / Development & Technical Discussion / Re: signrawtransaction hex on: June 03, 2014, 12:30:29 PM
When calling RPC signrawtransaction it returns a hex-encoded string that contains the raw tx request with its signatures.

Is this string:

  • malleable?
  • unique?

What do you mean asking "Is this string malleable?"
Transactions (not strings!) are malleable in any representation: in hex, in json or even written in human language.

What do you mean asking "Is this string unique?"
Is the string "Hello world!" unique?


I seriously don't get why you even bothered to reply to my question since you don't really know the answer and just wanna fool around with semantics and waste your time and ours.

The signrawtransaction command returns two variables:
- "hex", which is a hex-encoded string
- "complete", which is a numeric

The hex-encoded string is essentially a snapshot of the raw transaction at the moment when its inputs are being signed, so my question is, will this hex-encoded string change if the transaction gets modified by a malleability attack?
8  Bitcoin / Development & Technical Discussion / signrawtransaction hex on: June 03, 2014, 11:29:40 AM
When calling RPC signrawtransaction it returns a hex-encoded string that contains the raw tx request with its signatures.

Is this string:

  • malleable?
  • unique?
9  Bitcoin / Bitcoin Technical Support / Re: Spending own generated unconfirmed change in the v.0.9.0 era on: May 07, 2014, 10:36:47 AM
It is a bit weird that nobody has replied to this very critical question, could somebody please shed some light on this one?
10  Bitcoin / Development & Technical Discussion / listsinceblock parameter: target-confirmations on: May 04, 2014, 11:26:55 AM
listsinceblock help returns:

Quote
listsinceblock ( "blockhash" target-confirmations )

Get all transactions in blocks since block [blockhash], or all transactions if omitted

Arguments:
1. "blockhash"   (string, optional) The block hash to list transactions since
2. target-confirmations:    (numeric, optional) The confirmations required, must be 1 or more

I sent a coin to my wallet and a few seconds later I executed listsinceblock 1. My transaction was just broadcasted so it had 0 confirmations, as expected. Note the target-confirmations parameter above which must be greater than 0 no matter what.

So for my test I executed bitcoin-cli listsinceblock 0000000008eb5d53efbb39d2cb9f595e5bd567c295936de5c2282bbb8ef46cf0 1 which returned:

Quote
{
    "transactions" : [
        {
            "account" : "",
            "address" : "mzE6DJMHPghYpVg4GCurMbxSSXBfW1KCFH",
            "category" : "receive",
            "amount" : 1.00000000,
            "confirmations" : 0,
            "txid" : "917248d57293a7fd3a88aa3a26026d2e4d6a1d4eef898519b20419f2339c265c",
            "walletconflicts" : [
            ],
            "time" : 1399200157,
            "timereceived" : 1399200157
        }
    ],
    "lastblock" : "0000000004ba22e9f8cea2e843b34f7eeaa2c3b7004ddcf19bfd8af0215fc0cc"
}

Note that the above transaction has 0 confirmations, however listsinceblock is supposed to operate beyond 1 confirmations (which is weird, as I am polling listsinceblock to get new transactions that are always unconfirmed, after Gavin's tip: http://bitcoin.stackexchange.com/a/2171/11221).

What am I missing here?
11  Bitcoin / Development & Technical Discussion / Re: 1,500% transaction fee and 3,5 months to confirm? on: April 24, 2014, 03:17:45 PM
If you have lots of users making tiny payments, why not look into a "probabilistic payments" algorithm.  The idea is, instead of paying 100 satoshi, you pay 100`000 satoshi with a probability of 0.1% (some fun with crypto and proofs to be had here).  This will reduce your Bitcoin footprint (and therefore fees) 1000-fold while having negligible effect on users.


That sounds like a good approach, I'll have to check it out ASAP, thank you for bringing it up.
12  Bitcoin / Development & Technical Discussion / Re: 15% transaction fee and 3,5 months to confirm? on: April 24, 2014, 03:04:20 PM
Sorry to burst your bubble, but 100 satoshi outputs are not spendable according to the current protocol rules that miners apply. Any outputs below 5430 satoshis cost more in fees than they are worth, so a typical miner will not include such transactions in blocks.

I thought there were some miners who don't follow the rules and can include them in their blocks. Nice.. Sad
13  Bitcoin / Development & Technical Discussion / Re: 1,500% transaction fee and 3,5 months to confirm? on: April 24, 2014, 02:48:20 PM
Since there are only around 10 million outputs at the moment, I assume this is a future plan?

If so, you should look into things like payment channels.  They allow you to handle micropayments better.  This assumes that each customer makes lots of micropayments.

Yes, the service rolled out only a couple of months ago but this is the way it currently works so we need to readjust its revenue model ASAP! Thanks for your suggestions!
14  Bitcoin / Bitcoin Technical Support / Spending own generated unconfirmed change in the v.0.9.0 era on: April 24, 2014, 12:50:07 PM
Reading about spending own generated unconfirmed change some time ago I stumbled upon this reddit thread that convinced me that doing so is a really bad idea and could prove catastrophic for any business that allows it.

Now in the bitcoin core 0.9.0 release notes there are some fixes regarding the infamous malleability issue (search for text: "Transaction malleability-related fixes").

My question is:

Is it now safe to spend unconfirmed change generated by my own txs, after the 0.9.0 upgrades?
If not, what is considered to be a safe number of confirmations for this change before I can use it as an input for another tx?
15  Bitcoin / Development & Technical Discussion / 1,500% transaction fee and 3,5 months to confirm? on: April 24, 2014, 12:42:20 PM
So my service is skimming a tiny 0,001% (1/1,000) fee off every payment that gets through it. Most of the transactions are actually micro-payments so there are thousands of tiny unspent outputs accumulating in the service's wallet. I'm worried now that I will not be able to spent these outputs without having to pay a load of transaction fees and wait for eternity for this payment to clear.

The average btc value of my unspent outputs that come out of the commissions is 100 satoshis (0,000001 btc). That means that if I want to cash out 100 btc, I need to spend on average 100,000,000 of these outputs.

According to: How to calculate transaction size before sending the transaction size is: in*148 + out*34 + 10 plus or minus 'in', which makes my withdrawal equal to: 100,000,000*148 + 2*34 + 10 + 100,000,000 = 14,900,000,078 bytes = 14,9 GB ?! (am I missing something here?)

The maximum block size is 1 MB so I will need to split this transaction in more than 14,900 transactions ?!

A transaction fee of 0.0001 btc per kB is required, so I will need to spend 0,0001 * 1,000 = 0,1 btc for each of these 14,900 transactions which means I will need at least 1,490 btc (to send 100 btc), which is roughly 15 times the amount I'm trying to send!

All these 14,900 transactions will need to be included on different blocks (since they would exceed the maximum block size otherwise) and since one block is found every 10 minutes on average, I will need to wait 14,900 * 10 minutes = 149,000 minutes = 2,483 hours = 103 days = 3 months and a half ?!

Please tell me I got this all wrong. I've really freaked out.
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!