Connect with us

Satoshi Nakamoto

Latency and locality

With a global p2p network, it is necessary to have all nodes receive the transaction, do some calculations and send results back.

Published

on

The following content was written by mkrogh on August 06, 2010, 07:05:56 AM in the thread latency and locality. All content is owned by the author of the bitcointalk.org post. (original)


Hi bitcoin users

I found bitcoin yesterday, and I am really impressed by the idea of avoiding issuers/banks in a digital cash system.

However, I have one objection that I would like your view on.

That is the latency, or delay in a local transaction. Let us say that a payer and payee are located in the same city for example. I will claim, that they want a payment to go through
with a delay not much slower than the latency of network connections. With an issuer and using local coins (a prefix, say, can be used to localize a server of the issuer), the transaction should be done and verified in 100 microseconds or less. With a global p2p network, it is necessary to have all nodes receive the transaction, do some calculations and send results back.
It is not feasible,  with the speed of light as an upper limit, to do this faster than a second. As I understand it you actually use something like 10 minutes for one block, or even more for several block verifications. This means that verification of the absence of double spending is 10,000 or even tens of millions times too slow. This would get even worse in interplanetary trade of course.

The ideal payment system should be decentralized but also local, i.e., the verification of a local transaction must not have to wait for a light signal to travel to the other end of the “universe” and come back again.

Locality, in the sense describe here, is crucial, I will claim.

Sincerely,

Morten Krogh.

The following content was written by FreeMoney on August 06, 2010, 07:35:55 AM in the thread latency and locality. All content is owned by the author of the bitcointalk.org post. (original)


Why is it crucial?

One system doesn’t have to be used for all needs. If interstellar money is needed people will choose whatever is best for that, same if people need their money in less than a second.

The following content was written by knightmb on August 06, 2010, 08:04:38 AM in the thread latency and locality. All content is owned by the author of the bitcointalk.org post. (original)


It is not feasible,  with the speed of light as an upper limit, to do this faster than a second. As I understand it you actually use something like 10 minutes for one block, or even more for several block verifications. This means that verification of the absence of double spending is 10,000 or even tens of millions times too slow. This would get even worse in interplanetary trade of course.

It depends on your network layout. If you are using the entire public network, then yes you are depending on that time for the data to be processed by everyone else that is running a node. But, you don’t have to do it that way. You can build a trusted node (like a server) and have your clients direct connect to it and let it do the fast verification for you.

It won’t net you 20 confirmations in a few milliseconds, but it will help stop double-spending as long as you remain in control of that node because it knows what is being spent. The whole double-spending issue arises from trust. When you are comparing anonymous seller to anonymous buyer, the only “middle man” for trust is the entire swarm (hence confirmations that neither is cheating)

If you know you can trust your own node(s), then it reduces the likely-hood that double-spending will occur within your own trusted network. So if your example applied to an ATM like card for example, the bank (or whoever) would have all of those ATM machines networked to their own private node (or server) which would then further connect to the outside (Internet) for the rest of the transactions. So if you went to an ATM, withdrew 100 BTC (say the entire account only had that much), then moments later went to another ATM elsewhere and tried to withdraw that amount again, somewhere along that trusted chain would spot a double-spend attempt and basically report back no BTC left for that address.

The whole verification process is how you put the swarm to work, all those clients are examining if your transaction was valid or not, but you don’t have to wait for them to transfer the coin around. You can spend the coin around in circles all day without a single transaction verification. It’s only when double-spending occurs does the network correct for itself and fix the balances.

Banks already have this exact same problem. They all have their own networks that connect to other bank networks and it’s just as easy to double-spend on their ATM as has been demonstrated at black-hat hacker conventions for probably 10+ years now. I remember reading about the issue back in 1997 because a lot of networks will still on dial-up then for banks and the latency issue was part of the attack because everyone had their own *database* that all had to inter-connect.

With bitcoin, everyone is the database and banker and guard at the same time, so while it’s not perfect, it’s actually a lot better than what banks are using. Have you ever noticed at an ATM they have about 20 “network” stickers for all the different banks and setups that the ATM has to be compatible with?

The following content was written by mkrogh on August 06, 2010, 11:48:30 AM in the thread latency and locality. All content is owned by the author of the bitcointalk.org post. (original)


FreeMoney, I think it is crucial to have fast local transactions. It is needed for many businesses and person to person payments.
10 minutes or even 10 seconds is too slow. An extraterrestrial system was just an extreme example.

The most pressing problem, as I see it, is to get a digital cash system that makes it possible for people and small businesses to pay each other fast and without
registration and supervision from a big company/government.

I read the thread about vending machines. There were no real solutions except companies that would monitor for double checking in a few seconds. I agree that would be possible,
but we would lose the whole point of not having an issuer. This company needs to be trusted, it will break anonymity, and people need an account with that company.

What is wrong with the follwing “standard” system. A central bank/government issues a currency like today. It sets up servers around the world to validate transactions.
People pay each other by means of a single verification with one of the centeal bank’s servers. The speed issue is solved by coins having the location of the relevant server embedded in them. In worst case, the server would need to make long round trips to other severs, but in most cases the first server would know the answer already. The cental bank could have an algorithm for distributing coins around the network to optimise latency and server load. The wallet would have an algorithm for choosing the most local coins when making a payment.
The wallet could also prepare by exchanging coins with the server. On your way to Europe, the wallet replaces “American coins” with European coins, such that payments will be fast in Europe. For the user, this is incredibly easy. It is anonymous, and it requires no agreements with any processing companies.
Also, there could be many issuers of the same currency if so desired.

Bitcoin gets rid of the issuers, but instead introduces unacceptable slowness or a lot of middlemen like credit card companies/debit accounts etc. Satoshi’s solution, on the vending machine thread, with a double spending checking company is still too slow, even though faster than a block, and this company needs an omnipresence on the network almost like
an issuer.

But discarding speed, bitcoin seems extremely elegant. And of course there are uses for this kind of system. One could imagine many local bitcoin systems with an exchange between
different currencies. That would work except that an attacker can take over a small currency.

The following content was written by Insti on August 06, 2010, 12:50:12 PM in the thread latency and locality. All content is owned by the author of the bitcointalk.org post. (original)


The most pressing problem, as I see it, is to get a digital cash system that makes it possible for people and small businesses to pay each other fast and without
registration and supervision from a big company/government.



What is wrong with the follwing “standard” system. A central bank/government issues a currency like today. It sets up servers around the world to validate transactions.

So the solution to avoiding a big company/government regulation is a big company/government?

It is currently possible with Bitcoin to do transactions which are practically instant particularly if you do not fear some vast conspiracy to defraud you.
If you really do have need of transactions faster than Bitcoin can offer, use a different system, but you will probably have to forgo some of the benefits that Bitcoin currently offers.




The following content was written by mkrogh on August 06, 2010, 02:00:10 PM in the thread latency and locality. All content is owned by the author of the bitcointalk.org post. (original)


No, my goal is not to avoid government involvement in the payment system, but to not have the government monitor every transaction. There is a difference.

The current bill/coin system works like that. The government/central bank issues the currency but they don’t monitor individual cash payments.
I think that is okay.

You claim that is possible to make almost instantaneous payments with bitcoin. How? That is what I thought everybody agreed upon was not possible. You need to wait for
one or more blocks to be solved before you can trust a coin. That takes minutes. Even in the best case it is limited by propagation, with the speed of light, around the network which is slow. The only solution is to create another banking system on top of this. Bitcoin then becomes the backbone of an intebank transfer system, not what the population at large is using.
   
It is not just me that needs fast transactions. There is giant demand for fast transfers of digital cash from cell phone to cell phone, web shopping, stock trading etc. 

But, we might just have different expectations from a digital cash system.

Has anyone ever stated clearly what problem bitcoin is solving? It seems to solve the problem of payments that don’t need to be fast. But who are the potential users of that beyond people who thinks it is theoretically interesting like people on this board.

Do people agree with me on this point: We still need another digital cash system, and that probably needs to be issuer based.
Continue Reading
Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Satoshi Nakamoto

Has someone made a “buy with bitcoins” button?

I mean an image. You know a nice one that people can put on their checkout webpages.

Published

on

The following content was written by mtgox on July 21, 2010, 08:48:44 PM in the thread Has someone made a “buy with bitcoins” button?. All content is owned by the author of the bitcointalk.org post. (original)


I mean an image. You know a nice one that people can put on their checkout webpages.

The following content was written by jgarzik on July 21, 2010, 09:01:11 PM in the thread Has someone made a “buy with bitcoins” button?. All content is owned by the author of the bitcointalk.org post. (original)


More than just an image…

Even though the bitcoin network itself handles fundamental transaction processing, web shopping carts will need additional amounts of payment processing to match purchases to incoming payments, be notified when a payment is processed (currently bitcoin purchase can take multiple hours to be confirmed), though order fulfillment and completion.

Even a simple “donate” button will require some sort of payment processing gadgetry a la Paypal’s web button engine, if you want people to provide names and/or messages along with their donation.

It’s tempting to code up a button engine myself, actually…

The following content was written by mtgox on July 21, 2010, 09:14:07 PM in the thread Has someone made a “buy with bitcoins” button?. All content is owned by the author of the bitcointalk.org post. (original)


Yeah I know. I’m 90% done with the code part of it. Just seeing if someone had already made a button image before breaking out photoshop.

So wait to code yours since hopefully you can just use mine 🙂
Continue Reading

Satoshi Nakamoto

On bitcoin generation, and bitcoin organizations

Bitcoin is a currency, literally, in its infancy. The concept is, as far as I know, the first of its kind.

Published

on

The following content was written by jgarzik on February 20, 2011, 06:44:53 AM in the thread Pros and cons of using new Bitcoin addresses for each transaction?. All content is owned by the author of the bitcointalk.org post. (original)


Can someone please give me a list of the pros and cons of using new Bitcoin addresses for each transaction? It seems very inconvenient to use a new address each time.

warning, I am a newbie…liked the videos presentations, did some research…and tried it.  Bitcoin.exe on an i7 –only application—24/7 x 10 days—on generate mode.  Only successful in the gratuitous .05 BTC from faucet per computer per public ip address.  I had plans to accept Bitcoins on all my websites…hired web developers  …faced ZERO SUPPORT ANYWHERE.

Bitcoin definitely needs to grow some organizations that can offer technical advice and software support for bitcoin itself.  Most major open source projects have one or more companies doing this.  That would help with bitcoin adoption, too.

Quote
So question number ONE.  What happens to the Bitcoin if I don’t use it, save it?  I speculate it ONLY serves to increase the value of those users and optimists who are “fan boys”.  I have spent too much time…wasting…which cost me more money than I could have possibly made  in two weeks.

Bitcoin is a currency, literally, in its infancy.  The concept (distributed notary service with digital signatures) is, as far as I know, the first of its kind.  It is still being “bootstrapped,” meaning that bitcoin does not have a self-supporting economy — which must, by its nature, encompass mundane things like buying gasoline with BTC, paying rent or mortgage with BTC, buying groceries with BTC.

So, what can you do with the bitcoins you have right now?  Not a lot, if you ignore bootstrapping services (services like currency exchanges or bitcointo.com).  Mostly software services like web hosting, and an odd assortment of tangible goods.

But it seems like most folks in the bitcoin community recognize that we just started construction of a very interesting and unique experiment in currency.  Any endeavour is, unfortunately, very high risk from an investment standpoint.  It might fail for dozens of reasons…  but wouldn’t be fun and interesting if it succeeded?

Quote
Question Number Two.  My PC’s were set up by my SYSADMIN’s.  After a few bouts of “actvity”….I ended up with 100% CPU on all cores…and the “connect” prompt  says unconnected.  Thats a lot of power and CPU cycles for Nothing…a big fat waste of time.  You want me to be impressed so we can get the concept moving?  Put up simple to understand “NOOB” isms…so that morons like myself…can learn HOW to connect.  If no connect…why the 100% CPU on all cores and NOTHING going on?  FOR DAYS?  I don’t have time for games.  When you guys are serious…I’ll be back.   I love all the concepts supporting it…but I will not GIVE AWAY valuable product from my websites for coins that have no value TO ME.

Step 1: Turn off “Generate coins” option.  It is a waste of time and electricity.

Step 2: Wait for all the blocks to download.  As of this writing, there are 109245 of them.

Step 3: Don’t panic, and read the forums.  If you can post specific problems you are seeing after following steps #1 and #2, you can get answers.

Step 4: Hire better SYSADMIN’s.  They should be able to answer these basic questions and offer basic support, or not install software that neither you or they understand.


Continue Reading

Satoshi Nakamoto

How many bitcoin addresses exist?

The larger the hash160 is, the more base58 characters required to represent its address.

Published

on

The following content was written by davux on November 10, 2010, 10:21:15 PM in the thread Pros and cons of using new Bitcoin addresses for each transaction?. All content is owned by the author of the bitcointalk.org post. (original)


It’s not. It’s 62^33, which is slightly over 10^59.
How did you arrive to this result?

An address has 33 significant characters, each of which has 62 possible values (10 numbers, 26 uppercase letters, 26 lowercase).
So you have 62 * 62 * … * 62 possibilities (33 times).

Actually, now that I remember, it’s 58 (uppercase i and lowercase L are not included because they look too similar, same for zero and uppercase o).

So there are 58^33 possibles values, which is slightly more than 10^58. Still high, but not quite as high as 10^92.

The following content was written by theymos on November 10, 2010, 10:40:57 PM in the thread Pros and cons of using new Bitcoin addresses for each transaction?. All content is owned by the author of the bitcointalk.org post. (original)


An address has 33 significant characters, each of which has 62 possible values (10 numbers, 26 uppercase letters, 26 lowercase).
So you have 62 * 62 * … * 62 possibilities (33 times).

Actually, now that I remember, it’s 58 (uppercase i and lowercase L are not included because they look too similar, same for zero and uppercase o).

So there are 58^33 possibles values, which is slightly more than 10^58. Still high, but not quite as high as 10^92.

As ByteCoin already explained earlier in the topic, an address contains a non-data check code and version number. There are actually “only” 160 bits of randomness in each address: 2^160, or 1.46×10^48 possible addresses.

Addresses can also be 25-34 characters in length, depending on how numerically large the hash160+check code is (the larger it is, the more base58 characters required).
Continue Reading

Trending