Title: A New Design of Block Chain Post by: ranger.shi on August 18, 2014, 08:04:28 AM 1 Review the Billing and Process Mode of Bitcoin
1.1 The Message Data Structure of Bitcoin Transactions Image can not upload ,if you don't not bitcoin Data Structure of Bitcoin Transactions you can read here: http://bbs.dspay.org/forum.php?mod=viewthread&tid=17&extra= (http://bbs.dspay.org/forum.php?mod=viewthread&tid=17&extra=) CoinView Transaction ID Out1 Out2 Out3 Transaction ID Out1 Transaction ID Out1 Transaction ID Out1 Transaction ID Out1 Out2 . . The Bitcoin systems would create a cache file of all the transactions output (A file store in Levedb, taxon: CCoinView). When receiving a new block linking to the main chain, the system will check whether the all the transaction inputs of the block exist in the CCoinView or not. If not, the block will be judged as an illegal one and rejected by the system. If exist, delete the spent output in the transactions and put in the new output. When the block fork and rollback happen due to the competition of hashing power or other reasons, it is also need to roll back the CCoinView. Above algorithm run in all the Bitcoin system, which guarantee the uniqueness and traceability of Bitcoin payment, and effectively prevent double pay, counterfeit and replay attack. 1.2 The Data Structure of New Design 1. The Data Packet Structure of Transaction source address Public key of source address destination address transaction amount tip block height of sending sign with the source address private key Account View Account ID Balance block height of last sending Account ID Balance block height of last sending Account ID Balance block height of last sending Account ID Balance block height of last sending Account ID Balance block height of last sending . . Save the latest 1000 (can be set) block transaction Transaction View Transaction ID locations block height Transaction ID locations block height Transaction ID locations block height Transaction ID locations block height Transaction ID locations block height . . No need to change the block structure, just save the transaction list. Verification Process of the System: Create a cache file of all the transactions output (Save in Levedb, taxon: AccountView). When receiving a new block linking to the main chain, system verifies all the transaction in the block. Below conditions will be rejected, 1. Source address not exist 2. Account View already has this transaction 3. Insufficient balance 4. Current block height is lower than block height of sending 5. Current block height is higher than block height of sending +1000 If there is no destination address, than add a new account. 1.3 FAQ FAQ1. How to operate when rollback happen due to the hashing power competition? ANS.: Its same as Bitcoin, roll back block by block. Account View and Transaction View roll back at the same time. It will guarantee the data consistency. FAQ2. How to prevent the replay attack? ANS.: The replay attack can be prevented as every transaction contains the block height when sending; also 1000 latest transactions are cached. The unconfirmed transaction will be timeout after 1000 blocks, so its impossible to replay. FAQ3. How to prevent the inflation of Account View? ANS.: When the balance is less than a certain figure, or the account keeps sleeping longer than a certain period, it will be delete form the Account View. (The balance cannot use. When there is new income, it will be regarded as a new account.) The more users the system have, the bigger the view. However, it will never surpass the size of Bitcoins output CoinView. FAQ4. About Anonymity ANS.: After transaction complete, the currency can be change to another address if necessary. The anonymity will in the same level as Bitcoin. Is there any bugs ????? ??? ??? ??? ??? |