Author

Topic: Proof of work based transaction type (Read 3070 times)

hero member
Activity: 772
Merit: 501
November 21, 2014, 09:26:10 PM
#5
The limiting factor of Bitcoin utility will always be scalability. There is no limit to the demand for transaction throughput (imagine AI bots doing trillions of transactions per second). If this helps scalability, it should be embraced.
legendary
Activity: 1400
Merit: 1013
November 19, 2014, 05:55:06 PM
#4
People in each region do the vast majority of their transactions with parties in the same region, and therefore rarely do they need to have knowledge of the transaction data of other regions.

A 21st solution to 20th century problems.
hero member
Activity: 772
Merit: 501
November 19, 2014, 05:44:50 PM
#3
Given the recent sidechain publication, I thought now would be a good time to expand on how sidechains can allow for much more efficient resource usage, and can increase decentralization, with this diagram representing the data structure of the Bitcoin blockchain and hypothetical regional sidechains:



People in each region do the vast majority of their transactions with parties in the same region, and therefore rarely do they need to have knowledge of the transaction data of other regions. A regional blockchain would therefore give a person living in the region access to almost all of the information they need to validate the transactions they will be doing, while containing significantly less data than the global aggregate of transaction data that would be contained if everyone shared the same blockchain.

We can imagine scenarios where ordinary people store two blockchains: a sidechain for their region, and the main Bitcoin blockchain, while professional users (e.g. international businesses) who do significant international business store all of the regional sidechains as well as the Bitcoin blockchain, so that they can easily transact in any sidechain coin.

Moving to this sort of architecture can allow for ordinary people to help validate the transaction data, instead of using SPV clients and relying on full nodes to do the validation. Miners can even source their sidechain transaction data from ordinary people running the full-sidechain nodes of their respective region using the getblocktemplate protocol, putting almost the power of transaction validation in the hands of small users.
hero member
Activity: 772
Merit: 501
December 14, 2013, 05:04:53 PM
#2
I've created some visuals to better convey the POW transaction concept:

The overall concept (click for very large version):



A close up of the blockchain - POW transaction relationship (click for large image of a POW transaction):

hero member
Activity: 772
Merit: 501
December 09, 2013, 11:40:02 PM
#1
I've been thinking about whether it would be possible to have alternate cryptocurrencies that are 'backed' by BTC, stored in a special address on the Bitcoin blockchain that can only be moved by transactions containing proof of work, instead of a digital signature.

Converting bitcoins into the BTC-backed altcoins would be easy. A party would just send a certain amount of bitcoin to the alternate cryptocurrency's special Bitcoin address, along with information indicating which address in the altchain they want their new altcoins deposited to. Since the alternate cryptocurrency nodes would also store the Bitcoin blockchain, they would see the deposit to the special Bitcoin address and know to credit the bitcoin depositer with the right amount of altcoins.

When someone wants to convert their BTC-backed alt-coins to bitcoins, they would create a special transaction from their alt-address to a Bitcoin address, which the altchain's miners would then use as a reference to create a 'payout' of bitcoins from the special address on the Bitcoin blockchain to the Bitcoin address the alt-coin holder indicated as the destination of the bitcoin withdrawal.

It would be miners that create these special transactions because the proof of work they use to authorize new blocks in the alternate blockchain would also be what's used to authorize the transfer of bitcoins from the special Bitcoin addresses.

The special addresses could use a P prefix, and encode all of the blockchain rules of the sidechain, and information needed to validate txs that spend its UTXO, including:

  • Rules:
    • Version no.
    • Difficulty period
    • Block time
    • Security features, e.g.:
      • Maximum reanimation ratio
      • Maturation period, n, for reanimations
  • Version Number
  • Current difficulty
  • Previous block hash
  • Sum_time (time from start of difficulty period)
  • Sum_block (number of blocks from start of difficulty period)
  • Timestamp registry for previous 11 blocks
  • Validation of previous n blocks

In order for a transaction with TxIn from one of these addresses to be valid, the following conditions would need to be met:

  • the hash of the block header fields found in the transaction (timestamp of last block in timestamp registry, nonce, difficulty value, merkle root (which is a hash of the altchain merkle root and transaction hash)) and the POW address of the UTXO it's spending (version number, previous block hash) would need to meet the difficulty target
  • the timestamp registry of the previous 11 blocks, contained in the transaction, is checked against that of the UTXO it's spending, to validate that the first ten timestamps of the new registry correspond with the last ten timestamps of the previous registry, and that the latest timestamp isn't more than 2 hours ahead of the previous timestamp
  • the difficulty value is validated by checking if it matches the difficulty target calculated from the timestamp registry of the previous 11 blocks, the Sum_time value (time from start of difficulty period), the Sum_block value (number of blocks from start of difficulty period), and the difficulty target value found in the UXTO being spent.
  • the Sum_time value is validated by checking if it is the sum of the previous Sum_time value and the time difference between the last and current timestamp
  • the Sum_block value is validated by checking if it increments the previous Sum_block value by one

The transactions can include additional security features like a 'Validation of previous n blocks' value, that validates whether each of the previous n blocks is valid. If a block is found invalid by one of its successors transactions, then all reanimation transactions in that block are cancelled. This would prevent bitcoin at a POW address from being trivially stolen.

Having these special addresses would allow numerous smaller, decentralized blockchains to be setup with bitcoin backing their value. These could be regional currencies, or used in closed online communities. The Bitcoin blockchain could therefore be much smaller, while still providing the basis for a fungible decentralized currency used by the whole world.
Jump to: