Pages:
Author

Topic: Scaling bitcoin: the elephant in the room - page 2. (Read 3381 times)

full member
Activity: 351
Merit: 134
How does the wallet=miner gets all the required data like last block, utxo,...? Only SPV style?

SPV clients will continue to work as normal. They can still mine blocks - it wont matter if they don't place their blocks right at the latest head block because their blocks will get referenced as an uncle by other, more dedicated miners.
hv_
legendary
Activity: 2520
Merit: 1055
Clean Code and Scale
How does the wallet=miner gets all the required data like last block, utxo,...? Only SPV style?
newbie
Activity: 49
Merit: 0
Did you get hacked through email recovery or password leak ?
I think moderator changed email for my account by "fake" requesst
https://bitcointalksearch.org/topic/m.20221556
Sorry for offtopic.

Not very reassuring that a moderator can do that Shocked Thank you for the explanation
full member
Activity: 351
Merit: 134
You are getting me but what if there are continuous thousands of new solved blocks then how would blockchain adds new blocks? I am not saying there are 10000 blocks at any one time but I mean that as users can set their difficulty very low to solve blocks and propagate their new block as soon as possible (yes, they can get little reward but swift transaction. Just think about a normal user). Isn't in that case network speed and latency etc. plays a very big role?

Network latency plays a very big part. When transaction throughput is high, the width of the top of the tree grows but then it'll shrink back down in periods where throughput is lower.

As miners who are in it for the money contribute their blocks, they greatly shrink the width of the tree because their blocks have a lot of 'weight' in terms of the difficulty solved, so when one of these blocks appears, everyone will tend to extend from it.

edit: think about the width of the tree being similar to a dynamically adjusting block size in normal bitcoin.
full member
Activity: 266
Merit: 100
Good thought.

Now explain it for 10000 blocks ready for the position of 101st block.

Sorry, I don't understand the question?

I think he means that there's 1000 blocks (think transactions) and every one wants to get on the main chain. How long would it take? I mean if the main block time would be a 1 sec that could be possible, as in your example after adding 1 block to main chain every transaction would have to solve puzzle again with a new header. That would take forever to include a single block. Or did I misunderstood your proposition?

Ok, so in the pathological case that 10000 users all begin sending a transaction at the same time, and by some miracle all their PoW are solved at exactly the same time, and no other transactions arrive during this period, then, yes you would have a temporary 10000 wide set of single block forks. But unless this set of circumstances continues, the process for resolving will happen naturally as miners of differently chosen difficulty solve blocks making one branch the leader in terms of cumulative difficulty.

The way to visualise this is like a tree, which expands in width as the transaction throughput increases, but further back in time, the trunk is much more narrow as a single best path of blocks back to the genesis will be visible, with the forks preserved by uncle references (other branches of the tree).

Cheers, Paul.

You are getting me but what if there are continuous thousands of new solved blocks then how would blockchain adds new blocks? I am not saying there are 10000 blocks at any one time but I mean that as users can set their difficulty very low to solve blocks and propagate their new block as soon as possible (yes, they can get little reward but swift transaction. Just think about a normal user). Isn't in that case network speed and latency etc. plays a very big role?
full member
Activity: 351
Merit: 134
Good thought.

Now explain it for 10000 blocks ready for the position of 101st block.

Sorry, I don't understand the question?

I think he means that there's 1000 blocks (think transactions) and every one wants to get on the main chain. How long would it take? I mean if the main block time would be a 1 sec that could be possible, as in your example after adding 1 block to main chain every transaction would have to solve puzzle again with a new header. That would take forever to include a single block. Or did I misunderstood your proposition?

Ok, so in the pathological case that 10000 users all begin sending a transaction at the same time, and by some miracle all their PoW are solved at exactly the same time, and no other transactions arrive during this period, then, yes you would have a temporary 10000 wide set of single block forks. But unless this set of circumstances continues, the process for resolving will happen naturally as miners of differently chosen difficulty solve blocks making one branch the leader in terms of cumulative difficulty.

The way to visualise this is like a tree, which expands in width as the transaction throughput increases, but further back in time, the trunk is much more narrow as a single best path of blocks back to the genesis will be visible, with the forks preserved by uncle references (other branches of the tree).

Cheers, Paul.
full member
Activity: 129
Merit: 101
Good thought.

Now explain it for 10000 blocks ready for the position of 101st block.

Sorry, I don't understand the question?

I think he means that there's 1000 blocks (think transactions) and every one wants to get on the main chain. How long would it take? I mean if the main block time would be a 1 sec that could be possible, as in your example after adding 1 block to main chain every transaction would have to solve puzzle again with a new header. That would take forever to include a single block. Or did I misunderstood your proposition?
full member
Activity: 351
Merit: 134
Good thought.

Now explain it for 10000 blocks ready for the position of 101st block.

Sorry, I don't understand the question?
full member
Activity: 266
Merit: 100
Good thought.

Now explain it for 10000 blocks ready for the position of 101st block.
full member
Activity: 351
Merit: 134
Ok, let me rephrase my question. So we are at block 100. Everyone knows were at block 100. 5 people mine based on block 100 and send their transaction at the same time. One on each continent. Each of those people propagate their own block as block 101. What happens?

Ok, I understand what you are getting it.

So, in that situation you have 5 new blocks at the same height referencing the same parent. What happens next is that someone else sends a transaction picking one of these branches to extend from (either like bitcoin does, or by tiebreaker rule) - this next person references one of the other branches as an uncle in the block he produces. Then along comes the next person, who extends the longest branch again, and again references an uncle branch, so the transactions in the brief 5 wide fork all get included in the ordering eventually and the system reconverges on the longest branch.

The big difference between this and the current bitcoin are the inclusion of the uncle references, which are a permanent record of forks, and allow forked blocks to be included in the set of valid transactions. This is necessary because otherwise users would need to retry sending their transactions over and over if they didn't place them on the correct branch.

Double spends which are also in forks are resolved by the way blocks are ordered - a block which contains a double spend persists within the ordering, but since it is invalid, it is simply ignored. The first spend of a set of outputs which is processed is the valid spend, the 2nd processed spend of those same outputs is invalid.

Here is an example of the ordering using uncle references:



Cheers, Paul.
legendary
Activity: 3038
Merit: 2166
Playgram - The Telegram Casino
...how does anyone know what the branch the one with the largest cumulative difficulty is if everyone is just firing transactions away on their own branches? How do you keep track of transactions if everyone is just writing their own transaction history? How do you achieve consensus what the actual global state of the ledger is? And once again, how do you prevent double spends? Nothing is preventing a user from sending the same coins multiple times to different addresses... they can just mine different transactions using the same inputs over and over again and see what sticks.

Users are not on their own branches - just like in bitcoin, miners/users aim to put blocks on the main branch with the greatest cumulative difficulty.

Ok, let me rephrase my question. So we are at block 100. Everyone knows were at block 100. 5 people mine based on block 100 and send their transaction at the same time. One on each continent. Each of those people propagate their own block as block 101. What happens?
full member
Activity: 351
Merit: 134
...how does anyone know what the branch the one with the largest cumulative difficulty is if everyone is just firing transactions away on their own branches? How do you keep track of transactions if everyone is just writing their own transaction history? How do you achieve consensus what the actual global state of the ledger is? And once again, how do you prevent double spends? Nothing is preventing a user from sending the same coins multiple times to different addresses... they can just mine different transactions using the same inputs over and over again and see what sticks.

Users are not on their own branches - just like in bitcoin, miners/users aim to put blocks on the main branch with the greatest cumulative difficulty.
legendary
Activity: 3038
Merit: 2166
Playgram - The Telegram Casino
1) If every user just mines their own blocks, how are double spends prevented?

2) If tiny blocks get propagated everywhere with users only mining their own blocks, how do they know which chain to base their blocks on?

3) How can miners still participate if there's no distinction between users and miners and everyone just mines their own chain?


1) There is still an LCR rule for selecting the branch with the largest cumulative difficulty. Users want to be on the longest branch, so they have timely confirmation of their transactions.

2) See (1)

3) Miners participate by choosing high PoW difficulty blocks to mine (their own blocks). They are incentivised to add them to the branch with the largest cumulative difficulty, because otherwise they won't get their mining rewards.

...how does anyone know what the branch the one with the largest cumulative difficulty is if everyone is just firing transactions away on their own branches? How do you keep track of transactions if everyone is just writing their own transaction history? How do you achieve consensus what the actual global state of the ledger is? And once again, how do you prevent double spends? Nothing is preventing a user from sending the same coins multiple times to different addresses... they can just mine different transactions using the same inputs over and over again and see what sticks.
full member
Activity: 351
Merit: 134
1) There is still an LCR rule for selecting the branch with the largest cumulative difficulty.
And how will you send your transaction if there are another 100500 users who have more 100500x times hashrate than you?
It will be very complicated quest to send coins in your network Smiley
"Run you PC for a week or buy an ASIC device to purchase a cup of coffee"  Grin

Because you can chose your own difficulty. Miners who are in it for the money, as they are in bitcoin, can mine with maximum difficulty. End users like you and I can chose a much, much lower difficulty because we don't expect to earn anything, we just want to send a transaction.
sr. member
Activity: 770
Merit: 305
1) There is still an LCR rule for selecting the branch with the largest cumulative difficulty.
And how will you send your transaction if there are another 100500 users who have more 100500x times hashrate than you?
It will be very complicated quest to send coins in your network Smiley
"Run you PC for a week or buy an ASIC device to purchase a cup of coffee"  Grin
full member
Activity: 351
Merit: 134
1) If every user just mines their own blocks, how are double spends prevented?

2) If tiny blocks get propagated everywhere with users only mining their own blocks, how do they know which chain to base their blocks on?

3) How can miners still participate if there's no distinction between users and miners and everyone just mines their own chain?


1) There is still an LCR rule for selecting the branch with the largest cumulative difficulty. Users want to be on the longest branch, so they have timely confirmation of their transactions.

2) See (1)

3) Miners participate by choosing high PoW difficulty blocks to mine (their own blocks). They are incentivised to add them to the branch with the largest cumulative difficulty, because otherwise they won't get their mining rewards.
legendary
Activity: 3038
Merit: 2166
Playgram - The Telegram Casino

*) Allow bitcoin to scale indefinitely, as the block size is now as small as it possibly can be, and there is now no fixed block interval, as these tiny blocks arrive constantly
*) Miners can still participate, but instead of enabling transactions to be sent/received their only job is now in securing the chain by providing hashing power; they still earn their mining reward
*) Chain security remains strong; miners get paid for being on the longest (largest cumulative difficulty) branch, and now this weighting includes orphaned branches which are referenced within each block, so no history based attacks are possible
*) Decentralisation is maximised because there is no need for mining pools anymore, since variance in mining reward is now under the control of the user. Moreover, since only you can mine your own blocks (the PoW is signed by you), mining pools are unattractive anyway.

Thoughts?

Cheers, Paul.


1) If every user just mines their own blocks, how are double spends prevented?

2) If tiny blocks get propagated everywhere with users only mining their own blocks, how do they know which chain to base their blocks on?

3) How can miners still participate if there's no distinction between users and miners and everyone just mines their own chain?
full member
Activity: 351
Merit: 134
Self interests are still aligned with overall system convergence.

Quote
Homogenise - Remove the distinction between miners and users of the system
There is/was no distinction in original bitcoin idea. Everything was implemented to gain fiat profit

In original bitcoin and now, there were miners and non miners. This change would make *everybody* a miner by necessity.

Quote
Quote
Reduce blocks to one per transaction
Users mine their own blocks when sending a transaction, no other user can mine another users block
Why do we need "blocks" in this paradigma?  Grin

Because a block contains more than just info relating to the transaction.
sr. member
Activity: 770
Merit: 305
Self interests are still aligned with overall system convergence.

Quote
Homogenise - Remove the distinction between miners and users of the system
There is/was no distinction in original bitcoin idea. Everything was implemented to gain fiat profit

Quote
Reduce blocks to one per transaction
Users mine their own blocks when sending a transaction, no other user can mine another users block
Why do we need "blocks" in this paradigma?  Grin


full member
Activity: 351
Merit: 134
Care to expand?
No.
Your ideas told me that you know absolutely nothing about how crypto works.
Start with this article: https://en.wikipedia.org/wiki/Tragedy_of_the_commons

Self interests are still aligned with overall system convergence.
Pages:
Jump to: