Lecture 22: Alternative Consensus Mechanisms (PDF)

Lecture 22: Alternative Consensus Mechanisms (PDF)

mas.s62 lecture 22 Alternate consensus mechanisms 2018-05-02 Tadge Dryja 1 today alternate consensus: unique node lists proof of stake variants: delegated proof of space directed acyclic graphs proof of idle 2 disclaimer I'm OK with proof of work I get why people don't like it I'll try to explain other methods in a neutral way But many have trade-offs & I'm most familiar with PoW 3 UNL Ripple / Stellar Account based Transactions have sender / receiver in stellar case, minimum balance no work, but nodes sign transactions 4 UNL to sync, verify signed blocks but whose signatures? Assuming majority honest is tricky with sybil attacks problem akin to CAs Unique Node List 5 UNL wait for majority of nodes in UNL to sign; if they've signed accept Needs 90% overlap in UNL to prevent divergence (according to Ripple) Newer work to reduce to 60% Who provides UNL? 6 UNL fast / no work, but known identities all coins exist at outset & held by ripple or stellar 7 Proof of Stake popular alternative to proof of work instead of proving work, have coin holders sign blocks given a genesis block with initial distribution, chain choice can be deterministic (most stake) 8 stake grinding signer is determined by pubkey nearest prev blockhash keep signing / changing your block until you're assured multiple block devolves into proof of work (NXT rfc6979) 9 deterministic PoS If signer influence can be removed, there's another issue "nothing at stake" 10 PoW splits this happens hash: hash: hash: hash: 00db 002c 0094 008a hash: hash: 0061 00f2 11 PoW splits but then this happens hash: hash: hash: hash: 00db 002c 0094 008a hash: hash: hash: 0061 00f2 00a3 12 PoW splits then everyone build off the highest block hash: hash: hash: hash: 00db 002c 0094 008a hash: hash: hash: 0061 00f2 00a3 13 PoS splits this happens hash: hash: hash: 3ddb 312c 4694 hash: 1061 14 PoS splits then this happens hash: hash: hash: hash: 3ddb 312c 4694 0b8a hash: hash: 1061 cff2 15 PoS splits then this happens hash: hash: hash: hash: hash: 3ddb 312c 4694 0b8a 91a3 hash: hash: hash: 1061 cff2 44a7 16 PoS splits then this happens hash: hash: hash: hash: hash: 00db 002c 0094 008a 00a3 hash: hash: hash: 0061 00f2 00a3 17 nothing at stake faced with two blocks, why not build on both? No cost to sign mitigations: prove signatures from another chain ("slasher") Problem with mitigation: maybe block signers ignore your proof 18 long range attacks rewrite history from a long time ago online nodes will reject the reorg new nodes will see 2 long chains solution: delete old keys, assume 50% honest. (but old keys can be sold...) 19 DPoS signing requires online keys risky! instead endorse a leader by signing with your coins supernode / masternode / p2p? or client server? 20 PoS in general Hard to resolve conflicts in the system using only the system itself rich get richer? probably also in PoW different assumptions: honest / rational 21 proof of space still proof of work, but memory rather than CPU several ideas, some complex one example 22 proof of space Buy 10TB drive Precompute 100G keypairs Store pub:priv key:value in DB key closest to current block hash can sign; closer is worth more work, but amortized 23 directed acyclic graphs MIT favorite: iota blocks can (must) have 2 parents can potentially reduce latency and orphan based centralization doesn't help scalability at all (custom ternary hash functions don't help much either) 24 proof of idle old idea (Dryja 2014) (probably doesn't work that well) even if it works, just moves costs: opex -> capex prove that you're not mining and get paid 25 proof of idle difficulty adjusts so that blocks come out every 10 min new miners make it harder for existing miners 2X mining leads to 1X coins mined marginal product of labor = 0 26 proof of idle say there are 2 miners, each mining with 2GW If they both turned down 5%... 27 proof of idle cartel forming is hard; lots of profit for defecting nobody trusts each other solution: trustless collusion 28 proof of idle A pays B not to mine A posts block header, asks B to mine for 10 sec, respond with work A creates 2 of 2 multisig tx, sends 1 BTC to the address, builds 2 txs with B 29 proof of idle Bounty Tx: Locktime height + 144 input output fund txid Alice 1 coin Alice's Signature Bob's Signature 30 proof of idle Bounty Tx: Locktime time + 24 hours input output fund txid Bob 1 coin Alice's Signature Bob's Signature 31 proof of idle If blocks come out fast, Alice gets her money back If blocks come out slow, Bob can get the bounty output Bob may slow down his mining to get the bounty coins 32 proof many new ideas out there proof of work seems to work, but incompatible with Kurzweil / Roddenberry future ... further research required? it's happening regardless! 33 MIT OpenCourseWare https://ocw.mit.edu/ MAS.S62 Cryptocurrency Engineering and Design Spring 2018 For information about citing these materials or our Terms of Use, visit: https://ocw.mit.edu/terms. .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    34 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us