Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: sugarpuff on March 05, 2014, 04:34:49 AM



Title: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 05, 2014, 04:34:49 AM
EDIT June 18, 2014: To avoid confusion (http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/#comment-1442329507): this thread is now about a solution to the tremendous (and increasing) financial and temporal costs of bringing new nodes online, not disk space.

Quote
...to handle the number of transactions that visa handles in 3 months the bitcoin system will require 14 Terabytes of storage space.
Quote
To assume that people are going to be willing to buy 14 terabytes of disk space every 3 months (even if it is just $40 in 2020) is a leap.

References:

- http://stormcloudsgathering.com/bitcoin-what-youre-not-being-told
- https://en.bitcoin.it/wiki/Talk:Scalability#Disk_space

So... I don't get it. Why do we need to hold onto the root?

Can't this problem be easily fixed by letting go of the root?

"What about unspent transactions at block 20?" I hear you cry.

Copy whatever data is necessary to move them automatically to the head in a new transaction. Am I missing something?

Edit March 5, 2014: thanks to Realpra for pointing out that this was called the "ledger-solution". See his reply below, also quoted here:

This was debated before, what you call  "rolling root" we called "ledger-solution"/"ledger-block".

Same idea; every say 1 year you would take all the 20 years or older transactions and move their unspent outputs to the latest "ledger block". Amounts in the ledger block would be much like coinbase transactions/miners fees.
Barring minor minor data growth from address fragmentation and perhaps block headers, this puts a quite final limit to the blockchain size.

Another idea (of my own) was "swarm clients" that individually would validate only parts of the blockchain, but as a whole would validate the whole thing - all zero trust etc..
This would allow for almost the smallest devices to participate in block validation forever.

You can google these terms, and I do mean google, the forum search is shite.

The main reason nothing has happened yet is laziness and people too busy getting rich off of Bitcoin - and no you can't lump me in with that group I have been hard at work helping Bitcoin for a while now.

Edit2 March 5, 2014: Something not previously noted here is that bitcoind can (and might already in some ways do) prune its locally stored blockchain, but only after it downloaded the entire thing once. Thus, this issue is more of a problem (I think) for new full-nodes, which currently must download the entire blockchain before they can prune the entire thing.


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: maaku on March 05, 2014, 04:40:43 AM
How else would you bring new nodes online?


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: sugarpuff on March 05, 2014, 04:42:23 AM
How else would you bring new nodes online?

Download the internet-agreed upon new "rolling-genesis-block-snapshot".


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: maaku on March 05, 2014, 04:52:54 AM
How do you reach "internet-agreement"?


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: DeathAndTaxes on March 05, 2014, 05:02:56 AM
How do you reach "internet-agreement"?

Better yet how do the new nodes verify that the agreement has been reached and that agreement is valid.

To OP, the reality is most nodes in the future will be SPV.  The storage requirements are maybe 1% of that of a full node.   Eventually even most "full nodes" will be storing only a pruned copy of the db.  Today that means a 80%+ reduction in storage requirements and that will only improve in time.   Some nodes (maybe call them archive nodes to distinguish from full nodes) will need a full copy of the blockchain and for them the cost will be worth it.  If you are a major exchange and are making $1B a month in profit (and you would if Bitcoin is so huge it has higher tx volume them VISA) do you think it might be worth it to pay $1,000 a year in additional storage cost to add some drives to the SAN?  I think it might be.


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: sugarpuff on March 05, 2014, 05:04:16 AM
How do you reach "internet-agreement"?

One way would be to do what you already do (checkpoints), although those are controversial.

I haven't given it too much thought, but it might be possible to do something like have a hard coded rolling window, and have nodes mark the new root with some flag ("currentRoot = true").

New nodes could ask others for the current root then. If nodes lie about it, there are one of two possible scenarios:

- They give a root that is too old. This can be mitigated by asking multiple nodes and picking the majority answer, combined with simply downloading the rest of the blockchain. If it got unlucky and the majority lied, it will eventually catch up and discard the outdated root on its own anyway because of the rolling window that's hard coded.

- They give a root that's too young. This can be mitigated, again, by asking multiple nodes. If it also gets unlucky with its chosen majority, it should be able to figure this out because it's assumed that not all nodes are evil, and it will eventually stumble across a trustworthy one, which would make it have a longer blockchain than the ones that the lying nodes gave it, and it would automatically adopt that one.

I'm making these answers up on the fly btw. I'm sure better ones could be given with more thought.

Still don't get what the problem is...


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: DeathAndTaxes on March 05, 2014, 05:10:08 AM
Still don't get what the problem is...

Well you are abstracting away the entire problem.  It is like saying how can we get into space and your answer is you keep going up until you are there.

Rereading your OP my guess is you don't understand how Bitcoin works (what is a transaction?  how does it work?  what are outputs?  what is the UXTO?  how can we verify that any given output is valid?).

If I "sent" you coins and you didn't have the block which contained the transaction which contained that output how would you validate the input is valid and not just some nonsense I sent you because I know you have no way of validating?


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: sugarpuff on March 05, 2014, 05:16:01 AM
If I "sent" you coins and you didn't have the block which contained the transaction which contained that output how would you validate the input is valid and not just some nonsense I sent you because I know you have no way of validating?

That just wouldn't be possible. It would be discarded like all other invalid transactions.

You wouldn't be able to send to or from an outdated address (it would be considered invalid). You'd use the new ones that were copied as new transactions to the head. It's possible I am misunderstanding (I've only read the original paper a couple times, and perused the wiki, but I'm not working with the code itself).

Sidenote: consensus about an ancient block should be extremely high. There should be no disagreement about it.


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: kjj on March 05, 2014, 05:24:42 AM
If I "sent" you coins and you didn't have the block which contained the transaction which contained that output how would you validate the input is valid and not just some nonsense I sent you because I know you have no way of validating?

That just wouldn't be possible. It would be discarded like all other invalid transactions.

You wouldn't be able to send to or from an outdated address (it would be considered invalid). You'd use the new ones that were copied as new transactions to the head. It's possible I am misunderstanding (I've only read the original paper a couple times, and perused the wiki, but I'm not working with the code itself).

Sidenote: consensus about an ancient block should be extremely high. There should be no disagreement about it.

Discarded by whom?  "Considered invalid" by whom?  Which ancient block?

Bitcoin is an imperfect solution to a very hard problem.  You can't just handwave it all away like Dilbert's boss.

http://dilbert.com/strips/comic/1994-10-17/


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: DeathAndTaxes on March 05, 2014, 05:25:19 AM
Only the private key holder of the tx output can create a new tx.  There is no mechanism to "copy the outputs as a new transactions to the head" and then verify off that.


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: sugarpuff on March 05, 2014, 05:26:59 AM
Discarded by whom?  "Considered invalid" by whom?

By all full-nodes.

Quote
Which ancient block?

The one that's at the back end of the rolling window.

Quote
Bitcoin is an imperfect solution to a very hard problem.  You can't just handwave it all away like Dilbert's boss.

I agree and I'm doing my best to give concrete answers to these questions that are not handwavy.


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: sugarpuff on March 05, 2014, 05:36:15 AM
Only the private key holder of the tx output can create a new tx.  There is no mechanism to "copy the outputs that were coped as new transactions to the head".

The new protocol dictates that your node create this new transaction for you. Edit: I suspect that might not even be necessary, since the balance wouldn't change. It would just be an alias for the old txn.. not entirely sure ATM.

If this method works, and disk space becomes a real problem, it might just have to work this way.

(BTW, I'd love to give ya'll faster replies, but this forum has imposed a bunch of restrictions on this account because it hasn't posted much. I can currently post a maximum of 1 reply per 6 minutes, and I don't know if that timer resets each time I try.. Annoying.)


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: grau on March 05, 2014, 05:49:31 AM
The restrictions are there for a good reason, to encourage learning before teaching.

The problem you are about to tackle is hard. I recommend this thread to get an insight of its complexity.

https://bitcointalk.org/index.php?topic=88208.0


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: sugarpuff on March 05, 2014, 06:11:51 AM
The restrictions are there for a good reason, to encourage learning before teaching.

The problem you are about to tackle is hard. I recommend this thread to get an insight of its complexity.

https://bitcointalk.org/index.php?topic=88208.0

Thanks, I'd had a look at that thread already, but a second, closer read-through is probably warranted (especially since etotheipi has revised his idea a few times).

Still looking for confirmation on this or a "you're suggestion won't work for reason(s) XYZ."


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: maaku on March 05, 2014, 08:39:06 AM
Your suggestion won't work because there's no way to resolve conflict over which purported branch is valid except by reference to the historical block chain data.


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: DannyHamilton on March 05, 2014, 09:00:16 AM
Still looking for confirmation on this or a "you're suggestion won't work for reason(s) XYZ."

Explaining why your solution won't work in a way that you can understand will first require you to have a much better understanding of the problem that bitcoin solves, the way that is solves it, and the technical details of exactly how a transaction works.

Of course, once you have all that knowledge, the "reason(s) XYZ" will become obvious to you, and you'll be here with the rest of us trying to explain to the newbie what you've already tried to explain to dozens of other newbies that thought they were the first to come up with this solution.

I don't have time to take you through all the education you need at the moment, I'm getting sleepy.  If you don't have a satisfying grasp of the problem with your solution in the next day or so, I'll try to return and walk you through the steps necessary for you to understand the technical details of bitcoin.

Note:  At this point you have 5 "Hero Members" all trying to tell you that the idea has been suggested before, the idea has been analyzed, and that the idea won't work. While the moniker "Hero Member" is mostly meaningless (It just means that the member has been here a long time and is verbose in their posting frequency), it seems statistically likely that at least one person that has been here that long and has participated that frequently would have gained some useful knowledge by now.  The fact that there are 5 that are all saying the same thing, should cause you to start thinking along the lines of "there appears to be something here that I need to understand better" rather than "there appears to be something here that they all need to understand better".  It's not impossible for 5 experienced people to all fall into the same faulty line of thought and assumption, but the odds are that you should give some consideration to the possibility that there's something significant that you're misunderstanding.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: Realpra on March 05, 2014, 04:17:29 PM
This was debated before, what you call  "rolling root" we called "ledger-solution"/"ledger-block".

Same idea; every say 1 year you would take all the 20 years or older transactions and move their unspent outputs to the latest "ledger block". Amounts in the ledger block would be much like coinbase transactions/miners fees.
Barring minor minor data growth from address fragmentation and perhaps block headers, this puts a quite final limit to the blockchain size.

Another idea (of my own) was "swarm clients" that individually would validate only parts of the blockchain, but as a whole would validate the whole thing - all zero trust etc..
This would allow for almost the smallest devices to participate in block validation forever.

You can google these terms, and I do mean google, the forum search is shite.

The main reason nothing has happened yet is laziness and people too busy getting rich off of Bitcoin - and no you can't lump me in with that group I have been hard at work helping Bitcoin for a while now.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 05, 2014, 06:32:04 PM
This was debated before, what you call  "rolling root" we called "ledger-solution"/"ledger-block".

Same idea; every say 1 year you would take all the 20 years or older transactions and move their unspent outputs to the latest "ledger block". Amounts in the ledger block would be much like coinbase transactions/miners fees.
Barring minor minor data growth from address fragmentation and perhaps block headers, this puts a quite final limit to the blockchain size.

Another idea (of my own) was "swarm clients" that individually would validate only parts of the blockchain, but as a whole would validate the whole thing - all zero trust etc..
This would allow for almost the smallest devices to participate in block validation forever.

You can google these terms, and I do mean google, the forum search is shite.

The main reason nothing has happened yet is laziness and people too busy getting rich off of Bitcoin - and no you can't lump me in with that group I have been hard at work helping Bitcoin for a while now.

Thank you sir! *That* is what I was looking for. I will do as you suggested and search for those terms.

If you're feeling especially kind, could you summarize the current status of the "ledger-solution"/"rolling-root proposal"? Did you already summarize it by saying, "The main reason nothing has happened yet is laziness and people too busy getting rich off of Bitcoin"?

And does that mean that it actually is a potential solution (as vetted by people with brains</ducks!>)?


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 05, 2014, 06:50:32 PM
Realpra, sorry, I tried, but my google-fu is failing me. The closest thing I was able to find is this post of yours (https://bitcointalk.org/index.php?topic=157141.msg1760879#msg1760879) mentioning it. If you could provide some history/links it'd sure be appreciated!


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 05, 2014, 07:19:01 PM
Your suggestion won't work because there's no way to resolve conflict over which purported branch is valid except by reference to the historical block chain data.

Unless I'm misunderstanding you, I think I addressed that in an earlier reply:

New nodes could ask others for the current root then. If nodes lie about it, there are one of two possible scenarios:

- They give a root that is too old. This can be mitigated by asking multiple nodes and picking the majority answer, combined with simply downloading the rest of the blockchain. If it got unlucky and the majority lied, it will eventually catch up and discard the outdated root on its own anyway because of the rolling window that's hard coded.

- They give a root that's too young. This can be mitigated, again, by asking multiple nodes. If it also gets unlucky with its chosen majority, it should be able to figure this out because it's assumed that not all nodes are evil, and it will eventually stumble across a trustworthy one, which would make it have a longer blockchain than the ones that the lying nodes gave it, and it would automatically adopt that one.


Title: Re: Bitcoin disk space scalability problem, is it really a problem?
Post by: Raize on March 05, 2014, 08:07:00 PM
If you are a major exchange and are making $1B a month in profit (and you would if Bitcoin is so huge it has higher tx volume them VISA) do you think it might be worth it to pay $1,000 a year in additional storage cost to add some drives to the SAN?  I think it might be.

With that much data, what do you think would be a reasonable estimate of the disk I/O?


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: DeathAndTaxes on March 05, 2014, 08:29:33 PM
If you are a major exchange and are making $1B a month in profit (and you would if Bitcoin is so huge it has higher tx volume them VISA) do you think it might be worth it to pay $1,000 a year in additional storage cost to add some drives to the SAN?  I think it might be.

With that much data, what do you think would be a reasonable estimate of the disk I/O?

True VISA scale (i.e 5,000 tps on blockchain)?

Figure 5,000 transactions per second.  Average tx is 400 bytes that is maybe 2MB/s (16 Mbps) sustained to write to the disk.  Average block would be 600 * 5,000 * 400 / 1024^3 = 1.2 GB.  So pretty much nothing.  Now to validate txs requires reading the outputs from the UXTO so maybe double that in terms of random reads.  Still we are talking a tiny fraction of the IO that even high end disks (to say nothing of SANs) can handle today.

Everyone thinks of disk first because it is the most obvious but in my analysis of the resource requirements I see it as the least critical bottleneck for full nodes.  If I had to rank them it would be node bandwidth (especially for residential connections), then memory, then computing power, and way back in last place would be disk capacity and speed.

To give you an example of why memory would be more of an issue, is that latency for UXTO lookups will start to become excessive.  It may be less of an issue for non-miners (who can take 5 to 10 seconds to validate a block) but miners will want to validate potential blocks very rapidly.  To avoid the slow expensive pulls from disk, if possible one would want the entire UXTO and memory pool (list of unconfirmed transactions) in memory.  The only thing being written to disk would be the blocks.  The memory pool shouldn't be a problem even if it grew to 30x the size of the average block we are talking <64GB (which sounds like a lot but consider the doubling effect of Moores law for a decade or two).  The UXTO would be larger however the good news is the UXTO grows more linearly than the blockchain or tx volume.  

However eventually it may not be possible to have the entire UXTO in memory.  What I would consider an interesting project would be to design a probabilistic model which determines how likely an output would be involved in a transaction in the near future.   For example spam outputs which are uneconomical to spend would be less likely to be included and could be dropped from the UXTO in-memory cache (if they are used it would just need pulled from disk).  Other examples of low probability outputs would be "coins" with very old age, outputs to addresses which have a large number of other older outputs but few spends (probably paper or storage wallet).  Some true statistical modeling of the blockchain could provide better insight those were just some examples.  The client could score outputs on the likelihood it would be spent soon and the highest tx kept in the in-memory cache.

I am not convinced Bitcoin (at least on blockchain) will ever become that large but if it does clients will adapt to meet the needs of full nodes.  The protocol currently is rather inefficient in terms of resources (other than disk).  Tx are double verified, block messages include the full transaction (which most nodes already have) there will be a lot of room for optimization as transaction volume grows.




Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 05, 2014, 08:51:45 PM
True VISA scale (i.e 5,000 tps on blockchain)?

Figure 5,000 transactions per second.  Average tx is 400 bytes that is maybe 2MB/s (16 Mbps) sustained to write to the disk.  Average block would be 600 * 5,000 * 400 / 1024^3 = 1.2 GB.  So pretty much nothing.  Now to validate txs requires reading the outputs from the UXTO so maybe double that in terms of random reads.  Still we are talking a tiny fraction of the IO that even high end disks (to say nothing of SANs) can handle today.

Everyone thinks of disk first because it is the most obvious but in my analysis of the resource requirements I see it as the least critical bottleneck for full nodes.  If I had to rank them it would be node bandwidth (especially for residential connections), then memory, then computing power, and way back in last place would be disk capacity and speed.

Thanks for that analysis DeathAndTaxes! Very informative. :)

Also, just an FYI, I edited the OP to add:

Quote
Edit2 March 5, 2014: Something not mentioned here is that bitcoind can (and might already in some ways do) prune its locally stored blockchain, but only after it downloaded the entire thing once. Thus, this issue is more of a problem (I think) for new full-nodes, which currently must download the entire blockchain before they can prune the entire thing.

Based on a convo I just had about this topic over on #bitcoin-dev, I'm realizing that I have some knowledge gaps that I need to fill to better understand some of the alternative proposals, but I think others here might find this interesting so I'm sharing it here (with sipa's permission):

Quote
1:31:31 PM sipa: sugarpuff: now, about dealing with ways to improve performance, IF you are giving up zero trust
1:31:35 PM sipa: sugarpuff: see it this ways
1:31:47 PM sipa: sugarpuff: internally, every full node maintains a database of all unspent transaction outputs
1:32:13 PM sipa: sugarpuff: this is a high-efficiency, compact database with just outputs (not signatures for example) and not those that have already been spent
1:32:31 PM sipa: sugarpuff: every block you can see as sort of an authenticated patch against that database
1:32:45 PM sipa: (add outputs of trenasactions in the block, remove the outputs spent by transactions in it)
1:33:08 PM sipa: if we can somehow agree on a snapshot of that database at some point in time, and you trust it, we can just copy the database
1:33:13 PM sipa: instead of copying all blocks before it
1:34:01 PM sugarpuff: sipa: right, and that sounds like going into checkpoint territory. the rolling-root proposal is similar but not entirely the same
1:34:27 PM sugarpuff: but old blocks should have almost unanimous agreement in the network
1:34:36 PM sipa: sugarpuff: not done yet :)
1:35:07 PM sipa: sugarpuff: there are proposals to make such a snapshot of that database essentially for every block, and put a hash of that snapshot in the block itself
1:35:14 PM sipa: sugarpuff: and have this validated by miners too
1:35:43 PM sugarpuff: sipa: ah, yeah, that's a good idea. is that what UXTO is about?
1:35:56 PM sipa: the UTXO set is just what we call that database
1:36:10 PM sugarpuff: ah, lol, i just got the acronym
1:36:11 PM sipa: (Unspent TransaXtion Outputs)
1:36:14 PM sugarpuff: :)
1:36:29 PM sipa: now, this has a very significant impact on the network
1:36:41 PM sipa: as validating and maintaining these database snapshots is not cheap
1:37:16 PM sipa: (there are ways to make it pretty efficient, by using a merkle tree for that entire database, but the impact is not neglectable)
1:37:48 PM sipa: now, you can have a node that just asks a peer, "give me your current UTXO set", and it can validate that at least the majority of hashing power agrees with it
1:38:02 PM sipa: without needing to downloading any old blocks
1:38:36 PM sugarpuff: sipa: just by asking enough nodes for it and assuming the majority is right?
1:38:56 PM sipa: sugarpuff: no no, not the majority of your peers
1:39:06 PM sipa: sugarpuff: you can actually just validate the entire old blockchain, but only the headers
1:39:14 PM sipa: sugarpuff: which is very cheap (80 bytes per block)
1:39:18 PM sipa: sugarpuff: like SPV nodes do now
1:39:31 PM sipa: sugarpuff: but the headers would be committing to the hash of these UTXO set snapshots
1:39:42 PM sipa: so you can verify that the chain agrees with the snapshot
1:39:50 PM sipa: which implies the majority of miners do
1:40:31 PM sugarpuff: sipa: i'd like to do more reading on this and not use up more of your time, do you have some recommended links about this topic? Think SPV + UTXO thread is a good start?
1:40:54 PM sipa: several mailing list posts, forum posts, ...
1:41:00 PM sugarpuff: too broad...
1:41:05 PM sugarpuff: i could spend a year doing that
1:41:18 PM sugarpuff: i love the bitcoin paper, i've read it like 3.5 times now
1:41:18 PM sipa: there's no nice centralized knowledge repository of all these experimental ideas :)
1:41:28 PM sugarpuff: ah that's unfortunate
1:42:15 PM sugarpuff: sipa: ok, well thanks, i think what you said here is enough to get me started. i'll go do some more research on it. right now there are too many gaps in my knowledge to give you useful replies on this
1:42:23 PM sipa: :)
1:42:23 PM sipa: yw


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: maaku on March 05, 2014, 08:54:39 PM
Unless I'm misunderstanding you, I think I addressed that in an earlier reply:

I thought this was obvious, but perhaps not:

New nodes could ask others for the current root then. If nodes lie about it, there are one of two possible scenarios:

- They give a root that is too old. This can be mitigated by asking multiple nodes and picking the majority answer, combined with simply downloading the rest of the blockchain. If it got unlucky and the majority lied, it will eventually catch up and discard the outdated root on its own anyway because of the rolling window that's hard coded.

Downloading the rest of the block chain requires someone storing the entire block chain, no? You can't download something which everyone has deleted.

But besides that you have an even bigger problem: it costs me, or any network attacker approximately nothing to make sure that every single node you connect to is a compromised node I control. This is the problem which bitcoin seeks to solve! And the answer which Satoshi came up with, and the only answer which we have at this time is to validate the entire chain from start to finish and trust the longest valid fork.

- They give a root that's too young. This can be mitigated, again, by asking multiple nodes. If it also gets unlucky with its chosen majority, it should be able to figure this out because it's assumed that not all nodes are evil, and it will eventually stumble across a trustworthy one, which would make it have a longer blockchain than the ones that the lying nodes gave it, and it would automatically adopt that one.

This is an invalid assumption. Your ISP could simply block packets from honest nodes, for example.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 05, 2014, 09:06:33 PM
Unless I'm misunderstanding you, I think I addressed that in an earlier reply:

I thought this was obvious, but perhaps not:

New nodes could ask others for the current root then. If nodes lie about it, there are one of two possible scenarios:

- They give a root that is too old. This can be mitigated by asking multiple nodes and picking the majority answer, combined with simply downloading the rest of the blockchain. If it got unlucky and the majority lied, it will eventually catch up and discard the outdated root on its own anyway because of the rolling window that's hard coded.

Downloading the rest of the block chain requires someone storing the entire block chain, no? You can't download something which everyone has deleted.

I do not believe that is correct.

The relevant bits of "the entire block chain" are always carried forward by the network and stored.

This proposal is addressing the irrelevant bits, which can include some or all of the following:

- Lost coins (a coin can be declared "lost" by some metric, like coin age > T, where T = 2 years.)
- The histories of coins that were spent and are now living farther down in the blockchain (within the rolling window).
- Any other outdated information.

There's no reason to store the history of a "coin" (in quotes because we're really talking about balances) all the way back to its creation. It can simply have a new, verified "origination point" in the blockchain.

Quote
But besides that you have an even bigger problem: it costs me, or any network attacker approximately nothing to make sure that every single node you connect to is a compromised node I control. This is the problem which bitcoin seeks to solve! And the answer which Satoshi came up with, and the only answer which we have at this time is to validate the entire chain from start to finish and trust the longest valid fork.

That answer is, as far as I can tell, identical to what I am proposing. All the implications remain the same. You still end up needing to validate "the longest fork", it's just that forks are trimmed down to a reasonable size.

- They give a root that's too young. This can be mitigated, again, by asking multiple nodes. If it also gets unlucky with its chosen majority, it should be able to figure this out because it's assumed that not all nodes are evil, and it will eventually stumble across a trustworthy one, which would make it have a longer blockchain than the ones that the lying nodes gave it, and it would automatically adopt that one.

This is an invalid assumption. Your ISP could simply block packets from honest nodes, for example.

Yes, and that's a problem that Bitcoin also faces. There's no difference that I can see here.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: kjj on March 06, 2014, 02:14:31 AM
Quote
1:31:31 PM sipa: sugarpuff: now, about dealing with ways to improve performance, IF you are giving up zero trust

I just want to point this out, to make sure that no one overlooked it.

Lots of problems get really, really easy once you give up security.  Trusted systems have wildly different properties than trustless systems.  If you don't mind moving from a trustless to a trusted system, then what you are proposing can work*.

P.S.  Nothing in this thread is new.  Even the posts telling you it won't work are recycled.

* For some values of work.  If bitcoin had been designed as a trusted system (even a distributed-trust system like you are proposing), I'm not sure that they would have worked in the sense of being worth trading 6 cents for, much less $600+.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 06, 2014, 03:20:03 AM
Quote
1:31:31 PM sipa: sugarpuff: now, about dealing with ways to improve performance, IF you are giving up zero trust

I just want to point this out, to make sure that no one overlooked it.

Lots of problems get really, really easy once you give up security.

That is nonsense. Just a false characterization of what is being proposed.

Security is not being given up.

Quote
Trusted systems have wildly different properties than trustless systems.  If you don't mind moving from a trustless to a trusted system, then what you are proposing can work*.

And people on the internet often make "wildly" thoughtless comments, like this one here.

This is not a black and white proposal like you are trying to make it out to be.

It is not a suggestion in the slightest to "give up security."

The fact is that ancient blocks, at any given point in time, are already highly trusted by the network. If they weren't, Bitcoin would simply not work.

There is already "trust" in the Bitcoin network, for these ancient blocks.

For established nodes, there would be zero difference.

And for brand new nodes:

1. They would actually exist.

If the "doomsday scenario" pans out, and 14TB is needed every 3 months, there would be virtually no new nodes. Your trustless system would be mostly useless to most people, including, probably, you (unless you have a datacenter in your back yard).

2. It would be not entirely trustless, but "approximately trustless" (like 99.9% trustless, once the entire window has been consumed). Read the rest of that IRC chat. New full-nodes would have security greater than the already very-secure light clients that we have today like Electrum.

3. There would be nothing stopping those nodes, if they really want, from downloading an archive of the no-longer-useful data from the discarded blockchain tail.

Quote
Even the posts telling you it won't work are recycled.

So far not a single post has shown that this "won't work". Every objection was answered.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: gmaxwell on March 06, 2014, 03:36:32 AM
Quote
The fact is that ancient blocks, at any given point in time, are already highly trusted by the network. If they weren't, Bitcoin would simply not work.
There is already "trust" in the Bitcoin network, for these ancient block
Every node verifies the history, this is how you can be sure that claims like "satoshi premined a billion bitcoins and is secretly waiting to spend them" cannot be true. We do not trust, and cannot trust— because it would be trust founded on nothing. Without verification there is no reason for unidentifiable, anonymous parties not to lie in favor of their own common interests. What actually makes the Bitcoin state trust worthy is because people verify it instead of trusting it.

I think you should stop using the word trustless while you have multiple bitcoin developers telling you that you do not understand it.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 06, 2014, 03:48:42 AM
Quote
The fact is that ancient blocks, at any given point in time, are already highly trusted by the network. If they weren't, Bitcoin would simply not work.
There is already "trust" in the Bitcoin network, for these ancient block
Every node verifies the history, this is how you can be sure that claims like "satoshi premined a billion bitcoins and is secretly waiting to spend them" cannot be true. We do not trust, and cannot trust— because it would be trust founded on nothing.

Except your own Wiki says the opposite:

Quote
Only a small number of archival nodes need to store the full chain going back to the genesis block. These nodes can be used to bootstrap new fully validating nodes from scratch but are otherwise unnecessary.

From: https://en.bitcoin.it/wiki/Scalability#Storage

Notice how nowhere in that section does it say anything close to "Every node verifies the history.", and instead refers to "archival nodes". It also says "Only a small number" of them are needed.


Quote
I think you should stop using the word trustless while you have multiple bitcoin developers telling you that you do not understand it.

The way my mind works is that I do not accept BS from anyone. It doesn't matter how large an angry mob gets if what it is saying is complete nonsense.

I've addressed every objection to this proposal, and have received confirmation on it now from two people who seem to know something about Bitcoin: Realpra, and a friend of mine whom I know is intelligent (works on SocialVPN). And while not a vote of recognition, one of the Bitcoin is Vulnerable authors didn't say that the idea wouldn't work when I shared it with him, but said "i'd feel nostalgic if i had to part with the genesis block." :P

Edit: I called it 99.9% trustless, not 100%.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: gmaxwell on March 06, 2014, 03:52:23 AM
Except your own Wiki says the opposite:
The wiki is a public document that anyone can edit. The scalability page is almost entirely the work of a single person who has removed views conflicting with his own onto other pages (including my own, for that matter).  You should be a sophisticated consumer of wiki content and not believe everything you read.
Quote
Quote
I think you should stop using the word trustless while you have multiple bitcoin developers telling you that you do not understand it.
The way my mind works is that I do not accept BS from anyone. It doesn't matter how large an angry mob gets if what it is saying is complete nonsense.
I've addressed every objection to this proposal, and have received confirmation on it now from two people who seem to know something about Bitcoin: Realpra, and a friend of mine whom I know is intelligent (works on SocialVPN).
You haven't really addressed _any_ of the objections here, because apparently you do not understand them. I spent quite a bit of time on IRC trying to help you understand but I have failed you. I'm sorry that I'm unable to help further.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: DannyHamilton on March 06, 2014, 03:53:55 AM
One of the more talented trolls I've seen in a while.  I actually thought he was trying to learn and understand at first.  It took almost 24 hours before I realized that it was a ruse to bait knowledgeable people into boosting his ego.  Looks like my kill file is getting another entry.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 06, 2014, 03:59:03 AM
Except your own Wiki says the opposite:
The wiki is a public document that anyone can edit. The scalability page is almost entirely the work of a single person who has removed views conflicting with his own onto other pages (including my own, for that matter).  You should be a sophisticated consumer of wiki content and not believe everything you read.

Yes, I try to be. I also try to be a "sophisticated consumer" of public forum comments.

You haven't really addressed _any_ of the objections here, because apparently you do not understand them. I spent quite a bit of time on IRC trying to help you understand but I have failed you. I'm sorry that I'm unable to help further.

On IRC I agreed that it's not 100% trustless, and frankly you weren't very helpful, just like you're not being helpful here. sipa was the one who actually gave meaningful help and explanations. (None of which, btw, showed that this proposal "lacks security" or anything of the sort.)

So far, this is what has happened here (as far as I can tell):

Me: blah blah blah
Someone: that won't work because of X
Me: That's incorrect because of Y
Realpra: Sugarpuff, your proposal had this other name (indication of agreement).
gmaxwell: "You haven't really addressed _any_ of the objections here"
DannyHamilton: ad hominem attack directed at sugarpuff

OK, if this is how you guys discuss ideas, no thank you, I've had enough. I'll reply to constructive comments that actually address the merits of the proposal only.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: DeathAndTaxes on March 06, 2014, 04:04:32 AM
Quote
The fact is that ancient blocks, at any given point in time, are already highly trusted by the network. If they weren't, Bitcoin would simply not work.
There is already "trust" in the Bitcoin network, for these ancient block
Every node verifies the history, this is how you can be sure that claims like "satoshi premined a billion bitcoins and is secretly waiting to spend them" cannot be true. We do not trust, and cannot trust— because it would be trust founded on nothing.

Except your own Wiki says the opposite:

Quote
Only a small number of archival nodes need to store the full chain going back to the genesis block. These nodes can be used to bootstrap new fully validating nodes from scratch but are otherwise unnecessary.

From: https://en.bitcoin.it/wiki/Scalability#Storage

Notice how nowhere in that section does it say anything close to "Every node verifies the history.", and instead refers to "archival nodes". It also says "Only a small number" of them are needed.


Quote
I think you should stop using the word trustless while you have multiple bitcoin developers telling you that you do not understand it.

The way my mind works is that I do not accept BS from anyone. It doesn't matter how large an angry mob gets if what it is saying is complete nonsense.

I've addressed every objection to this proposal, and have received confirmation on it now from two people who seem to know something about Bitcoin: Realpra, and a friend of mine whom I know is intelligent (works on SocialVPN). And while not a vote of recognition, one of the Bitcoin is Vulnerable authors didn't say that the idea wouldn't work when I shared it with him, but said "i'd feel nostalgic if i had to part with the genesis block." :P

Edit: I called it 99.9% trustless, not 100%.

No you just lack the knowledge to understand what you are reading.

As pointed out the wiki is simply public docs.  It is one possible way to deal with scalability.  Anything in the wiki which goes beyond the actual current protocol should be treated as an opinon.

However even if the cited section was implemented it would still be trustless.   Full nodes would still maintain a pruned copy of the blockchain going all the way back to the genesis block.  An unpruned copy (the archive node) is not required to validation transactions or create new blocks.   Nobody needs to trust the archive nodes.  

Your "solution" (and I use the term lightly) would break that trustless relationship between nodes.  

So either you are trolling for trolling sake or you are genuinely interested but lack the basic knowledge.  It would be like someone without any higher mathematics trying to understand how public key cryptography works and coming up with "enhancements".   If you aren't trolling, or just looking to debate to feel important ... then stop trying to fix Bitcoin before you undertstand Bitcoin.  Take a couple weeks starting with the whitepaper, the wiki and then the source code.  

Nobody is saying a ledger type system is impossible but it a non-trivial problem.  If you think you found a trivial solution to a non-trivial problem in a few minutes ... you haven't.

OK, if this is how you guys discuss ideas, no thank you, I've had enough. I'll reply to constructive comments that actually address the merits of the proposal only.

You haven't provided a proposal.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: kjj on March 06, 2014, 04:12:58 AM
You haven't really addressed _any_ of the objections here, because apparently you do not understand them. I spent quite a bit of time on IRC trying to help you understand but I have failed you. I'm sorry that I'm unable to help further.

On IRC I agreed that it's not 100% trustless, and frankly you weren't very helpful, just like you're not being helpful here. sipa was the one who actually gave meaningful help and explanations. (None of which, btw, showed that this proposal "lacks security" or anything of the sort.)

So far, this is what has happened here (as far as I can tell):

Me: blah blah blah
Someone: that won't work because of X
Me: That's incorrect because of Y
Realpra: Sugarpuff, your proposal had this other name (indication of agreement).
gmaxwell: "You haven't really addressed _any_ of the objections here"
DannyHamilton: ad hominem attack directed at sugarpuff

OK, if this is how you guys discuss ideas, no thank you, I've had enough. I'll reply to constructive comments that actually address the merits of the proposal only.

We don't need to show shit.  You need to show that your proposal has merit.  We've tried to suggest that you'd do well to find the extensive literature on this exact idea, but you've refused to do that basic research*.

As I said on IRC:

Quote
I really don't understand why you are discussing this.  Clearly you've come up with an idea that no one ever has before.  Now you just need to code it up and the whole world will switch to your fork.

Option 1 is that you had a new and amazing insight that no one has ever had before*, and the world is waiting to beat a path to your door.
Option 2 is that other people have also thought of it, and yet it hasn't happened, quite possibly because it has flaws that you should acquaint yourself with*.

* This has come up many times in the last 3 years (I've personally seen it).  It probably came up a few times in the two years before then.  I bet that if you look closely, you'll find the basic outline of the general problem come up on crypto mailing lists back into the 90s.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 06, 2014, 04:19:48 AM
DeathAndTaxes, replies to your constructive comments are inlined below:

However even if the cited section was implemented it would still be trustless.   Full nodes would still maintain a pruned copy of the blockchain going all the way back to the genesis block.  An unpruned copy (the archive node) is not required to validation transactions or create new blocks.   Nobody needs to trust the archive nodes.  

Thank you, I understand that but it's helpful to emphasize that.

Quote
Your "solution" (and I use the term lightly) would break that trustless relationship between nodes.

How?

You can state that as much as you want, but without a "because ..." it's a "just-so comment" without a leg to stand on.

The relationship indeed becomes no longer 100% trustless as I've acknowledged multiple times.

But for the sake of a tiny increase in trust, you get a network where new full nodes can be brought online without having to download several hundred terabytes of data. EDIT: that still retain their ability to verify all the way back to the original root, on their own time.

If Bitcoin gets to that point, you will come back to this proposal, and you will see it in a different light all of a sudden.

You see, as I've mentioned, I have read the Bitcoin paper. Several times. I understand it well.

The Bitcoin paper points out this interesting property of the blockchain: that the longer it gets, the harder it gets to fake. Impossibly harder.

You don't need to download a blockchain that is 200TB in size to become pretty darn sure that what you're seeing is the Real McCoy. 1TB will probably do just fine (depending on the volume of transactions of course).

So, if you're going to reply again (and you want a response from me), please reply to one of the points that I've made, and avoid doing any of the following:

- Calling me a troll (because I am not trolling) or resorting to other forms of ad hominem
- Making "just-so" statements like I "don't understand", without showing what I am misunderstanding
- Telling me to go read the paper that I have read several times.
- Telling me to go read the wiki. I have done that. I've even quoted it here recently.
- Lying.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 06, 2014, 04:29:59 AM
you've refused to do that basic research*.

False. (https://bitcointalk.org/index.php?topic=501039.msg5530547#msg5530547)


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: DeathAndTaxes on March 06, 2014, 04:38:58 AM
Quote
But for the sake of a tiny increase in trust, you get a network where new full nodes can be brought online without having to download several hundred terabytes of data. EDIT: that still retain their ability to verify all the way back to the root, on their own time.

Satoshi already created a 100% trustless solution to this called SPV.  It allows lite nodes to be instantly online and download from peers only the portions of the blockchain they need in real time. Install client and you are instantly ready to start transacting.  Your "solution" doesn't work but even if it did would be inferior to SPV which is something Satoshi came up with before the blockhain even started.

Quote
You see, as I've mentioned, I have read the Bitcoin paper. Several times. I understand it well.

No you don't or you wouldn't make mistakes like saying "transactions which are spent" or the one you just repeated below.  You also would have realized the SPV clients exist.

Quote
The Bitcoin paper points out this interesting property of the blockchain: that the longer it gets, the harder it gets to fake. Impossibly harder.

This isn't in a vacuum that property only applies because for a given tx, the tx, and everything that is needed to validate that tx is also deeper in the blockchain.  You can't throw that away and then assume the same dynamic is in play.

Quote
The relationship indeed becomes no longer 100% trustless as I've acknowledged multiple times.
Any system which is not 100% trustless is inferior to the system we have now.   Why would you want to make the protocol worse.  The only way space ever becomes a concern is if Bitcoin becomes many magnitudes larger which means an economy valued in the hundreds of billions if not trillions.   Any amount of trust when the payoff is that large will be at risk of compromise.

Quote
If Bitcoin gets to that point, you will come back to this proposal, and you will see it in a different light all of a sudden.
If Bitcoin "gets to that point" true proposals for a ledger system will be given more weight but true proposals actually address the risks rather than just pretend they don't exist.   You haven't proposed anything other than drop all method of verifiy a transaction, throw it into a new block at the head of the chain and hope nobody abuses that.  That isn't a proposal, that is nonsense.

Pruning is very likely to keep the storage requirements modest.  It is likely Bitcoin will never need a ledger snapshot system but if it did it would require more thought that what you propose.  Still the true bottlenecks to transaction volume are node bandwidth and memory.  You are trying to "fix" the bottleneck which isn't a bottleneck while consuming resources on the actual bottleneck.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: kjj on March 06, 2014, 04:52:23 AM
you've refused to do that basic research*.

False. (https://bitcointalk.org/index.php?topic=501039.msg5530547#msg5530547)

Saying "searching is hard" is not the same as doing research.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 06, 2014, 06:23:09 AM
No you don't or you wouldn't make mistakes like saying "transactions which are spent" or the one you just repeated below.

Sometimes I'm not super sharp with vocabulary that I don't use on a daily basis, sorry.

Just like people who say "ATM machine" or "HTTP protocol" though, it doesn't mean that I don't know what these things are.

You also would have realized the SPV clients exist.
Your "solution" doesn't work but even if it did would be inferior to SPV which is something Satoshi came up with before the blockhain even started.

Although you did not explain how this proposal is inferior to SPV, I'll try my best to show why it provides stronger security than SPV:

SPV clients can't do block-height verification (https://en.bitcoin.it/wiki/Thin_Client_Security#Full-Chain_Clients), whereas rolling-root clients do. Because of this, SPV clients can be fooled by a MITM double-spending attack (https://en.bitcoin.it/wiki/Thin_Client_Security#Block_Depth_as_a_Transaction_Validity_Check):

Quote
This is a concern in a situation where an SPV client is subjected to a double-spend attack by somebody who controls its network connection. For example, suppose you are at a wi-fi cafe and are paying for something using your smartphone -- the cafe owner controls your network connection. Satoshi acknowledges this implicitly when he writes that "the verification is reliable as long as honest nodes control the network" -- to be completely pedantic, this means that the verification is reliable as long as honest nodes control the part of the network that the SPV client is able to communicate with. In an attack-by-ISP scenario this may not be a sufficiently strong security property. The attacker would not need to overpower "the rest of the network" because the client is unable to communicate with it.

Rolling-root clients that have downloaded the blockchain of height W (the window size) cannot be fooled by this.

Quote
The Bitcoin paper points out this interesting property of the blockchain: that the longer it gets, the harder it gets to fake. Impossibly harder.

This isn't in a vacuum that property only applies because for a given tx, the tx, and everything that is needed to validate that tx is also deeper in the blockchain.  You can't throw that away and then assume the same dynamic is in play.

Sorry, I'm not sure I understand you, what are you accusing me of throwing away? I'm pretty sure I'm not throwing away block-depth verification if that's what you mean.

Quote
The relationship indeed becomes no longer 100% trustless as I've acknowledged multiple times.
Any system which is not 100% trustless is inferior to the system we have now.  Why would you want to make the protocol worse.

Don't think that's true, as I've pointed out multiple times.

A protocol that requires a new node to potentially download hundreds of terabytes seems like it already has problems significant enough to threaten its future existence.

If that absurd requirement can be removed at the tiny expensive of decreasing the "trustlessness" from 100% to ~99%, then it seems like an improvement to the protocol.

There is nothing stopping some nodes from serving as archival nodes (and potentially competing with one another). There are probably a bunch of ways to restore the trustlessness of the system (or notify nodes that they need to look farther back in time) if needed.

For example, say the window size is 1TB, and the total legit blockchain is 100TB. Rolling-root nodes as well as archive nodes could help with the verification of the current rolling root. They could include in the current rolling root a hash of some data that is representative of the rest of the 99TB. If the rolling-root clients discover a discrepancy in this hash, they'll know immediately that something is up. At that point they could initiate additional verification until they resolve the conflict.

You haven't proposed anything other than drop all method of verifiy a transaction

That is not true.

Quote
, throw it into a new block at the head of the chain and hope nobody abuses that.

Nobody could abuse it. The ancient unspent coins are signed by a private key that only their owner (hopefully) has. The balance isn't being modified. All that's happening is that balances are being carried forward so that they stay within the window.

There are two things that can be done with old coins:

1. If the idea of a "lost coin" is to be supported as a method of data-compression, then nodes would be responsible for ensuring that old coins are moved forward periodically. They could send a special transaction to do this and wait for it to be confirmed by the network.

2. If that sounds scary, coins can be kept forever regardless of age. The transactions containing them can simply be moved automatically according to some strict rules that I don't care enough to come up with (but am pretty sure exist). The private key is not needed to do this. The history of that transaction will be verified by the rolling-root clients up to the last known root that they have.

Also, the rolling-root clients can locally store (via pruning) the blockchain past the blockchain window size (for as long as they've been running).

Pruning is very likely to keep the storage requirements modest.  It is likely Bitcoin will never need a ledger snapshot system but if it did it would require more thought that what you propose.  Still the true bottlenecks to transaction volume are node bandwidth and memory.

Well this conversation is also about addressing the bandwidth requirement for new nodes to come online, and not specifically local storage requirements (pruning works for that, as you point out here, and as I pointed out earlier and in the edit to the OP).


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: DeathAndTaxes on March 06, 2014, 06:47:02 AM
There really is no more point in discussing it because you simply lack the proper understand of how bitcoin works.  It doesn't work the way you think it does and you can't fix something you don't understand.

I will leave you wish
a) SPV clients have copy of all block headers

b) there is no such thing as "balances" at an address.  Bitcoin works on the concept of inputs and outputs.

c) you say you will "carry forward" the balance into a new block but what happens when an attacker simply publishes a chain which contains unspent outputs that nobody has the historical records to validate anymore.  can you say unlimited minting?  With the current trust model an attacker with >51% hashrate is limited in what they can do.  Under your system they could simply extend the blockchain far enough that most nodes no longer have the historical records to validate a "old" tx placed in a new block ever existed.  The attacker could destroy Bitcoin through unauthorized minting.  

d) "The transactions containing them can simply be moved automatically according to some strict rules that I don't care enough to come up with"  That is why you have no proposal.  "Um yeah we can do this stuff but it will require some stuff but I don't really fill like saying the stuff but if you don't agree with me you are jerks and just trolling.  We can fill in the stuff later and stuff."

I won't be responding again, you can't provide a proposal when you can't even speak the language.   At appeared at one time you were interested in actually learning how Bitcoin really works but that is obviously not the case.  If you have no interesting in actually learning how the system you are trying to "fix" works then don't be surprised when nobody takes you seriously.



Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 06, 2014, 07:01:13 AM
a) SPV clients have copy of all block headers

Yes, and that doesn't prevent the MITM attack that I mentioned.

Quote
b) there is no such thing as "balances" at an address.  Bitcoin works on the concept of inputs and outputs.

What language do you speak then? Special forum language?

Here is an address: 18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs (https://blockchain.info/address/18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs)

Click on that link and you will see on the resulting page a label that says Final Balance, indicating what I think is a "balance", at an "address".

Quote
d) "The transactions containing them can simply be moved automatically according to some strict rules that I don't care enough to come up with"  That is why you have no proposal.  "Um yeah we can do this stuff but it will require some stuff but I don't really fill like saying the stuff but if you don't agree with me you are jerks and just trolling.  We can fill in the stuff later and stuff."

... Maybe I will take the time, or maybe I won't. It doesn't much matter in the end does it? If you don't see the potential usefulness of the idea at this point, I don't think you'll see it even if I write the code for it, so why waste my time?


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: V4Vendettas on March 06, 2014, 07:04:57 AM
Sounds to me like I'm going to need a bigger hard disk. Still I have every faith some smart lad or lass will come up with a solution. Seems bitcoins come so far it would be a shame for it to fall apart because of the block size. I just cant see it happening or maybe I just don't want to see it.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: kjj on March 06, 2014, 11:56:00 AM
Quote
b) there is no such thing as "balances" at an address.  Bitcoin works on the concept of inputs and outputs.

What language do you speak then? Special forum language?

Here is an address: 18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs (https://blockchain.info/address/18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs)

Click on that link and you will see on the resulting page a label that says Final Balance, indicating what I think is a "balance", at an "address".

Well, this farce has gone on long enough.  By now it should be perfectly clear to anyone stumbling across this thread that you are a moron with no interest in how bitcoin actually works.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: oakpacific on March 06, 2014, 12:47:43 PM
People insist on retaining a full copy of blockchain locally, supposedly for the purpose of protecting the interest of every Bitcoin user, nevertheless, if the anonymization of coins through Coinjoin/CoinSwap/Stealth payment...becomes widespread in the future, those who participate in such txs will have absolutely no interest in you keeping a record of them and couldn't appreciate you more for pruning them.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: maaku on March 06, 2014, 04:03:08 PM
People insist on retaining a full copy of blockchain locally, supposedly for the purpose of protecting the interest of every Bitcoin user, nevertheless, if the anonymization of coins through Coinjoin/CoinSwap/Stealth payment...becomes widespread in the future, those who participate in such txs will have absolutely no interest in you keeping a record of them and couldn't appreciate you more for pruning them.

Those anonymizing techniques are interesting specifically because the records of transfer are not kept on-chain.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: oakpacific on March 06, 2014, 04:16:36 PM
People insist on retaining a full copy of blockchain locally, supposedly for the purpose of protecting the interest of every Bitcoin user, nevertheless, if the anonymization of coins through Coinjoin/CoinSwap/Stealth payment...becomes widespread in the future, those who participate in such txs will have absolutely no interest in you keeping a record of them and couldn't appreciate you more for pruning them.

Those anonymizing techniques are interesting specifically because the records of transfer are not kept on-chain.

I meant even the remaining tx info they wouldn't care to have removed.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 06, 2014, 04:50:05 PM
Well, this farce has gone on long enough.  By now it should be perfectly clear to anyone stumbling across this thread that you are a moron with no interest in how bitcoin actually works.

I'm sure that's also true of the people who run blockchain.info, you should go tell them that.

They could write, instead of "Final Balance", "the summation of all of the bitcoins sent to this public key fingerprint (successful "transactions") minus the summation of the bitcoins sent by the private key for this public key fingerprint to another public key fingerprint that resulted in successful transactions that made their way into a block that was accepted by the network", but that would be silly. Likewise, for ever instance that I've said the word "balance" in reference to an "address", I could have defined what those words really mean and how they are calculated, but that would be ridiculous too. It is assumed that people like you who claim to understand how bitcoin works know what those words refer to.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: mot7 on March 12, 2014, 04:37:39 AM
Unspent outputs are only a transactionID and an output number.   In other words , any spending of a Bitcoin requires this sha256 hash and a number referring to the output and the script therein.

Bitcoins dont exist. Inputs and outputs do.

What a rolling root should be (based on my understanding so far) is a pointer to that transaction.  

So how about this formula:

Agree on a confirmation count that provides zero trust guarantees.  Say 100,000

Find the lowest target in the blockchain (remember difficulty can decrease due to a split or other reasons).  If that is less than 100,000 (selected above) then choose the candidate purge point to start at current-100,000 blocks.  If it is more than 100,000 blocks away from the current block, candidate purge point starts at that location.

Change the block version number to "4" (versions 3 are already assigned) and include a special spot for old unspent transactions.  Transactions in this special part of the block would look like double spends if placed in the regular part of the block therefore special handling is needed.  Miners and full nodes will need to validate that the full txid hash ( no matter what normalized form it's in) is identical to the old tx.   

The transaction will then live in two blocks, but with the same txid and same outputs.  During the sunset period all clients and miners should verify that the old tx and new tx do have matching ids and content.  This protects from an exploit in sha256 as the current Tx is added to the trusted merkle tree.

After a sunset period of 100,000 blocks the old block can be purged.  

If someone attempts to modify the transaction, the SHA256 hash will be different.  All full nodes who see an altered transaction should reject the Tx, and if it's included in a block, reject the block.


Yes someone probably thought of this. Yes there are probably errors and inefficiencies but it seems logical.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: theonewhowaskazu on March 12, 2014, 04:58:24 AM
Random comment in here by a noob at this kind of thing, but I'm not quite seeing why this wouldn't work:

Every client keeps some kind of a record with a balance for each address, right (Or at least, a record with the balance of its own addresses).

At some point, its going to become more efficient to store the balance of each address, rather than the entire blockchain.

At that point, why not start encoding this balance of each address directly into blocks, and have it be verified by proof of work, just like every other transaction? After some number of confirmations (you can "work backward" from block N's balance table to that of block N-1 by looking at all of the transactions in block N) that transaction table is taken down and stored on your hard drive. Only addresses with balances need be stored.

Could it be that simple? Or is it useless as then the size would grow proportionate to the number of addresses with balances, instead? Still, seems number of addresses with balances < total number of transactions in the long run.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: DeathAndTaxes on March 12, 2014, 05:37:41 AM
There is no such thing as "balance at an address" that is merely an abstraction.  The only thing which exists is input and outputs.   A transactions references as it inputs the unspent outputs of prior transactions.  The transaction destroys (or "spends") those referenced output(s) and creates new outputs (which will become the inputs of future txs).

All spent outputs can already be pruned from the blockchain.  Of the ~18GB only ~4GB of that is usnpent outputs.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on March 12, 2014, 07:38:54 PM
Unspent outputs are only a transactionID and an output number.   In other words , any spending of a Bitcoin requires this sha256 hash and a number referring to the output and the script therein.

Bitcoins dont exist. Inputs and outputs do.

(The following comments are not directed entirely at you, mot7, but at everyone who keeps bringing this issue up.)

It baffles me how this thread got so derailed over this philosophical point.

Bitcoins both exist and don't exist. The word "Bitcoin", "balance", etc. exist in a quantum superposition of linguistic masturbation. They are a mechanism through which the universe gratifies the sexual urges of nerdy nit-pickers. The way it works is that one party has Concept A in mind when they say "Bitcoin" (or some other word), while the nit-picker insists on using Concept B for the same term. Concept B does not exist, so it is somewhat unclear why the nit-picker chooses said non-existent interpretation, but perhaps it is because it gives the nit-picker a way to attack another party and derail a thread.

What did Satoshi have to say about the "existence" of "Bitcoins"?

Quote from: Satoshi
We define an electronic coin as a chain of digital signatures.

That is what a Bitcoin is. Here you can see where the wave function collapsed to a value that actually does exist. If you have difficulty with the word, just substitute "input and output" or whatever other term you fancy. The English language is abundant with diverse words that all refer to the same concept.

It is a waste of everyone's time to derail this thread arguing about these semantics, especially when the other party (me) demonstrated that they know what an "input and output" is, what a "bitcoin" is, etc. The same is true for the word "balance".

Quote
Find the lowest target in the blockchain (remember difficulty can decrease due to a split or other reasons).  If that is less than 100,000 (selected above) then choose the candidate purge point to start at current-100,000 blocks.  If it is more than 100,000 blocks away from the current block, candidate purge point starts at that location.

Using confirmation count to determine the window size is interesting.

However, whatever the metric ends up being, it should probably be based on percentages, not absolute values (unless some absolute value can be demonstrated to be useful regardless of network size and transaction volume).

Thank you for bringing this thread back on topic mot7!  :)


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: maaku on March 14, 2014, 05:15:00 PM
When DeathAndTaxes says there's no such thing as a bitcoin balance, he's not making a philosophical point. He's saying that full nodes do not have balances, or the information necessary to efficiently calculate them in their working memory. Adding capabilities based on balances would require either adding this information to the working set (thereby increasing resource usage for all full nodes), or switching to using balances only which has drastic implications for bitcoin in terms of its low-level functionality. It would be a hard-fork that breaks all infrastructure out there for dubious benefit.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 18, 2014, 08:30:55 PM
At the request of "HoboJerk" (http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/#comment-1442376730), I've revived this thread.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 18, 2014, 10:31:18 PM
At the request of "HoboJerk" (http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/#comment-1442376730), I've revived this thread.

Copying a reply I posted there (http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/#comment-1442800545) which I am copying here because if my now (possibly complete) understanding of UTXO is correct, then UTXO is a superior solution to my rolling-root idea:

Quote from: sugarpuff
OK, I decided it's about time I dive into the details of UTXO to see whether or not you are correct. After spending about an hour reading and thinking about it, I think you might be correct.

Here is my current understanding, please let me know whether I've understood it correctly (you too @HoboJerk):

For a new node to boot up from scratch and begin securing the network, approximately the following needs to happen:

1. Download entire BTC blockchain headers.
2. Download entire UTXO blockchain headers. EDIT: download the entire UTXO meta chain.
3. Begin merged mining on UTXO and BTC blockchains.
4. For each new transaction the "almost-full node" receives, query other nodes for the block in which the payer's bitcoins were previously located, along with the hashes to verify the merkle root in the BTC blockchain. Verify the root can be found.
5. Query other nodes for the transactions and merkle root hashes that result in the merkle root hash of the most recent block in the UTXO blockchain. Verify that previous txn the coins belong to exists in the current data comprising the most recent merkle root of the UTXO blockchain.
6. If the transaction passes the above verifications, store all received data so far in order to build the Merkle hash tree that represents all the UTXOs.
7. Continue mining blocks as per above to secure the network and build new blocks, slowly transforming this light node into a full node.

Is that correct? If that's how it works, then you are both correct UTXO secures the network and brings new nodes online fast (and is actually better, I think, than my rolling-root suggestion).

I welcome replies here too as to whether or not I understood UTXO correctly.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 19, 2014, 12:12:35 AM
Copying a reply I posted there (http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/#comment-1442800545) which I am copying here because if my now (possibly complete) understanding of UTXO is correct, then UTXO is a superior solution to my rolling-root idea:

Quote from: sugarpuff
OK, I decided it's about time I dive into the details of UTXO to see whether or not you are correct. After spending about an hour reading and thinking about it, I think you might be correct.

Here is my current understanding, please let me know whether I've understood it correctly (you too @HoboJerk):

For a new node to boot up from scratch and begin securing the network, approximately the following needs to happen:

1. Download entire BTC blockchain headers.
2. Download entire UTXO blockchain headers. EDIT: download the entire UTXO meta chain.
3. Begin merged mining on UTXO and BTC blockchains.
4. For each new transaction the "almost-full node" receives, query other nodes for the block in which the payer's bitcoins were previously located, along with the hashes to verify the merkle root in the BTC blockchain. Verify the root can be found.
5. Query other nodes for the transactions and merkle root hashes that result in the merkle root hash of the most recent block in the UTXO blockchain. Verify that previous txn the coins belong to exists in the current data comprising the most recent merkle root of the UTXO blockchain.
6. If the transaction passes the above verifications, store all received data so far in order to build the Merkle hash tree that represents all the UTXOs.
7. Continue mining blocks as per above to secure the network and build new blocks, slowly transforming this light node into a full node.

Is that correct? If that's how it works, then you are both correct UTXO secures the network and brings new nodes online fast (and is actually better, I think, than my rolling-root suggestion).

Actually, I'm not sure about that. What's the incentive for nodes to mine on that meta-chain? There doesn't seem to be one, and without a compelling incentive a denial-of-service attack might be possible against UTXO. Since mining on the meta-chain decreases the rewards a miner can expect (if there were to mine only on BTC), they wouldn't mine on it, and that might make it easier for someone to get 51% control over it... I'm not sure how that would play out.

I see that the UTXO thread has some discussion about this issue, but it's too late in the day for me to spend more time on this (work calls!): https://bitcointalk.org/index.php?topic=88208.msg971762#msg971762


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 19, 2014, 12:52:50 AM
Actually, I'm not sure about that. What's the incentive for nodes to mine on that meta-chain? There doesn't seem to be one, and without a compelling incentive a denial-of-service attack might be possible against UTXO. Since mining on the meta-chain decreases the rewards a miner can expect (if there were to mine only on BTC), they wouldn't mine on it, and that might make it easier for someone to get 51% control over it... I'm not sure how that would play out.

I see that the UTXO thread has some discussion about this issue, but it's too late in the day for me to spend more time on this (work calls!): https://bitcointalk.org/index.php?topic=88208.msg971762#msg971762

maaku made an interesting reply in that thread in response to my request for confirmation of understanding.

Here is that reply along with my follow-up question, you might want to follow along in the UTXO thread (https://bitcointalk.org/index.php?topic=88208.msg7389921#msg7389921):

You never ever under any circumstances want to be mining on top of a chain you have not validated the entire history of.

Interesting point. Hope you don't mind if I mention your reply in that other thread as well.

So, what is the takeaway from that then? That new lite-nodes can use UTXO to validate arbitrary queries, but they cannot participate in securing the network until they have all the transactions for the leaf nodes of the entire UTXO tree?


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 19, 2014, 03:20:29 AM
Looks like rolling-root is still needed for new nodes to be brought online reliably because UTXO, according to maaku, requires you "to download and process every single block since Genesis": https://bitcointalk.org/index.php?topic=88208.msg7391152#msg7391152


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: jonald_fyookball on June 19, 2014, 04:00:39 AM
OP, It seems like the bottom line is you would need massive changes to bitcoin (with hard fork) to do what you want to do....and really the scalability problem is quite manageable so that's why it doesn't make sense.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 19, 2014, 04:12:06 AM
OP, It seems like the bottom line is you would need massive changes to bitcoin (with hard fork) to do what you want to do....

It's time for a hard fork anyway:

http://hackingdistributed.com/2014/06/13/time-for-a-hard-bitcoin-fork/
http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/

Quote
the scalability problem is quite manageable so that's why it doesn't make sense.

There are opinions, and there is data. The latter impresses me more and is linked in the first post.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 20, 2014, 07:29:58 PM
In the UTXO thread, I modified the "7 steps" in the previous posts here with my current understanding of how UTXO can be used to quickly boot up "full-security new lite-nodes":

https://bitcointalk.org/index.php?topic=88208.msg7423013#msg7423013


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: bitfreak! on June 21, 2014, 01:15:41 PM
Every client keeps some kind of a record with a balance for each address
As mentioned, it's not really possible to do that with Bitcoin due to the way inputs and outputs work. But I do have a project underway right now where we are designing an alt coin which works in essentially this way, it stores the balance of all non-empty addresses in a structure we call the "account tree", enabling us to delete ALL transactions after a certain period of time passes (1 week in our implementation). We have removed the entire idea of interlocking transactions and replaced it with a much simpler concept where transactions perform basic operations on the account tree such as "subtract coins from balance of address A and add to balance of address B". Obviously without any type of script system our coin is less flexible, but we've already got support for multi-signature transactions, and many other cool features that aren't really possible without a balance sheet scheme. When you get down to it, people really just want simple types of transactions to perform simple banking functions. If we want this extreme level of scalability we're going to have to give up some flexibility, and that's not such a bad trade off considering that Bitcoin already has pretty strict rules about what transactions are considered standard format.

The other trade off, which seems to be more concerning for most people, is that deleting all the old transactions could lead to a situation where no one has them, since no one is required to have them, and that opens the door for someone with 51% or more of the hashing power to pull off an attack we call "The Secret Chain Attack". In our implementation it would require the attacker to maintain the majority of the hashing power for more than a week (in secret), since all transactions can be discarded after a week. But we believe even if this attack does happen it wont be catastrophic because 1) the attack will only affect nodes who haven't synced with the network in more than a week, all other nodes can detect the attack and reject the fake chain and 2) a possible Secret Chain Attack underway can be detected by new nodes, although they cannot know which chain is the real one. Based on settings specified by the user the new node will either refuse to participate in the network until one chain wins, or stick with the first chain it received, or wait for the release of a "community checkpoint" which would point them to the correct chain in the off chance this attack did happen.

Test thread:
[TEST RELEASE] Cryptonite binary for linux (mini-blockchain implementation) (https://bitcointalk.org/index.php?topic=643758)

Project Wiki:
Mini-Blockchain Project Wiki (http://bitfreak.info/mbc-wiki/)

More on Secret Chain Attack:
Weaknesses and attack vectors (http://bitfreak.info/mbc-wiki/index.php?title=Weaknesses_and_attack_vectors)


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: cr1776 on June 21, 2014, 03:49:25 PM
OP, It seems like the bottom line is you would need massive changes to bitcoin (with hard fork) to do what you want to do....

It's time for a hard fork anyway:

http://hackingdistributed.com/2014/06/13/time-for-a-hard-bitcoin-fork/
http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/

Quote
the scalability problem is quite manageable so that's why it doesn't make sense.

There are opinions, and there is data. The latter impresses me more and is linked in the first post.

Then fork it and implement the changes - unless that is what you've been working on since March and are ready to release some alpha or beta code, which would be cool.

Code will give some very good data as to how it works, potential issues etc.  Discussing it here will do little, but since it is open source, implementing will do a lot.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 21, 2014, 07:10:53 PM
Then fork it and implement the changes - unless that is what you've been working on since March and are ready to release some alpha or beta code, which would be cool.

Code will give some very good data as to how it works, potential issues etc.  Discussing it here will do little, but since it is open source, implementing will do a lot.

Sounds like "bitfreak!" might have implemented something not quite the same as a rolling root... I'm not sure why he's getting rid of unspent transactions after 1 week though (sounds like a bad design choice, but maybe I misunderstood when I skimmed it).

However, I am now getting more and more convinced that UTXO accomplishes the same goals as rolling root, just in a different manner. Since someone appears to be involved in implementing it, that seems like the way to go.

See this post and the replies that come after it: https://bitcointalk.org/index.php?topic=88208.msg7423013#msg7423013


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: bitfreak! on June 22, 2014, 06:26:20 AM
Sounds like "bitfreak!" might have implemented something not quite the same as a rolling root... I'm not sure why he's getting rid of unspent transactions after 1 week though (sounds like a bad design choice, but maybe I misunderstood when I skimmed it).
There is no such thing as "spent" and "unspent" transactions in the mini-blockchain scheme, and you're right, it's not the same as a "rolling root" design. The transactions simply perform operations on the account tree (the balance sheet). So you see, the inputs and outputs in our transactions do not point to other transactions, they simply point to addresses in the account tree, so the transactions aren't linked together the same way they are in bitcoin, and we can discard all transactions after a safe amount of time has elapsed (enough to make the Secret Chain Attack infeasible). In our implementation nodes will be able to delete all transactions older than a week, but they can choose to store as much history as they want. I'm sure many people will even choose to store the full blockchain for historic reasons. But for new nodes who don't have any of the blockchain, they wont need to download the full blockchain to synchronize with the network and become a full node, they only need the last weeks worth of transactions and the account tree. Of course the account tree will grow over time as new non-empty addresses come into existence but the level of compression and scalability this system offers is virtually unbeatable.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: e4xit on June 23, 2014, 08:15:31 AM
a) SPV clients have copy of all block headers

Yes, and that doesn't prevent the MITM attack that I mentioned.

Quote
b) there is no such thing as "balances" at an address.  Bitcoin works on the concept of inputs and outputs.

What language do you speak then? Special forum language?

Here is an address: 18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs (https://blockchain.info/address/18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs)

Click on that link and you will see on the resulting page a label that says Final Balance, indicating what I think is a "balance", at an "address".

Quote
d) "The transactions containing them can simply be moved automatically according to some strict rules that I don't care enough to come up with"  That is why you have no proposal.  "Um yeah we can do this stuff but it will require some stuff but I don't really fill like saying the stuff but if you don't agree with me you are jerks and just trolling.  We can fill in the stuff later and stuff."

... Maybe I will take the time, or maybe I won't. It doesn't much matter in the end does it? If you don't see the potential usefulness of the idea at this point, I don't think you'll see it even if I write the code for it, so why waste my time?

Could you show me the lines from the blockchain (not the website) which show the 'balance' for this address you have selected as I can't find them and I have been searching for hours, thanks.

(reminder of your selected address 18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs (https://blockchain.info/address/18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs))


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 24, 2014, 01:18:02 AM
bitfreak: your paper is on my reading list and I have already read part of it. I'd like to get back to you soon on it with my impressions. Your paper will be the ... 3rd or 4th alternative consensus/blockchain proposal that I've reviewed, and it looks promising. Here are some preliminary comments since I suspect that my full review won't come for a while due to deadlines:

- One of the few important things that you're missing is the recent 51% solution to mining pools (http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/). Add that to your protocol/software and you'll go a long way to have a altcoin/altchain of major significance.

- You use "we" frequently in your writings but it sounds like you mean to say "I". If you have multiple people working on this you should make that clear by mentioning their names.

- Your other thread seems to indicate that you're already mining and giving away coins? There are good ways and bad ways of doing this, and depending on which method you choose it can make or break your coin. More fair = more chances of success for the coin (and you). I recommend doing a *lot* of reading on this and seeing how other coins approached the task (and what the end result was). And if you're too lazy to do that, just do whatever Ethereum is doing (Vitalik is a bright guy).

Now, to answer e4xit:

Could you show me the lines from the blockchain (not the website) which show the 'balance' for this address you have selected as I can't find them and I have been searching for hours, thanks.

(reminder of your selected address 18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs (https://blockchain.info/address/18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs))

The balance is calculated from the inputs and outputs to that address. You would need to know how to do arithmetic to figure it out (or have your computer or friend do it for you).


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: e4xit on June 24, 2014, 07:35:26 AM
Now, to answer e4xit:

Could you show me the lines from the blockchain (not the website) which show the 'balance' for this address you have selected as I can't find them and I have been searching for hours, thanks.

(reminder of your selected address 18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs (https://blockchain.info/address/18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs))

The balance is calculated from the inputs and outputs to that address. You would need to know how to do arithmetic to figure it out (or have your computer or friend do it for you).

I thought you might answer something like "do arithmetic"... I hate to say it but I think that I must agree with some of the other members who have posted here when they say that I think you lack quite a lot of understanding regarding bitcoin: the protocol.

NB. I'm not saying that I think that you don't understand bitcoin: the idea.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: cr1776 on June 24, 2014, 10:04:23 AM
bitfreak: your paper is on my reading list and I have already read part of it. I'd like to get back to you soon on it with my impressions. Your paper will be the ... 3rd or 4th alternative consensus/blockchain proposal that I've reviewed, and it looks promising. Here are some preliminary comments since I suspect that my full review won't come for a while due to deadlines:

- One of the few important things that you're missing is the recent 51% solution to mining pools (http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/). Add that to your protocol/software and you'll go a long way to have a altcoin/altchain of major significance.

- You use "we" frequently in your writings but it sounds like you mean to say "I". If you have multiple people working on this you should make that clear by mentioning their names.

- Your other thread seems to indicate that you're already mining and giving away coins? There are good ways and bad ways of doing this, and depending on which method you choose it can make or break your coin. More fair = more chances of success for the coin (and you). I recommend doing a *lot* of reading on this and seeing how other coins approached the task (and what the end result was). And if you're too lazy to do that, just do whatever Ethereum is doing (Vitalik is a bright guy).

Now, to answer e4xit:

Could you show me the lines from the blockchain (not the website) which show the 'balance' for this address you have selected as I can't find them and I have been searching for hours, thanks.

(reminder of your selected address 18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs (https://blockchain.info/address/18uvwkMJsg9cxFEd1QDFgQpoeXWmmSnqSs))

The balance is calculated from the inputs and outputs to that address. You would need to know how to do arithmetic to figure it out (or have your computer or friend do it for you).

In research papers the passive voice is often used. Likewise the royal we is often used even with one author (e.g. In a dissertation) despite Mark Twain's comment on the matter.

It does depend on the publication guidelines and local custom.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 24, 2014, 01:13:23 PM
I thought you might answer something like "do arithmetic"... I hate to say it but I think that I must agree with some of the other members who have posted here when they say that I think you lack quite a lot of understanding regarding bitcoin: the protocol.

NB. I'm not saying that I think that you don't understand bitcoin: the idea.

What do I not understand? Be specific, otherwise you're wasting everybody's time. :-\


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: bitfreak! on June 28, 2014, 10:09:40 AM
- One of the few important things that you're missing is the recent 51% solution to mining pools (http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/). Add that to your protocol/software and you'll go a long way to have a altcoin/altchain of major significance.
Well I'll keep that in mind but we already have a lot on our plate and I don't feel like pools pose a significant threat. People tend to leave pools when they become too large anyway.

- You use "we" frequently in your writings but it sounds like you mean to say "I". If you have multiple people working on this you should make that clear by mentioning their names.
There were several people involved in the development of the scheme and I have two developers working on the implementation. Some of them would prefer to remain anonymous so I refrain from mentioning names when possible.

- Your other thread seems to indicate that you're already mining and giving away coins?
No, that is a test thread where the client must run in testnet mode. Any coins mined in those tests will be lost, we've already had to reset the blockchain one or two times due to changes we made in the protocol.


Title: Re: A rolling root to solve Bitcoin's scalability problem?
Post by: sugarpuff on June 28, 2014, 03:16:16 PM
- One of the few important things that you're missing is the recent 51% solution to mining pools (http://hackingdistributed.com/2014/06/18/how-to-disincentivize-large-bitcoin-mining-pools/). Add that to your protocol/software and you'll go a long way to have a altcoin/altchain of major significance.
Well I'll keep that in mind but we already have a lot on our plate and I don't feel like pools pose a significant threat. People tend to leave pools when they become too large anyway.

Hmm.. myopia from the outset is not a good sign for the project, especially when such assumptions have been proven demonstrably false already.

- You use "we" frequently in your writings but it sounds like you mean to say "I". If you have multiple people working on this you should make that clear by mentioning their names.
There were several people involved in the development of the scheme and I have two developers working on the implementation. Some of them would prefer to remain anonymous so I refrain from mentioning names when possible.

"Some" or "all" wish to remain anonymous? If "some", then why aren't you mentioning the names of those who don't wish to be anonymous?

- Your other thread seems to indicate that you're already mining and giving away coins?
No, that is a test thread where the client must run in testnet mode. Any coins mined in those tests will be lost, we've already had to reset the blockchain one or two times due to changes we made in the protocol.

Ah, that's good to hear.