Bitcoin Forum
May 25, 2024, 10:18:53 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 [118] 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 ... 800 »
2341  Bitcoin / Bitcoin Discussion / Re: Just received 1 Satoshi from this address, seems strange!! on: February 10, 2014, 08:33:08 PM
Second satoshi payment in a few minutes, scared me into moving all coins from Blockchain.info to Armory...

Do you also buy ghost insurance?  You do know addresses are public right?  

Anyone can send 1 satoshi to any address on the network (that has received a payment in the past), whenever they want and for whatever reason.
2342  Bitcoin / Development & Technical Discussion / Re: MtGox blames Bitcoin protocol problem for BTC withdrawal issue on: February 10, 2014, 08:23:15 PM
That is the point.  Custom bitcoin clients are NOT easy.  Unless you know what you are doing you probably should NOT be making a custom bitcoin client.  

As much money as MtGox has made over the last four years they could have hired someone who knew what they were doing but install hack together a client which is non compliant with the reference implementation in at least half a dozen areas (who knows how many others as the source code isn't public so we can only observe the fail from the outside).  This is the same MtGox which has no development server and just makes changes to production live so they decided getting the implementation of a mission critical component which involves the transfer of money, "close enough" was an acceptable standard.

A compliant client should not:
a) violate spam rules
b) pay less than the min mandatory fee (well a business client where users expect timely payments shouldn't)
c) send immature (less than 120 confirmations) newly generated coins
d) double spend its own "coins" (use outputs which were already spent in a prior tx)
e) use non-canonical signatures
f) rely only on tx-id as absolute proof on if a payment has been made or not

The "Gox Special" client did all of those, and who know what else.  It would be like building a jet airline by copying a photo of a jet you once saw, and being surprised when someone dies because "well it looks kinda like a jet, the engines are pointing the right way, and it has some wings and stuff".  Who possibly could imagine that slapping together some random parts so it looks like a jet wouldn't actually be a functional, safe jet?

Like cryptography, if you "roll your own" bitcoin node, you have to get it EXACTLY RIGHT.  Not kinda right, not mostly right, not hey it does sometimes push tx the network doesn't reject but absolutely right down to every single detail.   Most entities (companies and individuals) should not attempt that.  They should build off existing proven clients.
2343  Economy / Speculation / Re: Will any long term holders admit to cashing out or wanting to cash out? on: February 10, 2014, 08:18:17 PM
No dude, no need to cash out. The Bitcoin economy will grow in the coming years where u'll realize that u'll never need to cash out to fiat ever.

I already HATE the fact that I have to wait sometimes up to and over an hour for a Bitcoin transaction to complete. Litecoin on the other hand is much faster, and Quark even quicker still. Bitcoin being the first of its kind, has the advantage of a massive early lead in the market, but perhaps there are crudities in it's design which in the long run will prove untenable.

You don't have to wait an hour.   It is that some merchants require 6 confirmations for trivial amounts. The risk of being double spent on a tx with say 3 confirmations is essentially zero, yet maybe cling to the 6 confirm rule like it was passed down to Satoshi from God on a pair of clay tablets. If they require that for Bitcoin what makes you think it would be any different with another blockchain?

This would be like a store asking to for a DNA sample, retina scan, getting the receipt notarized, and the cashier taking a photo of you while you hold the credit card, your ID, and a note saying I approve this transaction, along with the current day's newspaper just to be safe every time you buy a candybar with a credit card.  Would you then say "credit cards are too hard to use" or would you say "this store is stupid I am going to 7-11"?





2344  Bitcoin / Development & Technical Discussion / Re: MtGox: Easy fix #2. Unique change addresses. on: February 10, 2014, 06:32:38 PM
I think the larger issue is that building a "wallet" isn't that hard, but building a "node" actually is.  The problem is that the existing reference client combines these distinct entities into a single unified codebase.   bitcoind is a node, wallet server, and RPC client all combined into a single unified codebase.   

This makes extending the reference client in any sustainable way nearly impossible.  For example an enterprise solution might want to use a true relational database to store, query, and update payment statuses.  There is no good way to extend the current reference client to do that.  So you have two "choices", you can use bitcoind and RPC calls but throughput is very low, or you can build a new custom node implementation with all the risks that entails.  Neither is a particularly good solution.

What would be better (I have said this before but I don't think it got any traction) would be to refactor the existing client into separate projects.

Instead of a single project it would consist of multiple projects:
Bitcoin Core - A library which handle the low level functionality of a node.
Bitcoin Node - A reference implementation of the core library which only implements the functionality of a node (think bitcoind minus the rpc client & no wallet)
Bitcoin Wallet - An implementation of a wallet which communicates via a fast, low latency protocol with bitcoin node.

This would give developers options to extend "bitcoind" to custom applications. 

The safest and easiest option would be to design a custom wallet which meets the needs of an enterprise that communicates with the reference bitcoin Node.

More ambitious projects could push lower in the project stack.  Take Bitcoin Armory for example.  Currently it requires an install of "Bitcoin QT" which it then doesn't use for anything but a node implementation.  Initially that could be replaced with Bitcoin Node and likely over time Armory could just make calls directly to bitcoin core.

When developers ask questions about extending Bitcoin they could be steared away from making changes to bitcoin core library directly.

In case this isn't clear let me give you an example.  Take OpenSSL.  It is a library.  People import that library into a variety of projects.  Consumers of that library don't modify the library directly, they extend it.  Now imagine instead if OpenSSL wasn't a library but instead an entire webserver implementing openssl.  So the only option for bitcoin to use it would be either building an installing the entire uneeded server and then passing requests between bitcoin client and the openssl webserver or hacking around in the open ssl source code hoping you don't make an implementation bug.  Both "solutions" would suck.   That is kinda where bitcoin is right now. 
2345  Bitcoin / Development & Technical Discussion / Re: MtGox: Easy fix #2. Unique change addresses. on: February 10, 2014, 06:22:18 PM
But if the attacker makes a payment to his own change address, he just confirmed his own withdrawal. Unless you're saying a 3rd party attacker would be doing it to screw with other's transactions with no personal gain.

Ah yeah your right. Not sure what I was thinking.  Still I think any custom implementation is best served by emulating the bitcoind behavior as closely as possible.  I would recommend checking inputs and output but your solution is far better than what MtGox did.




2346  Bitcoin / Development & Technical Discussion / Re: MtGox: Easy fix #2. Unique change addresses. on: February 10, 2014, 06:07:49 PM
Second fix I've come up with for you in the past hour of being awake (spent the first 30 mins of it freaking out after seeing btc-e price too). Use a unique change address for each withdrawal. Makes it easy for you to know if a withdrawal went though

if (deposit to change address)
{
withdraw succeeded
}
else
{
reissue transaction
}

That could be tricked by the attacker making a payment to the change address if the amount of the change is small relative to the amount of the payment.  There is nothing wrong with using tx id for record keeping just understand tx id can be changed.  It is very rare and it requires a deliberate act (tx hashes aren't just being randomly changed by the thousands as the propagate the network).

When a new block is received:

For all unconfirmed transactions:
If the block contains a tx with a matching hash, the tx is now confirmed. 
      Update internal records and set number of confirmations to one.

If the block contains a tx with the same inputs & outputs but has a different tx hash.
      Update internal records and set the tx hash to the new hash value and set number of confirmations to one.

For all confirmed transactions: 
If the number of recorded confirmations in internal records is less than the # your business requires (i.e. <6) check that the new block extends the chain containing the block containing the tx
     Update number of confirmations to be the difference in block height.

2347  Bitcoin / Bitcoin Discussion / Re: Time for MtGox to modify their front page? on: February 10, 2014, 06:03:18 PM
Technically it is still correct.  You can quickly and securely trade.  It is very secure because you can never withdraw the dollars or bitcoins.
2348  Bitcoin / Bitcoin Discussion / Re: Selfish Bitcoin holders. We are now the evil greedy bankers of the future on: February 10, 2014, 06:02:25 PM
How about not over reaching and attributing the lack of success to gready "holders"?  Plenty of companies have sold plenty of goods for Bitcoins.  The same goes to charities.   Take a look at Sean's Outpost.

The fact that you have raised exactly zero speaks more to your venture.  I never donated because the proposal was light on details and I doubted your ability to pull it off.  At this point your rant against evil greedy bitcoin holders ... well my interest is exactly 0.
2349  Bitcoin / Development & Technical Discussion / Re: MtGox blames Bitcoin protocol problem for BTC withdrawal issue on: February 10, 2014, 05:57:15 PM
I was wondering something about this issue.. Would a coin with a 30 minute block interval be more susceptible to this problem?

No.  This has nothing to do with the block interval.
2350  Bitcoin / Development & Technical Discussion / Re: MtGox blames Bitcoin protocol problem for BTC withdrawal issue on: February 10, 2014, 05:38:56 PM
If the most widespread implementation does it one way, then it becomes standard.

Ok then the standard is that tx hashes are mutable and clients need to account for that.  Glad you agree. 
2351  Bitcoin / Development & Technical Discussion / Re: MtGox blames Bitcoin protocol problem for BTC withdrawal issue on: February 10, 2014, 05:08:46 PM
And anyway, this is a good opportunity to improve things, assuming the devs act on it. Otherwise, it'll just generate bad press.

MtGox will continue to generate bad press as long as they remain incompetent and then lie with inflammatory language in order to obfuscate that fact.  Either they will become competent, the exchange will get sold to people who are, or they will go out of business.  There is nothing for the developers to change at this point.  The protocol isn't going to be hard forked due to the incompetence of one exchange.  The reference client handles this fine.

If you make a payment with the reference client and the tx ends up in the blockchain but with a mutated tx hash what do you think the reference client does?
a) continue to report the tx as unconfirmed so users will think they need to make a second payment
OR
b) detect the modified version of the tx (when it scans blocks for new txs anyways) and modify the client's records so the tx shows the proper confirmations and the new modified tx hash?

Hint the answer is B

In other words the reference client handles this issue properly.  MtGox hacked together code does not (along with at least 4 other errors in processing txs).  MtGox also tries to spend immature newly mined coins.  That is another obviously wrong thing to do, No other client does that, The protocol doesn't allow that.  Should the protocol also be changed to allow the spending of immature coins so MtGox broken client will be not as broken?   This isn't a protocol issue, it is a client issue.  The client should handle this condition.  Most clients do, the "Gox Custom v0" ended up goxxing the exchange because it doesn't.

If the HTML 5 standard has a tag <x> which requires browsers to do X and they all do X except one browser lets say Internet Explorer does Y what is the solution?
a) update the standard and force all other compliant browsers to do Y when they encounter and <x>.
OR
b) demand the broken browser update their implementation so that when it encounters an <x> tag it does X not Y.

2352  Bitcoin / Development & Technical Discussion / Re: MtGox blames Bitcoin protocol problem for BTC withdrawal issue on: February 10, 2014, 04:55:39 PM
Solution: do not re-use addresses. Send all change to another address, and track spends on the blockchain using the sending address...  No chance of duplicated tracking data (the sending address basically becomes your tx hash).  voila. No problem here other then MtGox incompetance.  Demanding a change to the core protocol is ridiculous.
You mean spam the solution is to spam the blockchain with transactions to credit the one-time addresses used only for tracking purposes?

Please learn how Bitcoin works.

All txs have change (except in the edge case that the output exactly matches the inputs).  Sending the change back to the same address, or sending it to a new address doesn't have any effect on the size of the blockchain or UXTO.
2353  Bitcoin / Development & Technical Discussion / Re: MtGox blames Bitcoin protocol problem for BTC withdrawal issue on: February 10, 2014, 04:44:50 PM
This.  Other exchanges, merchants, and service providers have dealt with this for years.

Urgh, actually I think most of them don't.

All services that provide you with an unconfirmed transaction ID right at withdrawal times are likely to be vulnerable from the same MtGox issue in one form or another.

IMHO they were just too puny for anyone to have bothered, we'll see sinkers and floaters in the next weeks.

Not really.

The first thing to point out is that if you are competent very few of your txs should ever end up dropped from the network.  MtGox had thousands of them.  They had not one problem but at least 4
a) double spending previously spent coins = invalid tx so nodes dropped it.
b) spending immature coins = invalid tx so nodes dropped it (although these would eventually get through after 120 blocks).
c) paying insufficient fees for relay (not following the fee rules in the reference client so nodes running on those rules would drop the tx instead of relaying them).
d) using non canonical signing two years after the issue was reported and modified in the reference client.

This changed what normally is an incredibly rare event (tx not propagating the network) to one that was widespread and affecting innocent users.  Had this giant cluster fuck of layered incompetency not happened the actions of any scammer would be more obvious.  If you only have a handful of users reporting they didn't get paid it is a little more obvious when 20% to 30% of all your withdraws across all users are failing.

A small exchange doesn't need an automated system to deal with tx mutability.  We don't. That is because 99.9%+ of the tx will never be mutated and there are no false positives.  There is nothing wrong with using the tx id as long as you don't rely on it as your first, last, and only method of accounting.   Mutability doesn't happen by accident.  

IF a user reports they didn't get paid and IF the tx hash is not in the blockchain then you MANUALLY flag the account and look for a tx which has the same inputs and outputs.

If you don't have that laundry list of problems above going on this should be a VERY VERY RARE EVENT and one that likely warrants manual attention anyways.  Sure a super duper automated system would be great and if you have the funds to build, extensively test, and deploy it go ahead but this isn't a routine occurrence for a properly running node.  So if your backend can process 99.9% of tx in an automated fashion and flags 1 in 1000 (and honestly probably more like 1 in 100,000) for manual review well guess what?  That is called doing business.  Most automated systems have some event which are logged for manual review.

The other thing to keep in mind is that most likely, the only reason it happened is because the user who reports he "didn't get paid", modified the tx intentionally so he can try to collect a second payment.  That means putting a man in the loop is a good idea even if you do have a super duper automated handle every edge case back end processor.  
2354  Bitcoin / Development & Technical Discussion / Re: MtGox blames Bitcoin protocol problem for BTC withdrawal issue on: February 10, 2014, 04:36:23 PM
Store the original transaction id, and (amount, timestamp, dest address).  Assign "in" and "out" bitcoin addresses to each account.
...

While that would work, you don't even need to do that much.

You don't need unique out addresses because even if you pay two (or 10,000) users from the same address, Bitcoin doesn't work on the concept of addresses and balances.  Each user will have unique inputs for their tx.   That is how Bitcoin works, it is how it has always worked, and it is how it always will work. 

You simply record the raw tx.  Thats it.  Nothing special.  Technically you don't even need to do that because the client/wallet already does it but for customer support it likely is easier to have that information available outside of the wallet.

Now for 99.999% of your transactions (if you are competent and not doing things like double spending your own coins, paying insufficient fees on masive spammy txs, and spending immature coins) the tx will go through fine.

For the 0.001% of transaction where user reports non-payment you:
a) check the blockchain to see if the tx exists by tx hash
b) check the blockchain to see if the tx exists by looking up the unique set of inputs and outputs which make the tx.

Why do a if b will find all txs?  Simple it is faster and tx don't accidentally mutate themselves so it gives you good information on which customers might be trying to rob you.  You don't have enough "evidence" to have them arrested, maybe not enough to even ban them, but you certainly have enough to flag their account so it warns other customer support reps to be extra vigilant.

2355  Bitcoin / Development & Technical Discussion / Re: MtGox blames Bitcoin protocol problem for BTC withdrawal issue on: February 10, 2014, 04:27:46 PM
Transactions are malleable. Deal with it. If a transaction is observed on the network that has the same input outpoints and the same outputs, it is the same transaction, and mtgox should treat it as such. This is a simple check to do, and trivial to automate.

This.  Other exchanges, merchants, and service providers have dealt with this for years.  MtGox is not only incompetent but they are also adding a fud fueled headline to cover their asses ("Bitcoin protocol is broken, we can't safely transfer coins until it is fixed").  We all know how much fact checking the media does so I expect to see the headline about Bitcoin broken and unsafe any hour now.

It is important to point out that transactions don't accidentally get mutated. and there are no false positives.   If you make a tx (tx hash A) and that tx (tx hash A) ends up in the blockchain then the user got paid.  Period.  If you are competent that should be 99.99999% of your transactions right there.  Thus the mutated tx are a edge case and one which can be handled manually if you want.

TO AVOID LOSING MONEY TO SCAMMERS (hint hint MtGox before you lose more of your user's funds):
If a user reports they did not receive the withdraw there are three possibilities.

First you first check the blockchain for the tx hash.  If you find it then you are right and user is wrong.  You have paid them.

Second if the tx hash is not in the blockchain, you check to see if the same tx (same inputs, same outputs) is in the blockchain.  If you find one, then the user is wrong.  You paid them and "someone" (likely the scammer user you are talking to right now) mutated the transaction to hide the fact from you and is trying to get double paid. So you flag or ban the user whatever your internal policy but you don't pay them again.

If the payment if not found by either method in the blockchain then you (MtGox) likely fucked up again.  Check to see if you:
a) are spending immature outputs
b) are double spending prior spent outputs
c) are paying insufficient fees (yup charging users 10x the min fee then failing to pay even the min fee for your tx)
d) are producing bloated spammy tx which violate the Bitcoin protocol spam rules



2356  Other / Beginners & Help / Re: Bank Wire Payment Within USA on: February 10, 2014, 04:08:45 PM
Not available in California.  Cry

Sorry.  Talk to your local friendly regulators.
2357  Bitcoin / Bitcoin Discussion / Re: Make a real ATM on: February 10, 2014, 04:07:40 PM
What distinction do you think that makes (other than likely the worst marketable ATM in the history of mankind)?

FinCEN says the act of exchanging BTC for USD or the reverse is what makes one a MSB.  Your proposed restricitons would only make the ATM very unpopular.   

BTW "traditional ATMs" comply with money transmitter laws.   You can't get cash out of an ATM in the US without having given someone somewhere all your personal info (name, address, ssn, dob, photo id, etc).  The ATM operator may not have that information but they are working with your card issuer who does.  If the card issuer doesn't follow the rules the ATM network won't accept their cards.
Really it would be more like a Bitcoin savings account. It would be a terrible ATM but we will never likely see any real bitcoin commerce in america with the witch hunt mentality. At least it would give some bitcoin exposure to people on the street.

IF the ATM accepted dollars and converted them to BTC then FinCEN (in their awkward let cram this square peg into the round hole which is the "closest" fit mentality) says its operator is a money transmitter.

So if there are no full service Bitcoin ATMs in the US there will be no "savings account" Bitcoin ATMs in the US either and if you could deploy Bitcoin savings account ATMs it would make a lot more business sense to just deploy much more capable and popular full service ones.
2358  Bitcoin / Bitcoin Discussion / Re: Make a real ATM on: February 10, 2014, 08:32:11 AM
What distinction do you think that makes (other than likely the worst marketable ATM in the history of mankind)?

FinCEN says the act of exchanging BTC for USD or the reverse is what makes one a MSB.  Your proposed restricitons would only make the ATM very unpopular.   

BTW "traditional ATMs" comply with money transmitter laws.   You can't get cash out of an ATM in the US without having given someone somewhere all your personal info (name, address, ssn, dob, photo id, etc).  The ATM operator may not have that information but they are working with your card issuer who does.  If the card issuer doesn't follow the rules the ATM network won't accept their cards.
2359  Economy / Speculation / Re: Forbes: "$10: One Perspective On What Bitcoin Will Be Worth In 2014" on: February 10, 2014, 06:55:45 AM
The distribution (factual) is right there in the link. I don't know who has how many wallets but since less than 2% of the coins have been mined there is basically no way it can centralize from here. I think the reality is setting in that bitcoin is a breakthrough, but it is by design neither novel nor irreproducible. So it doesn't make all that much sense to be paying 800 no 700 dollars each for them.

I guess it makes sense. The idea of bitcoin wasn't to make 50 people rich.

Why do you assume 1 address = 1 person.

MtGox cold storage address likely holds the coins for tens of thousands of users but in your "math" it is all owned by one person.  The same would apply to every major exchange, eWallet, and bitcoin related business.

Likewise under similar math you would say 80% (or some asinine number) of all the dollars in the world are personally owned by four people named Chase, BofA, Wells Fargo, and Citibank.
2360  Alternate cryptocurrencies / Mining (Altcoins) / Re: How to increase the profit of mining in an effective way? on: February 10, 2014, 06:34:25 AM
Don't run unknown exes uploaded by anonymous people ... unless of course you are suffering from the burden of a wallet which is too heavy as that problem will be quickly rectified.
Pages: « 1 ... 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 [118] 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 ... 800 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!