Bitcoin Forum
May 24, 2024, 05:48:12 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 »
381  Bitcoin / Development & Technical Discussion / Re: How do you know how much transaction fee to deduct before sending the payment? on: October 26, 2013, 11:32:17 PM
Thanks, I've raised the transaction fee to 0.0005, but now I'm starting seeing this kind of 0.0015 transaction fees which I'm eating up most of it. it seems quite expensive.

https://blockchain.info/tx/8dc313847cb52e4ea11022341314180f5080f870d617c05a49ea5b6bc7772094

how do I lower these wallet fragmentation to reduce fees?

You can't.

To be exact, once a transaction output is created, spending it under any circumstance will take some amount of data, about ~130 bytes IIRC. Fees for transactions are paid per byte of data; it has nothing to do with how much the transaction is worth for the most part. (some miners will mine high-value transactions for free, but there is a lot of demand for those "freebies", and miners lose a small amount of money by doing this)

What you need to do is stop making so many transaction outputs. You should be charging the fees for each withdraw or deposit separately, or just give your customers minimum withdraw and deposit amounts.

You can also use an off-chain transaction service like inputs.io to skip blockchain fees entirely.
382  Bitcoin / Development & Technical Discussion / Re: Creating Bitcoin passports using sacrifices on: October 26, 2013, 11:13:39 AM
It's only real disadvantages is the need to ensure the signatures on the published sacrificial tx are valid, a potentially tricky bit of code, the fact that the initial announcement tx is (currently) non-standard, and the need to write a blockchain watching bot to recognize the sacrificial txs and broadcast them. (or add them to the local mempool and try to mine them yourself) I just don't see those three issues as major problems, and I'd much rather see your passports use the same system as fidelity bonded coin transfer services and whatever else people come up with so efforts can be focused on getting one solid system rather than a couple of incomplete ones.

Could the new addition of relaying OP_RETURN data txout as provably prune-able (https://github.com/bitcoin/bitcoin/pull/2738) help with passports in some way?

As far as I get it, the main problems are still the fact that miners can mine their own sacrifices, and hence the risk needs to be mitigated somehow, orphans, and somehow maintaining a blacklist?

Huh?

There are two main ways of making provable sacrifices that make sense:

1) Create a txout with a scriptPubKey that can't be spent that has a non-zero value.

2) Use the the announce/commit sacrifice protocol to ensure all miners have an equal chance.

2.1) Create a anyone-can-spend coinbase txout. (can't be spent for 100 blocks, so again, all miners have an equal chance)

2.2) In the future add an OP_VERIFY_LOCKTIME or similar to make a specific txout unspendable for some amount of time.


That miners can mine their own fee sacrifices makes the whole fee sacrifice thing a horrible, horrible idea and a complete non-starter. It'd dead easy to round up enough mining power to create any single-tx fee sacrifice you want in a reasonable amount of time, and of course you can always turn that into a service. No-one who knew what they were talking about was seriously proposing that idea.

As for #1: it's dead easy to create all kinds of scriptPubKeys that you can prove can never be spent. Previously people thought UTXO bloat was an issue, but right now I'm quite convinced UTXO size isn't a big deal due to TXO commitments. (though having invented them, I might be a bit biased!)

Annoyingly only 80 bytes are allowed in a standard OP_RETURN <data> txout, which makes announce/commit sacrifices hard to pull off, but then again they aren't as trustworthy as spend-to-unspendable - for now I don't think we want to use them. Better to eventually add OP_VERIFY_LOCKTIME and lock the coins involved for fairly long amounts of time, months to years.
383  Bitcoin / Development & Technical Discussion / Re: Invoices/Payments/Receipts proposal discussion on: October 26, 2013, 03:23:04 AM
And forget courts— though perhaps someday it might matter in those too— it's also about making the case in the court of public opinion. Certainly plenty of people have made fraudulent scam complaints (against business competitors or just for fun), strong evidence for a contract protects both parties and the public in general.

Real-world example: piuk told me that blockchain.info was moving to CoinJoin transactions for their send-shared service so that there would be transactions in the blockchain that could be used to help stop people from fraudulently claiming the service never forwarded their coins. (they don't keep any logs after all)

With the payment protocol they could have just gave the customer a signed receipt.
384  Bitcoin / Development & Technical Discussion / Re: Invoices/Payments/Receipts proposal discussion on: October 25, 2013, 10:56:05 PM
Why trust CAs when you already have the most authoritative CA in the world: the blockchain

Please go and implement the code to turn the blockchain into a certificate authority, get Bitcoin-using businesses and people to use it as their primary identity, the one users use to also secure all other communications with those businesses and people, and get back to us so we can add it to the payment protocol specification.

Of course, that's already been done, Namecoin, but no-one uses it.
385  Bitcoin / Development & Technical Discussion / Re: Invoices/Payments/Receipts proposal discussion on: October 24, 2013, 11:27:17 AM
Where do you think Gavin's salary comes from?

There is a strong business case, he's coming up with a decent solution for it, and because his paycheck comes from the foundation rather than a specific company he can come up with a solution that can be used by everyone in the community and doesn't privilege any particular player. (except certificate authorities, initially, but the payment protocol is pluggable and more decentralized PKI systems can be easily added later as they are developed)

The payment protocol is a pet project of Gavin, that will be useful just like everything he makes, but has not much to do with the core of Bitcoin that should rather be hardened and standardized as it was originally postulated to be the purpose of the foundation, that pays his salary

There's plenty of very intelligent people working on understanding and improving Bitcoin's core technologies and resistance to attack. What we're lacking most is people doing the ugly and boring work, and the payment protocol definitely fits that description. Heck for me personally even testing and auditing, at least for cool stuff like security and consensus threatening bugs, is way more interesting than the payment protocol.

Anyway, Bitcoin is brand new computer science and cryptography and you really don't want a single person being "assigned" to hardening it and refining the design of it. No one person is smart enough or has the breadth of experience to do that, but from the sounds of it the Foundation doesn't have the money to hire the teams of researchers that you'd really need. So they're doing a good job focusing their efforts on what they can do, and letting the community handle the rest.
386  Bitcoin / Development & Technical Discussion / Re: Smarter transaction fees will be implemented in bitcoin-qt 0.9 on: October 24, 2013, 11:06:06 AM
It's not very well thought out.

The main problem is it calculates fees based purely on blockchain data, so if miners ever accept transactions for reasons other than fees, or because of some contract to mine transactions for someone else, the estimates get pushed down and your transactions will get stuck. If a transaction does get stuck, there's nothing you can do about it other than wait - no different from now.

There are already miners with such contracts, Eligius for example, and the practice is likely to become more widespread in the future because the payment protocol is designed to allow the shifting of the burden of mining a transaction to the merchant. The only way the merchant can get a transaction confirmed if the customer put a too-low fee is to either respend it, making use of Luke-Jr's child-pays-for-parent code, (not yet included in the reference client) or by using a out-of-band transaction mining contract. The latter is cheaper because you don't have to pay for a wasteful second transaction.

The other issue is that fee estimation can only be done by full clients; the SPV clients that more and more people are using don't have the blockchain data or mempool so they can't make good fee estimates. Gavin's solution is to make full nodes provide SPV clients with estimation services, but there's no way for the client to know if the node is lying - it gives miners incentives to setup lots of nodes that lie about fees, saying they are higher than they really are, or griefers incentives to do the opposite and get people's transactions stuck. Bitcoin is supposed to be as zero-trust as possible...


There are better solutions, the main one is transaction replacement. Basically if your first transaction isn't getting mined, you broadcast a second one that spends at least one of the same inputs (so both can't be mined at once) and pays every output that the first did, plus another change output. (so zeroconf transactions are still "safe") This would work best if combined with proof-of-propagation, which gives you cryptographic proof that your transaction actually got to miners, although that doesn't have to be implemented immediately.

The main disadvantage with transaction replacement is that it will confuse some wallet software, but that same wallet software can get confused by accidental double-spends, transaction malleability, etc. We're better off if people in the ecosystem write robust software frankly rather than making assumptions that aren't actually true.

Interestingly part of Gavins proposal is to make transactions expire from mempool's relatively quickly, and in that case then yeah, just like in replacement the wallet would rebroadcast a different version with a higher fee! So you still need to implement changing transactions, and you also still need to fix wallets so they handle replacements. Only in his version you have to wait until the transaction expires, which is problematic because you've got stuff like misguided people rebroadcasting transactions that they don't own, preventing the expiration from happening. (making expiration permanent is ugly too - what if you're trying to get a transaction paying you mined, and can't change it?)

Fee estimation with replacement is fine though, as it lets you replace transactions in the event that the estimate was too low. This helps remove some of the incentive for griefers to play games lying to SPV clients, and it lets people be more aggressive in their bargaining with miners by allowing people willing to wait a little bit the ability to make an initial low-ball bid, and raise it if needed.


tl;dr: Why would you want to be at an auction for something you needed where you got exactly one chance and one chance only to make a bid? There's nothing wrong with making an initial estimate for your first bid to save time, but the bottom line is you're going to be able to get a better deal if you can make a low-ball bid first, raising your bid only if required.
387  Economy / Speculation / Re: Where are the coins for Winkelvoss Trust & 2nd Market Bitcoin Investment Fund? on: October 24, 2013, 04:31:20 AM
Recent history is littered with worthless derivatives and financial shenanigans.  Bitcoin promises a solution but ...  Winklevoss trust and Second Market Bitcoin Investment Fund promise safety and security but where are the coins?  None of their paperwork seem to show it.  If anyone has a public address for their coins please post it.  Otherwise these "Trusts" are nothing more then empty paper.

FWIW There's a number of cryptographic techniques such as merkle sum trees and pay-to-contract that you can use with crypto-currencies to make it easy for anyone holding Bitcoin's on behalf of someone else to prove to their owners that the account balances are 100% backed by actual Bitcoins.

If the Winklevoss fund or any similar venture wants to use these technologies I'd be happy to discuss the matter further with them. This kind of proof could be a strong competitive advantage over competitors that don't have it; customers should demand cryptographic proof that each and every balance is backed 100% by actual Bitcoins.
388  Bitcoin / Development & Technical Discussion / Re: Invoices/Payments/Receipts proposal discussion on: October 23, 2013, 10:19:48 PM
Most of the devs I know have a habit: They must do something every day  Wink
Payment protocol stuff was a business demanded feature, intended to address some of the problems that have cropped up with Bitcoin URLs. Its certainly not something sexy or exciting to work on.

If it were business demand then there would be a business case and a solution for it.

Where do you think Gavin's salary comes from?

There is a strong business case, he's coming up with a decent solution for it, and because his paycheck comes from the foundation rather than a specific company he can come up with a solution that can be used by everyone in the community and doesn't privilege any particular player. (except certificate authorities, initially, but the payment protocol is pluggable and more decentralized PKI systems can be easily added later as they are developed)
389  Alternate cryptocurrencies / Altcoin Discussion / Re: MasterCoin: New Protocol Layer Starting From “The Exodus Address” on: October 23, 2013, 01:45:21 AM
Say for instance you wanted to do box office futures on Colored Coin, how would you do it in a completely decentralized manner? You say it's possible so please describe?

It's impossible to do box office futures in a completely decentralized manner because a computer program can't determine what a movies sales were - only a trusted human can do that. (well, you can use web-of-trust systems w/ reputations, but have fun with that...)

Once you do have that trusted human, they can take actions - like redeeming colored coins on demand for bitcoins - that make the colored coins valuable. But fundamentally there are some things math can't compute.
390  Alternate cryptocurrencies / Marketplace (Altcoins) / Re: 300 BTC Coding Contest: Distributed Exchange (MasterCoin Developer Thread) on: October 22, 2013, 08:40:57 PM
What about older multisig tx which are already on the blockchain?
The options I see are:
1. Parse the using the old method until some block height, and starting that height using the new method.
2. Ignore all old multisig tx - treat them as invalid.
3. Treat both old multisig method and new multisig method as valid tx.

I think (hope) that nobody transferred any major amount of money that way yet, at least, not to a different person than themselves. If somebody did transfer a bunch of money that way in good faith, we should try to support it . . .

Suggestion: put your protocol documentation in a git repo along with a reference to the git commit hashes of one or more implementations of the protocol. If a new type of transaction is sufficiently well defined to be something that should be Mastercoin "officially", PGP sign a statement saying so and saying on what block # this takes effect.

The PGP isn't really the important thing FWIW, it's having a solid definition of what's what and making that public.

Also you guys really need to think through out the Mastercoin equiv of a soft-fork would work... killerstorm has a very good point re: that.
391  Bitcoin / Development & Technical Discussion / Re: Invoices/Payments/Receipts proposal discussion on: October 22, 2013, 05:49:39 PM
@gmaxwell, @Gavin Andresen, @Mike Hearn

I have run out of time and Brain-CPU cycles that can be used for this particular discussion, but judging by preliminary analysis of the topic I will (logically) assume you are right.

However i will be closely watching the run of events - If you were wrong, the truth will come out eventually.

Indeed, why bits of the truth will come out every time those sneaky devs do a git push!  Roll Eyes
392  Bitcoin / Development & Technical Discussion / Re: Testnet script which does not follow basic chunking rules... on: October 21, 2013, 06:09:15 PM
Does the SigOp count check not parse through scriptPubKey?

Yes, but CScript::GetSigOpCount() simply quits counting if it runs into an invalid script.

Would be good to add more test-cases for that though... It's also kinda an odd decision by satoshi to count scriptPubKey sigops, as they aren't executed when a block is processed.
393  Bitcoin / Development & Technical Discussion / Re: Reducing UTXO: users send parent transactions with their merkle branches on: October 21, 2013, 05:04:48 PM
But is that what was actually proposed? It didn't seem like it:

Quote
3. Full node does not need to lookup UTXO to check if the parents are valid. This part of UTXO is already provided by the sender.

But the second part of the sentence is not implied by any previous steps.

My comment was just about the first post, not about alternative schemes.

I'm talking about my TXO commitments idea, which is what I replied to the OP with and is what gmaxwell was talking about.
394  Alternate cryptocurrencies / Altcoin Discussion / Re: MasterCoin: New Protocol Layer Starting From “The Exodus Address” on: October 21, 2013, 04:13:16 PM
Frankly I think that's awful advice in the case of Mastercoin and similar systems, precisely because they can get away with using standard transaction to achieve their goals.

Why risk having the reference client maintainers reject your transaction standard if you don't have to?

That presumes additional checks on pubkeys are not coming down the pipe, which is also awful presumption / advice.

I was explaining earlier in this thread how to turn arbitrary data into into valid pubkeys to get around that issue.

In addition Mastercoin would be very smart to retain (encrypted) data embedding in pay-to-(script|pubkey)-hash outputs as a backup, and in addition to that, make it possible to embed them in P2SH scriptSigs.
395  Bitcoin / Development & Technical Discussion / Re: Reducing UTXO: users send parent transactions with their merkle branches on: October 21, 2013, 03:56:47 PM
I didn't comment on the proposal because I didn't understand it. Showing that inputs are in the chain does not prove they are unspent. The point of the UTXO set is to check for double spending.

Picture taking a merkle tree of some data, computing the tip, and then changing some data and recomputing - only a subset of the intermediary digests need to be updated, and you can prove that the transition between unspent and spent was correct.

Merkle mountain ranges support efficient appends and updates; when a txout is spent the tree is updated, and the updated root is what is committed in the block. Same idea as UTXO commitments, except with a merkle mountain range not only can you can do secure updates, but because it's insertion ordered you can also add new txouts without actually having any of the data in the set. (other than the tips of the trees)
396  Bitcoin / Development & Technical Discussion / Re: Reducing UTXO: users send parent transactions with their merkle branches on: October 21, 2013, 03:13:44 PM
Mike: rather than platitudes, you got any useful comments on txin proofs from a wallet-side perspective?

Besides, the whole point of MMR TXO commitments is to allow you to verify fully and efficiently without the whole UTXO set; it's the same security as if you did have the full UTXO set. What particular bandwidth vs. local storage tradeoff best suits your needs can then be up to you.

As for hard numbers, so it's log2(n)*32bytes to get to the merkle root in the block header. In reality we can probably skip the Merkle Mountain Range part of the whole scheme for txin proofs, and only provide proofs to block headers, so if we had, say, 2^16 txouts a block you'd be looking at 512 byte proofs per txin roughly, worst case. That's not bad really - a txin takes on the order of ~140 bytes anyway and the bandwidth quickly drops by just storing some of the merkle trees associated with blocks.
397  Alternate cryptocurrencies / Altcoin Discussion / Re: MasterCoin: New Protocol Layer Starting From “The Exodus Address” on: October 21, 2013, 02:52:05 PM
Note that http://eligius.st/~wizkid057/newstats/pushtxn.php will push a non-standard, fee-bearing transaction into Eligius-mined blocks.

Not anymore: Eligius won't mine anything that looks like it's storing data these days. I'd have to check with Luke, but I think the rules are currently that only IsStandard() scriptPubKey's will be mined, although P2SH scriptSigs can be non-standard.

Thus there is no requirement to fit the mold of a "standard" transaction that is relayed by most.

Typically the development process looks like
  • Design the best transaction format
  • Write software, prove it works on testnet
  • Test on mainnet through manual miner submission, like the Eligius URL above
  • Now you have a proven use case, and time has passed proving that your concept remains interesting to some user base somewhere
  • Submit a patch to bitcoin/bitcoin.git, adding that transaction as a standard transaction

Some of these steps may be done in parallel, of course.

Frankly I think that's awful advice in the case of Mastercoin and similar systems, precisely because they can get away with using standard transaction to achieve their goals.

Why risk having the reference client maintainers reject your transaction standard if you don't have to?
398  Bitcoin / Development & Technical Discussion / Re: merged mining vs side-chains (another kind of merged mining) on: October 21, 2013, 12:25:06 PM
Don't CampBX and Mpex support short selling already?

OTOH, short selling requires credit, thus trust, something hard to come by in black markets.

You could also effectively short a merge-mined system - in a trust-free decentralized manner - by using oracle betting like the system alp is working on.

"I bet Namecoin will have a hash rate of X on date Y"
399  Alternate cryptocurrencies / Altcoin Discussion / Re: MasterCoin: New Protocol Layer Starting From “The Exodus Address” on: October 21, 2013, 12:18:55 PM
Again, thanks for the additional information.  Reflecting on your suggestions for hiding the data inside a valid looking public key, playing devils advocate for a moment any approach we use must be decode-able by other mastercoin clients and thus can be decoded by any mining entity (such as a mining pool) who actively wished to identify and block mastercoin transactions regardless of the obfuscation steps we took.  Simply put, because mastercoin transactions are public that would suggest they can't be completely hidden from miners.

If mastercoin was more of a 1-to-1 kind of system then I can see the value of a steganography-like approach as no-one other than the involved parties needs to see the data.  But with a system with a public ledger like mastercoin, inherently transactions have to be decode-able by anyone - and that of course includes miners.

If that reasoning is sound, then is there value in encryption/additional obfuscation past a valid ECDSA key that looks random? 

Well, the problem is you want blocking Mastercoin to be something that has to be done explicitly, through blacklists; that's politically more difficult to do than measures that are aimed at parasitic consensus systems in general.

One issue I forgot to mention is that address re-use may be discouraged in the future - transactions that pay scriptPubKeys that have been used recently might be discouraged. That every Mastercoin transaction pays to the 1exodus address is a problem. (though it does mean you can make an SPV client for mastercoin, at least SPV at the bitcoin level)
400  Bitcoin / Development & Technical Discussion / Re: Testnet script which does not follow basic chunking rules... on: October 21, 2013, 11:46:48 AM
I was under the impression that there were some basic chunking encoding rules (except for maybe coinbase input scripts), especially since no scripts have ever broken them until recently.
So you are saying that those kind of output scripts also may occur on prodnet?

IsStandard() rules sure, but there's nothing stopping a miner from putting whatever they want in a scriptPubKey.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!