Bitcoin Forum
June 15, 2024, 03:24:38 AM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Ways we can allow alt-coins (or BTC versions) w/o dilution?  (Read 1973 times)
nlowry (OP)
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
July 15, 2013, 08:15:28 AM
 #1

Hello all - I wanted to kick off some brainstorming about ways we can allow alt-coin innovation, without diluting the cryptocurrency pool.

Below is a sketch of:
  • a pair of operations, create and redeem, that would let you "transmute" your bitcoins to and from some new alt-coin (in my example, "XTC").  ("Transmute" rather than "convert" just to emphasize that, unlike say a USD-EUR FX trade, creating the new coin prevents spending the old one.)
  • a "well-backed alt-coin" convention, such that by adhering to the convention an alt-coin avoids diluting the pool, and gains credibility.

I listed some intended benefits of this mechanism on another thread ("How would a thousand or so alt coins affect Bitcoin?" - https://bitcointalk.org/index.php?topic=198519.msg2725005#msg2725005):

Quote
1. Removes the incentive to create pure pump-and-dump alt-coins by slightly tweaking the Bitcoin protocol, marketing your coin to drive up the price, and selling your initial hoard (as xorglub said).
2. Prevents dilution of bitcoins by these variations.  Right now each new alt-coin dilutes the cryptocurrency pool, as some BTC owners feel obliged to hedge themselves by shifting some of their stake into the latest CoinOfTheDay.
3. Opens the door to legitimately innovative alt-coins, say one that bakes in a fixed inflation rate, or that prevents the total float from shrinking by reallocating fractions of long-unspent coins to miners.  Right now these honest experiments can get lumped in with the pump-and-dumps.
4. Enables rolling out improvements to Bitcoin that require a new blockchain.  Fanciful example: a mining algorithm whose calculations help cancer research.  This could be rolled out as a "BTC v2", with users migrating gradually without diluting the BTC v1 pool.

I know I've fudged some technical details below.  Can you help me flesh this out?  Feedback and links to related work are also most welcome!

Neil



1. The creators of a new cryptocurrency, say "XTC", seed the XTC blockchain with some number of BTC, say 100, to create some number (of their choosing) of XTC, say 1000.
2. XTC mining begins, following whatever rules the XTC protocol specifies: say, a fixed (non-0) inflation rate.
3. Time passes and now, thanks to mining, the XTC blockchain contains 2000 XTC, still backed by 100 BTC.
4. Suppose BTC owner Alice chooses to transmute 10 BTC into XTC.  This create operation involves two transactions and two addresses, one in each blockchain:
  • The BTC transaction TCB, signed by Alice, says: "The owner of these 10 BTC has chosen to transmute them into XTC."
  • The XTC transaction TCX says: "The owner of these 10 BTC has chosen to transmute them into 200 XTC."  This transaction includes:
    • a reference to TCB
    • the public key of Alice's XTC (destination) address receiving the 200 XTC (much as in a mining transaction)
    • Alice's signature, again using her BTC (source) address
  • The 200 number is determined by our proposed "well-backed alt-coin" convention as:
         # of BTC deposited × (# of XTC outstanding before TCX / # of BTC backing the XTC blockchain before TCX) = 10 × (2000 / 100)
5. There are now 2200 XTC backed by 110 BTC in the XTC blockchain.  Suppose Bob now does a create operation to transmute 40 more BTC into XTC: he gets 40 × (2200 / 110) = 800 XTC.  The XTC blockchain now contains 3000 XTC backed by 150 BTC.
6. More time passes, and more XTC mining inflation occurs.  There are now 5000 XTC backed by 150 BTC.
7. Suppose Alice chooses to transmute 100 XTC back into BTC.  Like create, this redeem operation involves one transaction in each blockchain:
  i. The XTC transaction TRX, signed by Alice using her XTC (source) address, says: "The owner of these 100 XTC has chosen to transmute them into 3 BTC."  Again, the "well-backed alt-coin" convention calculates this as 100 × (150 / 5000).
  ii. The BTC transaction TRB includes:
  • a reference to TRX
  • a reference to 3 old as-yet-unredeemed BTCs deposited in the XTC blockchain
  • the public key of Alice's BTC (destination) address receiving the 3 BTC (this is a spend, not a mining, transaction)
  • Alice's signature using her XTC (source) address
8. After this redemption, the XTC blockchain contains 4900 XTC backed by 147 BTC, and the 3 BTC have been restored to circulation in the BTC blockchain.
9. Exactly which old BTCs are transferred to Alice is decided by the next mined XTC block.  This ensures that if Bob performed a simultaneous redemption, they get different BTCs.
10. The "well-backed alt-coin" convention ensures that each XTC is backed by a transparent (though not necessarily constant) number of BTCs, which cannot be spent until the XTC is redeemed.  This frees the XTC protocol to inflate or deflate at its own rate, without either creating or destroying BTCs.
11. The XTC protocol benefits from the credibility of BTC backing, since XTC owners can transmute back to BTC at any time.  Seeding with BTC should also reduce pump-and-dump suspicions: no one starts off with a free hoard.
12. Of course XTC owners are still placing their trust in the XTC protocol.  A bad actor who breaks XTC's encryption or achieves a 51% attack on its blockchain could conceivably steal all outstanding XTCs and redeem them for BTCs.  But BTC holders should be unaffected: only BTCs voluntarily deposited in the XTC blockchain are at risk.
calian
Sr. Member
****
Offline Offline

Activity: 354
Merit: 250



View Profile
July 19, 2013, 02:16:19 AM
 #2

I didn't read your idea here yet but go read about proof of burn. It's the perfect way to transfer value between blockchains. https://en.bitcoin.it/wiki/Proof_of_burn
Pages: [1]
  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!