Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: runeks on August 29, 2016, 06:57:08 PM



Title: Blockchain with "account-based" transactions
Post by: runeks on August 29, 2016, 06:57:08 PM
Some guy wrote this:

Account-Based Blockchains Would Save Space & Ease Clearing  (https://medium.com/@runekswee/account-based-blockchains-would-save-space-ease-clearing-f4dd31a28e#.iwr8wjx79)

Ideas?


Title: Re: Account-Based Blockchain
Post by: achow101 on August 29, 2016, 07:08:10 PM
I wrote this:
FTFY

Account-Based Blockchains Would Save Space & Ease Clearing  (https://medium.com/@runekswee/account-based-blockchains-would-save-space-ease-clearing-f4dd31a28e#.iwr8wjx79)

Ideas?

It's not a bad idea. It would require a hard fork.


Title: Re: Account-Based Blockchain
Post by: DannyHamilton on August 29, 2016, 11:45:21 PM
Ideas?

If your distributed database doesn't store all the transactions that have occurred...

Then how can anyone verify that the balance at an account is valid?

Lets say you have a blockchain that says that account 1d2f3... has a balance of 2 BTC
Lets say that I have a blockchain that says that account 1d2f3... has a balance of 10 BTC

Which is the "correct" balance?  How would we decide?


Title: Re: Account-Based Blockchain
Post by: Evil-Knievel on August 30, 2016, 12:07:19 AM
Ideas?

If your distributed database doesn't store all the transactions that have occurred...

Then how can anyone verify that the balance at an account is valid?

Lets say you have a blockchain that says that account 1d2f3... has a balance of 2 BTC
Lets say that I have a blockchain that says that account 1d2f3... has a balance of 10 BTC

Which is the "correct" balance?  How would we decide?

Actually, cryptonite's Mini-Blockchain scheme does exactly that: http://cryptonite.info (http://cryptonite.info)
What it does is basically keep a account balances ledger (in form of a second blockchain) storing the correct account balances and thus allowing to prune past transaction data.

This example here

Quote
Lets say you have a blockchain that says that account 1d2f3... has a balance of 2 BTC
Lets say that I have a blockchain that says that account 1d2f3... has a balance of 10 BTC

is impossible if a consensus is formed after let's say 6 confirmations through a proof of work function. (Note, the account balance blockchain may use the same POW as the regular blockchain does). Your example is as impossible as if a merchant thinks that account 1d2f3 payed him 2 BTC (and confirmed 6 times) while a different merchant thinks he got the very same 2 BTC as well. (also with 6 confirmations) ;)


Title: Re: Account-Based Blockchain
Post by: runeks on August 30, 2016, 07:08:10 AM
If your distributed database doesn't store all the transactions that have occurred...

Then how can anyone verify that the balance at an account is valid?
It's not that transactions aren't stored in the blockchain (they still are), it's just that they no longer reference other transactions in the blockchain, but rather they reference accounts (unique output scripts) in the UTXO set. When we parse the blockchain, we need to keep a UTXO set anyway, because an outpoint can only be redeemed once. This means we need to maintain a UTXO set in any case, and if transactions referenced this directly we could save space.

So only transaction inputs would change, nothing else.

EDIT: I've changed the title of the post to better reflect the above explanation, as I see how your doubt can arise when I say that the blockchain is "account-based" (it's the transactions, in the blockchain, that are account-based, so to speak).


Title: Re: Blockchain with "account-based" transactions
Post by: runeks on August 30, 2016, 07:33:56 AM
I just realized I made a mistake. This wouldn't enable clearing payment channel payments from multiple clients into one Bitcoin transaction. Only payments to the same address/script can save space in the redeeming transaction. And distinct payment channels have distinct scripts, of course (duh). This makes it a lot less interesting for me.