Bitcoin Forum
May 05, 2024, 10:27:16 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3] 4 5 6 7 8 9 10 »  All
  Print  
Author Topic: [white paper] Purely P2P Crypto-Currency With Finite Mini-Blockchain  (Read 24132 times)
bitfreak! (OP)
Legendary
*
Offline Offline

Activity: 1536
Merit: 1000


electronic [r]evolution


View Profile WWW
May 07, 2013, 03:30:04 AM
 #41

Quote
If lite clients shut down in the face of competing chains, commerce cannot continue.
What do "lite clients" have to do with anything here? I'm not sure you understand the concept properly or that you've read the white paper properly.

The new nodes (not lite nodes) would be cut out of the picture. In no way would that shut down commerce, the legitimate older nodes would keep chugging along with the real chain and they wouldn't even pay attention to the fake chain. The fake chain wouldn't even affect anything unless you relied upon a node which was using the fake chain, which cannot happen if new nodes are cut out if the picture until the situation is resolved.

EDIT: or do you mean it may hinder commerce for a business who attempts to start up a new node at the time of this attack? Worse case scenario they have to wait until the attack is over to start their node, or wait until a new client is released with the updated checkpoint. It's not like the businesses already running a node would be affected.

XCN: CYsvPpb2YuyAib5ay9GJXU8j3nwohbttTz | BTC: 18MWPVJA9mFLPFT3zht5twuNQmZBDzHoWF
Cryptonite - 1st mini-blockchain altcoin | BitShop - digital shop script
Web Developer - PHP, SQL, JS, AJAX, JSON, XML, RSS, HTML, CSS
The Bitcoin network protocol was designed to be extremely flexible. It can be used to create timed transactions, escrow transactions, multi-signature transactions, etc. The current features of the client only hint at what will be possible in the future.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714904836
Hero Member
*
Offline Offline

Posts: 1714904836

View Profile Personal Message (Offline)

Ignore
1714904836
Reply with quote  #2

1714904836
Report to moderator
Etlase2
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
May 07, 2013, 03:55:38 AM
Last edit: May 07, 2013, 04:11:29 AM by Etlase2
 #42

What do "lite clients" have to do with anything here? I'm not sure you understand the concept properly or that you've read the white paper properly.

I haven't read the whitepaper at all, because I already know how this process works. And I was responding directly to aaaxn's solution which you said should work. He was talking about new nodes, you must think that the majority of new nodes are going to be "client" nodes rather than full peers (at least in the future when the network is large), because being a full peer costs a lot of bandwidth. Storage is only one aspect. Plus if you intend to earn market share with mobile devices, many clients are simply going to have to rely on what other nodes tell them.

Quote
The new nodes (not lite nodes) would be cut out of the picture. In no way would that shut down commerce, the legitimate older nodes would keep chugging along with the real chain and they wouldn't even pay attention to the fake chain. The fake chain wouldn't even affect anything unless you relied upon a node which was using the fake chain, which cannot happen if new nodes are cut out if the picture until the situation is resolved.

That's great and all for those who can be sure which network is the correct one. For those who can't, they are DDoS'd. Only a stupid attacker is going to start by breaking the chain. He is going to be smart and he is going to play along for some time before making a move. It is again a similar problem to bitcoin's, but you have introduced a vulnerability where the original chain is potentially lost. And the only solutions you have come up with are sybil-poor ones. Right, it's unlikely, it's really hard to do, but it only needs to happen once. Proof-of-work is bad, mmmk?

You still pretty much solve this vulnerability by keeping the chain history for a year. Storage is still bound, and that is a big win. It still suffers from centralization and 51% attacks and wasted energy and all the rest though.

Edit: I have skimmed your proposal now and yes you have addressed the new vulnerability well enough. I'm not sure what vulnerability aaaxn is referring to then. I'll have to redigest. I don't know where this voting crap is coming from. Kudos for putting this into a whitepaper, but this is not enough of an idea to start yet another altcoin imo.

bitfreak! (OP)
Legendary
*
Offline Offline

Activity: 1536
Merit: 1000


electronic [r]evolution


View Profile WWW
May 07, 2013, 04:15:14 AM
Last edit: May 07, 2013, 05:16:37 AM by bitfreak!
 #43

Quote
Edit: I have skimmed your proposal now and yes you have addressed the new vulnerability well enough. I'm not sure what vulnerability aaaxn is referring to then.
He is referring to a new vulnerability which is some what similar to the old issue but much more difficult to pull off and easy to prevent with the mechanism I've been talking about for the last 2 pages.

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

Activity: 798
Merit: 1000


View Profile
May 07, 2013, 04:33:13 AM
 #44

Ah yes, the secret chain. I missed that along the way and presumed it was a different attack. I just couldn't imagine how you resort to a consensus of untrusted peers as a decision-making process though. Holding the true chain for a year fixes this problem unless the attacker intends to spend an entire year along with the network. Tongue You really can not resort to peer consensus. Remember, mining is a pretty centralized activity, and nodes don't get paid to be nodes. It is fairly easy in theory for EvilCorp to work their way through the hierarchy and control a large view of the network. You are *hoping* altruism wins out. Still inheriting a lot of bitcoin's flaws... and as far as I can tell, SPV is still not possible in the way that bitcoin can do it. Lite nodes are going to need a lot more data than SPV nodes in bitcoin--but perhaps not, I'd have to waste some time thinking on it. But if true, this is not good for bandwidth-unfriendly nodes like mobile devices.

bitfreak! (OP)
Legendary
*
Offline Offline

Activity: 1536
Merit: 1000


electronic [r]evolution


View Profile WWW
May 07, 2013, 04:45:43 AM
Last edit: May 08, 2013, 04:59:39 AM by bitfreak!
 #45

I just couldn't imagine how you resort to a consensus of untrusted peers as a decision-making process though. Holding the true chain for a year fixes this problem unless the attacker intends to spend an entire year along with the network.
Yes I agree you cannot really resort to consensus, that's why I said aaaxn's solution is probably the best. Simply don't give new nodes a chance to be tricked by the fake chain. This resolves the problem in a fairly neat way. Holding an entire year worth of transactions is still way too much when there's no real point. So far this is the only attack we've thought of which might provide incentive to increase the length of the mini-blockchain, but if we can eliminate the threat of this attack without having to do that then that's the way it should be solved. And we can with aaaxn's solution.

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

Activity: 359
Merit: 250



View Profile
May 07, 2013, 07:04:34 AM
 #46

Ah yes, the secret chain. I missed that along the way and presumed it was a different attack. I just couldn't imagine how you resort to a consensus of untrusted peers as a decision-making process though. Holding the true chain for a year fixes this problem unless the attacker intends to spend an entire year along with the network. Tongue
As you see this kind of attack is extremely unlikely so this precautions I proposed are not really meant to be ever triggered. It's good to include them because it further discourages making secret chain attack because it hurts its potential profitability.

as far as I can tell, SPV is still not possible in the way that bitcoin can do it. Lite nodes are going to need a lot more data than SPV nodes in bitcoin--but perhaps not, I'd have to waste some time thinking on it. But if true, this is not good for bandwidth-unfriendly nodes like mobile devices.
Lite client would need to download block headers from their last known checkpoint or genesis block (few MB) and download few paths in account tree which correspond to addresses client controls/is interested in (few KB). I think he could even download only few most recent blocks and his accounts info. Even if he would get forged data all he risks is that network will reject his transactions.


                                                                              █
                              █████████                  ██████ 
                      ███████████████████████████   
              ███████████████████████████████   
            ████████████████████████████████   
        █████████████████████████████████     
    ████████████████████████████████████   
    ████████          █████████          █████████   
  ████████                ██████              ████████   
█████████                █████                ████████   
███████████                █                ███████████ 
██████████████                      ██████████████ 
█████████████████            ████████████████ 
███████████████                  ███████████████ 
█████████████                          █████████████ 
███████████              ███                ██████████ 
█████████                █████                ████████   
  ████████              ███████              ███████     
    █████████        █████████          ████████     
      █████████████████████████████████       
        ██████████████████████████████           
            ███████████████████████████             
              ████████████████████████                 
                  ████████████████████                     
CorionX


















Powered by,
Etlase2
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
May 07, 2013, 11:35:36 AM
 #47

Yes I agree you cannot really resort to consensus, that's why I said aaxon's solution is probably the best. Simply don't give new nodes a chance to be tricked by the fake chain. This resolves the problem in a fairly neat way. Holding an entire year worth of transactions is still way too much when there's no real point.

There is a point though, you have a "lock block" far enough in the past that the odds of overcoming it are unbelievably overwhelming--and it's a cut-off point where you can have nodes decide unanimously that they can't be fooled or user intervention would *then* be required. Then you don't have to resort to shenanigans.

Lite client would need to download block headers from their last known checkpoint or genesis block (few MB) and download few paths in account tree which correspond to addresses client controls/is interested in (few KB). I think he could even download only few most recent blocks and his accounts info. Even if he would get forged data all he risks is that network will reject his transactions.

This can verify balances of addresses, but it does not verify payments.

aaaxn
Sr. Member
****
Offline Offline

Activity: 359
Merit: 250



View Profile
May 07, 2013, 05:19:10 PM
 #48

This can verify balances of addresses, but it does not verify payments.
To verify payment you only need 2 tree paths. To sender account and to receiver account. Should not require much data. Apart from that lite clients would mostly be used for making payments and rarely for receiving and even if you gets funds to your lite wallet you probably get it from someone whose identity is known to you (exchange, friend, etc.) so they really have nothing to gain from fooling you temporarily. If you are merchant and sell things to strangers you should probably run full node.


                                                                              █
                              █████████                  ██████ 
                      ███████████████████████████   
              ███████████████████████████████   
            ████████████████████████████████   
        █████████████████████████████████     
    ████████████████████████████████████   
    ████████          █████████          █████████   
  ████████                ██████              ████████   
█████████                █████                ████████   
███████████                █                ███████████ 
██████████████                      ██████████████ 
█████████████████            ████████████████ 
███████████████                  ███████████████ 
█████████████                          █████████████ 
███████████              ███                ██████████ 
█████████                █████                ████████   
  ████████              ███████              ███████     
    █████████        █████████          ████████     
      █████████████████████████████████       
        ██████████████████████████████           
            ███████████████████████████             
              ████████████████████████                 
                  ████████████████████                     
CorionX


















Powered by,
aaaxn
Sr. Member
****
Offline Offline

Activity: 359
Merit: 250



View Profile
May 09, 2013, 07:17:10 AM
 #49

Let's consider some new awesome possibilities that arises when we get rid of bitcoin scripts and adopt account tree, so this thread won't die off.

Transactions

1) Smaller transactions - transactions could use just account tree offsets instead of addresses / public keys. We can address more accounts than we will probably ever need with 5 bytes. Addresses takes 25 bytes and public keys 65 bytes.
2) Including messages in transactions. We don't need to store transactions indefinitely so we can permit short messages attached to payments (eg. order id). This would improve user experience a lot.
3) We can get rid of sending change back to ourselfs because we can spend any amount of bitcoin from our account.

Accounts
We will store accounts in nice separate cells in db, so we can make different types of accounts as needed.
Fore example:

1) Accounts with descriptions. We can allow attaching custom names to account eg. 'Payment address for shop.example.com'. This description could be presented to users paying to this address. Huge user experience boost.
2) Multi signature accounts. We can make accounts with multiple pubkeys attached and require M of N signatures to spend from this address.
3) Limited accounts. We can define maximum withdrawal limits per time period for accounts.
4) We can extend account types if needed. This system is actually more powerful than bitcoin scripts (we can always make accounts with scripts).

Feel free to extend this list.


                                                                              █
                              █████████                  ██████ 
                      ███████████████████████████   
              ███████████████████████████████   
            ████████████████████████████████   
        █████████████████████████████████     
    ████████████████████████████████████   
    ████████          █████████          █████████   
  ████████                ██████              ████████   
█████████                █████                ████████   
███████████                █                ███████████ 
██████████████                      ██████████████ 
█████████████████            ████████████████ 
███████████████                  ███████████████ 
█████████████                          █████████████ 
███████████              ███                ██████████ 
█████████                █████                ████████   
  ████████              ███████              ███████     
    █████████        █████████          ████████     
      █████████████████████████████████       
        ██████████████████████████████           
            ███████████████████████████             
              ████████████████████████                 
                  ████████████████████                     
CorionX


















Powered by,
RustyShackleford1950
Sr. Member
****
Offline Offline

Activity: 266
Merit: 251



View Profile
May 09, 2013, 07:28:21 AM
 #50

Interesting idea, implementation may be difficult though. Also, what happens far, far into the future, let's imagine this is adopted, won't a large number of transactions mean that previous records are being overwritten at an ever increasing pace, eventually leading to a serious security problem?

On keyboard, the big d, rusty shackleford
achillez
Hero Member
*****
Offline Offline

Activity: 874
Merit: 1000


View Profile
May 09, 2013, 07:29:42 AM
 #51

interesting
aaaxn
Sr. Member
****
Offline Offline

Activity: 359
Merit: 250



View Profile
May 09, 2013, 07:33:07 AM
 #52

Interesting idea, implementation may be difficult though. Also, what happens far, far into the future, let's imagine this is adopted, won't a large number of transactions mean that previous records are being overwritten at an ever increasing pace, eventually leading to a serious security problem?
Idea is to keep constant number of recent blocks (for example 5000) so if transaction volume increases mini blockchain will grow in size but it won't hurt security.


                                                                              █
                              █████████                  ██████ 
                      ███████████████████████████   
              ███████████████████████████████   
            ████████████████████████████████   
        █████████████████████████████████     
    ████████████████████████████████████   
    ████████          █████████          █████████   
  ████████                ██████              ████████   
█████████                █████                ████████   
███████████                █                ███████████ 
██████████████                      ██████████████ 
█████████████████            ████████████████ 
███████████████                  ███████████████ 
█████████████                          █████████████ 
███████████              ███                ██████████ 
█████████                █████                ████████   
  ████████              ███████              ███████     
    █████████        █████████          ████████     
      █████████████████████████████████       
        ██████████████████████████████           
            ███████████████████████████             
              ████████████████████████                 
                  ████████████████████                     
CorionX


















Powered by,
aaaxn
Sr. Member
****
Offline Offline

Activity: 359
Merit: 250



View Profile
May 09, 2013, 08:08:57 AM
Last edit: May 09, 2013, 12:37:35 PM by aaaxn
 #53

Secure 0-confirmation small transactions

Concept of accounts with withdrawal limit go me thinking and I think it enables implementation of secure 0-confirmation small payments. By small I mean small relative to your account balance which can make it applicable in even big transactions in absolute terms.
First let me outline how limited accounts could work.

1) Send to network special transaction to modify withdrawal limit for your account. You specify limit as number of coins per no of blocks. Such change will take effect in eg. 100 blocks (delay is important for my idea)
2) Network accepts transaction and after 100 blocks it will reject any transaction that would cause specified limit to be exceeded. Miner node will accept first transaction for withdraw and when he receives another which would cause limit to be exceed he queues it until first one is included in block and limit is available again.

How could limits prevent double spending? Double spending is possible because you can send one transaction to merchant while simultaneously send another one to miners which moves all your coins to other address. But with limits you cannot send all your coins at once and this can help secure merchant transaction.

Suppose you have 100 coins in your account with withdrawal limit of 1 coin per block. If you want to send secure 0-confirmation transaction for 1 coin you sign a transaction to send 1 coin to merchant valid if included in one of next 10 blocks (or whatever amount of confirmations is deemed secure).
Now even if attacker tries to double spend his coins in alternative blockchain he would only be able to move 1 coin from his accounts per block, so event if his network branch is accepted as longest merchant transaction will still be valid and included in some of later block. To successfully make doublespend attacker would need to make 10 blocks alternative branch in secret which is infeasible.
If my reasoning is valid merchant can ensure he will receive funds by:
1) Checking that there is no pending withdraw limit change on sending account
2) Check that sending account balance is high enough so it can't be emptied to fast.
3) Ensure transaction that pays to him has propagated enough in network and that it is on top of queue (checking few respected mining pools is enough)
That should complete in seconds.

Do you see any problems with this idea?


                                                                              █
                              █████████                  ██████ 
                      ███████████████████████████   
              ███████████████████████████████   
            ████████████████████████████████   
        █████████████████████████████████     
    ████████████████████████████████████   
    ████████          █████████          █████████   
  ████████                ██████              ████████   
█████████                █████                ████████   
███████████                █                ███████████ 
██████████████                      ██████████████ 
█████████████████            ████████████████ 
███████████████                  ███████████████ 
█████████████                          █████████████ 
███████████              ███                ██████████ 
█████████                █████                ████████   
  ████████              ███████              ███████     
    █████████        █████████          ████████     
      █████████████████████████████████       
        ██████████████████████████████           
            ███████████████████████████             
              ████████████████████████                 
                  ████████████████████                     
CorionX


















Powered by,
Etlase2
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
May 09, 2013, 08:18:51 AM
 #54

1) Smaller transactions - transactions could use just account tree offsets instead of addresses / public keys. We can address more accounts than we will probably ever need with 5 bytes. Addresses takes 25 bytes and public keys 65 bytes.

In addition to this, 32-byte hashes are not necessary to verify receipt of previous transactions. Peers who have not even communicated with each other before can reference transactions like so:

[timestamp - 4 bytes for each second]
[2-4 bytes of account offset, depending on what is most useful based on transaction activity - 2-4 bytes once for each tx that shares this offset]
[remaining 1-3 bytes for account offset]+[1 byte pseudo-hash]

The 1 byte pseudo-hash could be bigger, but it limits one account to 256 transactions per second, although the client will have to be aware of pseudo-hash collisions. When Visa is only like 4,000 transactions per second, this can't be that big of an issue. So the maximum one transaction could cost in wasted bandwidth is 10 bytes, but on a busy network, most transactions will only cost around 3 bytes to verify receipt or reference it with another peer. This is presuming my initial idea of using timestamps to identify specific transactions. It also allows for an easy way to locate transactions in the transaction block chain, though this is going into my design, but it's the one I know. *shrug*

Although bitcoin could use some protocol tweaking, it still *at best* has to send 32 bytes, but right now just goes ahead and wastes the full 300 bytes or whatever a typical tx is. 32 bytes->3 bytes on a busy network is gigabytes saved daily per node.

Quote
2) Including messages in transactions. We don't need to store transactions indefinitely so we can permit short messages attached to payments (eg. order id). This would improve user experience a lot.

8 bytes I think is an ideal number that allows for setting up a receipt/order system/identity proof. I think bank-like intermediaries (preferably anonymous ones, but that is technology that has to be proposed and advanced outside the network) will be commonly used to preserve anonymity. Account ledgers have some caveats that they are slightly less anonymous than pseudotransactions a la bitcoin. Reusing account numbers needs to be encouraged by lower transaction fees, because it is in the interest of the health of the network. If there are intermediaries that provide you with 8-byte mini-addresses, you can preserve that anonymity completely from everyone except the bank, unless there are ways to provide this anonymously in the future. Those who want bitcoin's pseudonymity can still do it, but tx fees will be higher.

Quote
3) We can get rid of sending change back to ourselfs because we can spend any amount of bitcoin from our account.

This is considered part of bitcoin's pseudonymity as only you and the receiver know which part of the tx is the payment and which is the change. But we all know that bitcoin isn't all that anonymous, and with an account ledger making things even trickier, the idea of pseudonymity needs to be redressed.

Quote
1) Accounts with descriptions. We can allow attaching custom names to account eg. 'Payment address for shop.example.com'. This description could be presented to users paying to this address. Huge user experience boost.

I had this idea for early encoin proposals, but I don't like it because it will create a rush of custom address stealing. If businesses are public on the chain, users can associate the addresses manually. If they use intermediaries, this could still be addressed with using business->user account numbers in the tx message.

Quote
2) Multi signature accounts. We can make accounts with multiple pubkeys attached and require M of N signatures to spend from this address.
3) Limited accounts. We can define maximum withdrawal limits per time period for accounts.

Easy peasy stuff with a ledger. Gotta make sure to have "master" keys that can change those account options, not the accounts themselves. Keep the master key cold and let the hot wallet do its work without fear of a total catastrophe if there is an incident.

Quote
4) We can extend account types if needed. This system is actually more powerful than bitcoin scripts (we can always make accounts with scripts).

Yes, but there needs to be a process of acceptance for this. Say, a voting system. Wink Even if account types are just complex uses of the scripting system, to save the data required to store these simply (and to make sure everyone has the exact same ledger), the account "types" need to be defined and everyone needs to agree on it.

Quote
Feel free to extend this list.

Anyone who plans on reusing a custom transaction could set a custom transaction type up themselves, basically a script-hash storage system. Then it could reference the custom type in a tx and only supply the variables needed to suit the script-hash, saving data. Of course there have to be fees to store this stuff, but people who use the same script-hash a lot could save money on a fee-per-function type tx fee.

A somewhat out-there possibility is to have a proof-of-work storage function. Small networks could use the ledger's proof-of-work (or proof-of-consensus) as a timestamping service and have the final say on the order of that network's events.

I have some other ideas somewhere, but it would require digging up really old notes.

Etlase2
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
May 09, 2013, 08:25:00 AM
 #55

Do you see any problems with this idea?

It's a big imposition on the user, it's also a transaction which is going to have to have a tx fee. Whenever they have to make a payment for more than the amount, they will have to wait for multiple blocks to have the full tx approved. If they want to change it, it's another tx. Etc. It's also not necessary in a good proof-of-consensus system. Smiley

aaaxn
Sr. Member
****
Offline Offline

Activity: 359
Merit: 250



View Profile
May 09, 2013, 09:14:45 AM
 #56

In addition to this, 32-byte hashes are not necessary to verify receipt of previous transactions. Peers who have not even communicated with each other before can reference transactions like so:

[timestamp - 4 bytes for each second]
[2-4 bytes of account offset, depending on what is most useful based on transaction activity - 2-4 bytes once for each tx that shares this offset]
[remaining 1-3 bytes for account offset]+[1 byte pseudo-hash]

The 1 byte pseudo-hash could be bigger, but it limits one account to 256 transactions per second, although the client will have to be aware of pseudo-hash collisions. When Visa is only like 4,000 transactions per second, this can't be that big of an issue. So the maximum one transaction could cost in wasted bandwidth is 10 bytes, but on a busy network, most transactions will only cost around 3 bytes to verify receipt or reference it with another peer. This is presuming my initial idea of using timestamps to identify specific transactions. It also allows for an easy way to locate transactions in the transaction block chain, though this is going into my design, but it's the one I know. *shrug*

Although bitcoin could use some protocol tweaking, it still *at best* has to send 32 bytes, but right now just goes ahead and wastes the full 300 bytes or whatever a typical tx is. 32 bytes->3 bytes on a busy network is gigabytes saved daily per node.
I don't understand. In account tree transaction don't have to reference any other transactions. It only reference accounts with version. Transaction in this system should look something like
(trx_version, offsetSender, offsetReceiver, senderVersion, amount, signature)
(1 + 5 + 5 + 5 + 8 ) ~ 24 bytes + signature don't know how long it needs to be.

8 bytes I think is an ideal number that allows for setting up a receipt/order system/identity proof. I think bank-like intermediaries (preferably anonymous ones, but that is technology that has to be proposed and advanced outside the network) will be commonly used to preserve anonymity. Account ledgers have some caveats that they are slightly less anonymous than pseudotransactions a la bitcoin. Reusing account numbers needs to be encouraged by lower transaction fees, because it is in the interest of the health of the network. If there are intermediaries that provide you with 8-byte mini-addresses, you can preserve that anonymity completely from everyone except the bank, unless there are ways to provide this anonymously in the future. Those who want bitcoin's pseudonymity can still do it, but tx fees will be higher.
I think it should be longer to allow some meaningful descriptions for end users like 'for yesterday dinner', etc..
In proposed system nothing stops you from generating new address for every transaction like in bitcoin and I really don't think goal of system should be that every transaction is anonymous. Making anonymous transactions available is enough.

I had this idea for early encoin proposals, but I don't like it because it will create a rush of custom address stealing. If businesses are public on the chain, users can associate the addresses manually. If they use intermediaries, this could still be addressed with using business->user account numbers in the tx message.
What I meant is attaching name to account. Not making this name unique and allowing users to send funds to it.

Yes, but there needs to be a process of acceptance for this. Say, a voting system. Wink Even if account types are just complex uses of the scripting system, to save the data required to store these simply (and to make sure everyone has the exact same ledger), the account "types" need to be defined and everyone needs to agree on it.
I am aware of that. Changes need to be included along with new software revisions. Bitcoin proves consensus can be reached and such changes can be made painless. No need to in network voting system for that.

It's a big imposition on the user, it's also a transaction which is going to have to have a tx fee. Whenever they have to make a payment for more than the amount, they will have to wait for multiple blocks to have the full tx approved. If they want to change it, it's another tx. Etc. It's also not necessary in a good proof-of-consensus system.
Not really. It can be automated in client. You just setup your fast payments account. Specify maximum fast payment size you need and software automatically keep this account balance on required level. If you deplete this sub account to much it is automatically refilled. No user attention is required after setup.
If you need to cancel this account you can always do full account withdrawal which would take something like 2x time of normal confirmation (this is sufficient delay for limit change operation).


                                                                              █
                              █████████                  ██████ 
                      ███████████████████████████   
              ███████████████████████████████   
            ████████████████████████████████   
        █████████████████████████████████     
    ████████████████████████████████████   
    ████████          █████████          █████████   
  ████████                ██████              ████████   
█████████                █████                ████████   
███████████                █                ███████████ 
██████████████                      ██████████████ 
█████████████████            ████████████████ 
███████████████                  ███████████████ 
█████████████                          █████████████ 
███████████              ███                ██████████ 
█████████                █████                ████████   
  ████████              ███████              ███████     
    █████████        █████████          ████████     
      █████████████████████████████████       
        ██████████████████████████████           
            ███████████████████████████             
              ████████████████████████                 
                  ████████████████████                     
CorionX


















Powered by,
digitalindustry
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


‘Try to be nice’


View Profile WWW
May 09, 2013, 09:31:30 AM
 #57

Let's consider some new awesome possibilities that arises when we get rid of bitcoin scripts and adopt account tree, so this thread won't die off.

Transactions

1) Smaller transactions - transactions could use just account tree offsets instead of addresses / public keys. We can address more accounts than we will probably ever need with 5 bytes. Addresses takes 25 bytes and public keys 65 bytes.
2) Including messages in transactions. We don't need to store transactions indefinitely so we can permit short messages attached to payments (eg. order id). This would improve user experience a lot.
3) We can get rid of sending change back to ourselfs because we can spend any amount of bitcoin from our account.

Accounts
We will store accounts in nice separate cells in db, so we can make different types of accounts as needed.
Fore example:

1) Accounts with descriptions. We can allow attaching custom names to account eg. 'Payment address for shop.example.com'. This description could be presented to users paying to this address. Huge user experience boost.
2) Multi signature accounts. We can make accounts with multiple pubkeys attached and require M of N signatures to spend from this address.
3) Limited accounts. We can define maximum withdrawal limits per time period for accounts.
4) We can extend account types if needed. This system is actually more powerful than bitcoin scripts (we can always make accounts with scripts).

Feel free to extend this list.

why don't you announce a Topic for the feasibility of another new design based around this principal, -

in the end this whole market is coder rich with the shittiest understanding of economics i have ever seen i my life, and that's doesn't even start to touch on socioeconomic principals,  but in the end that's completley to be expected.

Im here to make a good code "available" to Joe on the street -

The problem is someone like myself thinks so radically different to a coder, but a Coder feels like they "own" the product and for good reason, they essentially do.

But where i can step back and say , i will not even attempt to get involved in Coding , for some reason Coders have a bit of a breakdown where they can't step back and say "i'm a fucking useless at communicating these ideas to thew general public" 

so it's all for nothing, as i said its not just good enough to have THE BEST design, that gets you 50% there.

lucky but for coders I'm waiting to see which is the best then I'll promptly get any coder that will agree with my market design to copy paste it and we can release something.

when my design leaves this forum, no one will say "that was a copy of bla bla" - but full credit will of course go to them.

so why not make a topic about a new "coin" based on this , i'll try to get some coders on board. i'll make it if you like ! ?

- Twitter @Kolin_Quark
aaaxn
Sr. Member
****
Offline Offline

Activity: 359
Merit: 250



View Profile
May 09, 2013, 10:31:38 AM
 #58

why don't you announce a Topic for the feasibility of another new design based around this principal, -

in the end this whole market is coder rich with the shittiest understanding of economics i have ever seen i my life, and that's doesn't even start to touch on socioeconomic principals,  but in the end that's completley to be expected.

Im here to make a good code "available" to Joe on the street -

The problem is someone like myself thinks so radically different to a coder, but a Coder feels like they "own" the product and for good reason, they essentially do.

But where i can step back and say , i will not even attempt to get involved in Coding , for some reason Coders have a bit of a breakdown where they can't step back and say "i'm a fucking useless at communicating these ideas to thew general public" 

so it's all for nothing, as i said its not just good enough to have THE BEST design, that gets you 50% there.

lucky but for coders I'm waiting to see which is the best then I'll promptly get any coder that will agree with my market design to copy paste it and we can release something.

when my design leaves this forum, no one will say "that was a copy of bla bla" - but full credit will of course go to them.

so why not make a topic about a new "coin" based on this , i'll try to get some coders on board. i'll make it if you like ! ?
I am a coder but not good enough in C++ to implement my idea with sufficient quality (at least not fast), but I could efficiently communicate with developers. I am good at design and have good understanding of economics and business so I keep in my mind that my design need to have some strong selling points to be success. It's true I am not good at selling things to public, making hype etc

Coin design can be separated in 3 parts:
1) Designing db protocol (account balances, transaction etc)
2) Design efficient network security algorithm (Current bitcoin PoW scheme is too expensive )
3) Make sure proper economic incentives are present during bootstraping and when coin matures.

These can be discussed independently, so I don't see a point in publishing new coin design until all 3 parts are ready. Now I have good ideas for 1) and 3) but my idea for 2) needs some discussion. I don't see a point in publishing new coin idea before all 3 parts are sufficiently polished.


                                                                              █
                              █████████                  ██████ 
                      ███████████████████████████   
              ███████████████████████████████   
            ████████████████████████████████   
        █████████████████████████████████     
    ████████████████████████████████████   
    ████████          █████████          █████████   
  ████████                ██████              ████████   
█████████                █████                ████████   
███████████                █                ███████████ 
██████████████                      ██████████████ 
█████████████████            ████████████████ 
███████████████                  ███████████████ 
█████████████                          █████████████ 
███████████              ███                ██████████ 
█████████                █████                ████████   
  ████████              ███████              ███████     
    █████████        █████████          ████████     
      █████████████████████████████████       
        ██████████████████████████████           
            ███████████████████████████             
              ████████████████████████                 
                  ████████████████████                     
CorionX


















Powered by,
Etlase2
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
May 09, 2013, 12:55:25 PM
 #59

I don't understand. In account tree transaction don't have to reference any other transactions. It only reference accounts with version. Transaction in this system should look something like
(trx_version, offsetSender, offsetReceiver, senderVersion, amount, signature)
(1 + 5 + 5 + 5 + 8 ) ~ 24 bytes + signature don't know how long it needs to be.

I'm referring to the duplication of data and/or hash required to verify if you already have a tx that a peer is offering. When a connected peer says "hey do u have this tx?" he must send a 32-byte hash in bitcoin. When whichever type of block comes through, intra-peers must send at least a 32-byte hash (again, bitcoin doesn't even do this, it sends the full tx, but it could be a hash). Using what I suggested, only 3-6 bytes need to be sent to know if you have the tx or not. Multiply this by tens or hundreds of txes per second times the number of connected peers, and it is a huge data savings that is not available to bitcoin.

Quote
What I meant is attaching name to account. Not making this name unique and allowing users to send funds to it.

Ah, an interesting proposal.

Quote
I am aware of that. Changes need to be included along with new software revisions. Bitcoin proves consensus can be reached and such changes can be made painless.

Uhh, you need to do more studying on how bitcoin changes have been proposed and adopted then. It is in the hands of 3 or 4 people. Sure it's painless when you only need to get a cartel of miners on board.

Quote
Not really. It can be automated in client. You just setup your fast payments account. Specify maximum fast payment size you need and software automatically keep this account balance on required level. If you deplete this sub account to much it is automatically refilled. No user attention is required after setup.

:shrug: You are rationalizing a whole lot of stuff to provide for fast transactions when it can already be accomplished a better way. And all of this rests on the users being required to do something to help merchants. Merchants can't really force them or expect them to do it. "Advanced" features should be a power-user only thing, otherwise you have millions of people with accounts that have special features that is costing time and bandwidth for everyone to keep track of.

aaaxn
Sr. Member
****
Offline Offline

Activity: 359
Merit: 250



View Profile
May 09, 2013, 01:37:09 PM
 #60

:shrug: You are rationalizing a whole lot of stuff to provide for fast transactions when it can already be accomplished a better way.
And that is? [Decrits doesn't count. It is so complicated that is even hard to grasp not to mention implementing] Smiley


                                                                              █
                              █████████                  ██████ 
                      ███████████████████████████   
              ███████████████████████████████   
            ████████████████████████████████   
        █████████████████████████████████     
    ████████████████████████████████████   
    ████████          █████████          █████████   
  ████████                ██████              ████████   
█████████                █████                ████████   
███████████                █                ███████████ 
██████████████                      ██████████████ 
█████████████████            ████████████████ 
███████████████                  ███████████████ 
█████████████                          █████████████ 
███████████              ███                ██████████ 
█████████                █████                ████████   
  ████████              ███████              ███████     
    █████████        █████████          ████████     
      █████████████████████████████████       
        ██████████████████████████████           
            ███████████████████████████             
              ████████████████████████                 
                  ████████████████████                     
CorionX


















Powered by,
Pages: « 1 2 [3] 4 5 6 7 8 9 10 »  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!