Bitcoin Forum
December 08, 2016, 12:21:15 PM *
News: Latest stable version of Bitcoin Core: 0.13.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Double spending again (no, not the chain forging thing)  (Read 1751 times)
alanine
Newbie
*
Offline Offline

Activity: 6


View Profile
May 17, 2011, 07:35:40 PM
 #1

Sorry if this has been discussed, but from all the materials I've read on Websites and Wikis, I noticed little was mentioned how some coin is confirmed to have not been spent before.

I'm not talking about forging a transaction or race for the longest block chain, but about how a node confirms a transaction is valid before including it in a block.

To confirm a coin was authentically issued, one only has to look up its associated issuing block and match the hash.

But to confirm a coin has not been spent, one has to search through all blocks between its issuing block and the latest head block, and confirms it was not recorded in any transaction.

If this sounds like a fairly inefficient algorithm, it is actual worse: the situation cannot be improved by algorithm!

It means the status of every coin ever issued must be completely tracked by any node that wants to make a new block. This is always true because even with no
new currency injected to the circulation, coins are constantly revoked and re-issued at every transaction.

Please enlighten me!
1481199675
Hero Member
*
Offline Offline

Posts: 1481199675

View Profile Personal Message (Offline)

Ignore
1481199675
Reply with quote  #2

1481199675
Report to moderator
1481199675
Hero Member
*
Offline Offline

Posts: 1481199675

View Profile Personal Message (Offline)

Ignore
1481199675
Reply with quote  #2

1481199675
Report to moderator
Visit and contribute to reddit.com/r/Bitcoin
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
CydeWeys
Full Member
***
Offline Offline

Activity: 154


View Profile
May 17, 2011, 08:00:50 PM
 #2

No, you've hit the nail on the head.  Currently each client needs to store the entire blockchain in order to verify that a coin has not yet been spent.

I don't think searching for any particular coin is as inefficient as this might imply; it's probably using indexes or something similar.
alanine
Newbie
*
Offline Offline

Activity: 6


View Profile
May 17, 2011, 08:09:03 PM
 #3

Then I would suggest we enforce an expiration date, such that people would have incentive to consolidate the scattered bitcoins they own by making a transaction to themselves.

This way, the total number of bitcoins to keep track of would be roughly on the same order to the number of users, which is at least manageable.
 
MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
May 17, 2011, 08:25:06 PM
 #4

It means the status of every coin ever issued must be completely tracked by any node that wants to make a new block. This is always true because even with no
new currency injected to the circulation, coins are constantly revoked and re-issued at every transaction.

Please enlighten me!

Coins are not revoked or reissued.  The blockchain is in practice; a massive, distributed ledger.  It tracks what every address in the system owns, by tracking all that has legitimately been sent to it and everything that it has legitimately spent.  Coins themselves don't actually exist even as a digital "object".  When coins are spent, the client will assemble as many transactions as is neccessary to send the required amount, and send the change to a new address; thus there is an automatic mechanism to combine entries to counteract the natural tendency of money to disperse.  The blockchain can be pruned of old, spent transactions to limit storage space; and the blockchain can be 'data mined' into whatever database system the client's programmer might prefer in order to internally track those accounts, the blocks/transaction references associated with those accounts, and their running balances.  Whenever an account's balance goes to zero, the database can simply purge that address from it's database; because even if it were to be sent new coins again, all of the prior transaction references are irrelevent.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
May 17, 2011, 08:26:57 PM
 #5

Then I would suggest we enforce an expiration date, such that people would have incentive to consolidate the scattered bitcoins they own by making a transaction to themselves.

This way, the total number of bitcoins to keep track of would be roughly on the same order to the number of users, which is at least manageable.
 

The system does this automaticly, without expiration dates.  See above.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
May 17, 2011, 08:29:46 PM
 #6

I don't think searching for any particular coin is as inefficient as this might imply; it's probably using indexes or something similar.

It uses an internal database to track everything, after the blockchain has been verified.  This is what is taking so long on first startup, the actual downloading of the blocks occur 500 at a time and do not take all that much bandwidth; but the verifying the blocks one at a time, and then sorting that data into the database, does take a considerable amount of time.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
alanine
Newbie
*
Offline Offline

Activity: 6


View Profile
May 17, 2011, 08:40:20 PM
 #7

The blockchain can be pruned of old, spent transactions to limit storage space; and the blockchain can be 'data mined' into whatever database system the client's programmer might prefer in order to internally track those accounts, the blocks/transaction references associated with those accounts, and their running balances.  Whenever an account's balance goes to zero, the database can simply purge that address from it's database; because even if it were to be sent new coins again, all of the prior transaction references are irrelevent.

You are talking about a consolidated database, which is an optimized version of the entire block chain. So in the end it maintains balances for all accounts (or to use the right word, addresses).

This is slightly different from the expiration model I mentioned, because in the latter case, accounts with positive balance will still be purged if they don't actively and periodically go through transactions (where a transaction fee will be due)  Grin
alanine
Newbie
*
Offline Offline

Activity: 6


View Profile
May 17, 2011, 08:45:23 PM
 #8

The blockchain can be pruned of old, spent transactions to limit storage space; and the blockchain can be 'data mined' into whatever database system ...

To be precise, the blockchain MUST be conolidated into a database before "pruned of old, spent transactions". No?

Otherwise, a node will have no way to tell if some coin has been spent before (or equivalently, if some address has a positive balance).
MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
May 17, 2011, 09:04:31 PM
 #9

The blockchain can be pruned of old, spent transactions to limit storage space; and the blockchain can be 'data mined' into whatever database system ...

To be precise, the blockchain MUST be conolidated into a database before "pruned of old, spent transactions". No?

Otherwise, a node will have no way to tell if some coin has been spent before (or equivalently, if some address has a positive balance).


A node that desires to "mine" would have to have a full, verified copy of the blockchain before pruning.  There are also a couple of less complete classes of clients that are practically limited to sending and receiving coins, (lightweight client) and potentially to verifying transactions, but not blocks, with the aid of a trusted full client (Point-of-sale) that do not need to have a complete copy of the blockchain in either raw or database form to function correctly.  In the case of the independent lightweight client, only a complete set of block headers is required.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
alanine
Newbie
*
Offline Offline

Activity: 6


View Profile
May 17, 2011, 09:28:36 PM
 #10

So in a way the bitcoin network will make life harsher for miners as it expands. But on the other hand, the network entirely depends on the dominating number of "good" miners to counter adversaries.

Given that the eventual pay-off for miners is through transaction fees, I wonder if we will end up with a scenario where the transaction fee is so high that nobody would want to trade anymore, or there would be only a handful miners left and the network becomes vulnerable.

Where does the equibrium lie? If you are optimistic that this will not happen, any solid reason to back it up?
rezin777
Full Member
***
Offline Offline

Activity: 154


View Profile
May 17, 2011, 09:33:16 PM
 #11

So in a way the bitcoin network will make life harsher for miners as it expands. But on the other hand, the network entirely depends on the dominating number of "good" miners to counter adversaries.

Given that the eventual pay-off for miners is through transaction fees, I wonder if we will end up with a scenario where the transaction fee is so high that nobody would want to trade anymore, or there would be only a handful miners left and the network becomes vulnerable.

Where does the equibrium lie? If you are optimistic that this will not happen, any solid reason to back it up?

Perhaps if the network grows large enough there will be many low fee transactions instead of few large fee transactions?
alanine
Newbie
*
Offline Offline

Activity: 6


View Profile
May 17, 2011, 09:42:17 PM
 #12

Perhaps if the network grows large enough there will be many low fee transactions instead of few large fee transactions?

If you ask me whether I want to be a miner, definitely no, I don't have the resource to conduct a server farm and the return seems minor. I believe this is a concensus in this forum.

So the trend is that there will only be far less miners (those who use full strength client) than ordinary customers (those who use light-weight client).

But overall (sort of like answering myself), I believe the overhead is still much less than credit card companies or paypal. People are already accepting their service fees (which is, let's face it, not a huge percentage), I don't see any problem for a miner to charge the same while spenting a fraction of what they are spending today. I actual expect much less since the ability to be a miner is not monopolized.

MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
May 17, 2011, 09:43:59 PM
 #13

So in a way the bitcoin network will make life harsher for miners as it expands. But on the other hand, the network entirely depends on the dominating number of "good" miners to counter adversaries.

Given that the eventual pay-off for miners is through transaction fees, I wonder if we will end up with a scenario where the transaction fee is so high that nobody would want to trade anymore, or there would be only a handful miners left and the network becomes vulnerable.

It sets up a self-balancing system.

Quote
Where does the equibrium lie? If you are optimistic that this will not happen, any solid reason to back it up?


No one really knows where the equilibrium lies because it's always in flux.  In the distant future without any significant block reward, and miners entirely dependent upon transaction fees, there would be tens of thousands of transactions per block.  There is an economic incentive for a for profit miner to exclude free transactions, but not an economic incentive for a miner to exclude a low fee paying transaction so  long as there remains room in the block.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
Gavin Andresen
Legendary
*
Offline Offline

Activity: 1652


Chief Scientist


View Profile WWW
May 18, 2011, 12:29:52 AM
 #14

There is an economic incentive for a for profit miner to exclude free transactions, but not an economic incentive for a miner to exclude a low fee paying transaction so  long as there remains room in the block.
People keep saying that, but it is simply not true.

With a given number of "front-end" CPUs checking ECDSA transaction signatures, miners will be able to process at most N transactions per second.

If there are more transactions than that going over the network, then miners will drop the least-profitable transactions and only process the most-profitable N.

Mining involves two distinct tasks:  checking transactions and gathering them into a block (which is inexpensive right now because there aren't gazillions of transactions).  And then hashing (which will always be expensive).


Miner operators will keep track of the transactions they're dropping, and will do some math to figure out if it would be profitable for them to invest in MORE front-end CPUs to process more than N transactions per second.

How often do you get the chance to work on a potentially world-changing project?
MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
May 18, 2011, 12:33:32 AM
 #15

There is an economic incentive for a for profit miner to exclude free transactions, but not an economic incentive for a miner to exclude a low fee paying transaction so  long as there remains room in the block.
People keep saying that, but it is simply not true.

With a given number of "front-end" CPUs checking ECDSA transaction signatures, miners will be able to process at most N transactions per second.

If there are more transactions than that going over the network, then miners will drop the least-profitable transactions and only process the most-profitable N.

Miner operators will keep track of the transactions they're dropping, and will do some math to figure out if it would be profitable for them to invest in MORE front-end CPUs to process more than N transactions per second.


I wasn't implying the "tradgedy of the commons" falacy that so many others have echoed before.  Only that transaction fees aren't going to shoot for the moon, because the burden of paying for the network is shared across a large number of users for any given block.  His concern was the reverse of the norm on this forum.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
Pages: [1]
  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!