Bitcoin Forum
May 04, 2024, 09:19:15 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 [4]  All
  Print  
Author Topic: A rolling root to solve Bitcoin's scalability problem?  (Read 7363 times)
bitfreak!
Legendary
*
Offline Offline

Activity: 1536
Merit: 1000


electronic [r]evolution


View Profile WWW
June 21, 2014, 01:15:41 PM
Last edit: June 21, 2014, 02:12:27 PM by bitfreak!
 #61

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)

Project Wiki:
Mini-Blockchain Project Wiki

More on Secret Chain Attack:
Weaknesses and attack vectors

XCN: CYsvPpb2YuyAib5ay9GJXU8j3nwohbttTz | BTC: 18MWPVJA9mFLPFT3zht5twuNQmZBDzHoWF
Cryptonite - 1st mini-blockchain altcoin | BitShop - digital shop script
Web Developer - PHP, SQL, JS, AJAX, JSON, XML, RSS, HTML, CSS
Transactions must be included in a block to be properly completed. When you send a transaction, it is broadcast to miners. Miners can then optionally include it in their next blocks. Miners will be more inclined to include your transaction if it has a higher transaction fee.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
cr1776
Legendary
*
Offline Offline

Activity: 4032
Merit: 1299


View Profile
June 21, 2014, 03:49:25 PM
Last edit: June 21, 2014, 04:04:43 PM by cr1776
 #62

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.
sugarpuff (OP)
Newbie
*
Offline Offline

Activity: 58
Merit: 0


View Profile WWW
June 21, 2014, 07:10:53 PM
Last edit: June 21, 2014, 07:24:20 PM by sugarpuff
 #63

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
bitfreak!
Legendary
*
Offline Offline

Activity: 1536
Merit: 1000


electronic [r]evolution


View Profile WWW
June 22, 2014, 06:26:20 AM
Last edit: June 22, 2014, 06:37:03 AM by bitfreak!
 #64

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.

XCN: CYsvPpb2YuyAib5ay9GJXU8j3nwohbttTz | BTC: 18MWPVJA9mFLPFT3zht5twuNQmZBDzHoWF
Cryptonite - 1st mini-blockchain altcoin | BitShop - digital shop script
Web Developer - PHP, SQL, JS, AJAX, JSON, XML, RSS, HTML, CSS
e4xit
Sr. Member
****
Offline Offline

Activity: 302
Merit: 250



View Profile
June 23, 2014, 08:15:31 AM
 #65

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

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)

Not your keys, not your coins.
CoinJoin, always.
sugarpuff (OP)
Newbie
*
Offline Offline

Activity: 58
Merit: 0


View Profile WWW
June 24, 2014, 01:18:02 AM
 #66

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. 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)

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).
e4xit
Sr. Member
****
Offline Offline

Activity: 302
Merit: 250



View Profile
June 24, 2014, 07:35:26 AM
 #67

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)

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.

Not your keys, not your coins.
CoinJoin, always.
cr1776
Legendary
*
Offline Offline

Activity: 4032
Merit: 1299


View Profile
June 24, 2014, 10:04:23 AM
 #68

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. 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)

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.
sugarpuff (OP)
Newbie
*
Offline Offline

Activity: 58
Merit: 0


View Profile WWW
June 24, 2014, 01:13:23 PM
 #69

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. Undecided
bitfreak!
Legendary
*
Offline Offline

Activity: 1536
Merit: 1000


electronic [r]evolution


View Profile WWW
June 28, 2014, 10:09:40 AM
Last edit: June 28, 2014, 10:38:45 AM by bitfreak!
 #70

- One of the few important things that you're missing is the recent 51% solution to 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.

XCN: CYsvPpb2YuyAib5ay9GJXU8j3nwohbttTz | BTC: 18MWPVJA9mFLPFT3zht5twuNQmZBDzHoWF
Cryptonite - 1st mini-blockchain altcoin | BitShop - digital shop script
Web Developer - PHP, SQL, JS, AJAX, JSON, XML, RSS, HTML, CSS
sugarpuff (OP)
Newbie
*
Offline Offline

Activity: 58
Merit: 0


View Profile WWW
June 28, 2014, 03:16:16 PM
 #71

- One of the few important things that you're missing is the recent 51% solution to 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.
Pages: « 1 2 3 [4]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!