Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
The Ellipticoin Protocol Overview
Differences From Ethereum
Ellipticoin takes a lot of ideas from Ethereum and wouldn't have existed if it weren't for Ethereum though Ellipticoin has different goals and intentions than Ethereum. First, the Ellipticoin consensus algorithm will be proof of stake from the start. This is important because of the mass amount of energy that's being burned every day that Ethereum is still running proof of work. The Ethereum team is planning to switch to a full proof of stake protcol as well in the near future. Second, the Ellipticoin network doesn't aim for perfect decentralization. If running a staking node costs $1000 an month that would be considered acceptable. Ellipticoin also doesn't use Merkle trees for storing state so lite clients won't be possible. Making these trade-offs allows many more transactions to be processed in each block. Note that making a transaction on the network does not require running a staking node. It's the hope that public edge nodes will be set up which will give anyone uncensored access to the network. It's also possible that the network splits into a faster network run by more powerful stakers and a slower one that's more decentralized. It's our hope that multiple blockchains will foster competition and innovation in the space. If blockchains are built to be interoperable users can switch between them and use the one that best fits their needs.
Use of existing technologies
Ellipticoin is deliberately built with existing open source components and existing open standards when possible. This cuts down on the surface area of the codebase and leverages the the work of existing projects and communities.
Libp2p is a standard for peer to peer communication. By leveraging an existing framework for peer to peer communication Ellipticoin won’t need to have it’s own.
Differences From Cardano
Cardano and the Ouroboros protocol are a gift to the blockchain community. Ellipticoin will base a lot of the protcol on the concepts in the Ouroboros white paper with the following differences:
In Proof of Work the miner who mines block with the most leading zeros gets to mine the block and be the leader of that round of consensus. If you want to construct a similar protocol in Proof of Stake you need some source of randomness to randomly select a leader each round. Cardando uses a multiparty coin-flipping protocol as a source of randomness. Ellipticoin uses a random seed and a signature chain as it's source of randomness. The slot leader of block 1 is determined by some random seed value. This could be any random value but Ellipticoin will base it off of the combination of 2 agreed upon block hashes at certain heights in the Bitcoin and Ethereum blockchains. The slot leader of block 1 would then sign this value with their private key. The leader of block 2 block is determined by the value of the signature. The leader of block 2 then signs this resulting value and so on. This eliminates any sort of "grinding" attacks outlined in the Cardano white paper because there's nothing to grind. Signers don't have any control over the value of their signature. This eliminates the complexity in both the commitment and reveal phase of randomness and computing a random number from those values.
Incentives and Disincentives
Ellipticoin will be much more draconian than Cardano. Any staker provably violating any rule in the network will loose all of their stake. If a staker is elected as a slot leader and fails to publish a block in the 3 second time period they will loose their entire stake as well. The protocol is not designed to serve the stakers it's designed to serve the users. Staking will be a risky endeavor and should only be done by those willing to take those risks.
Stake Delegation and Pooling
Stake delagation won't be built into the protocol like it is in Cardano. Staking pools can be built as smart contracts and run on the Ellipticoin network. This simplifies the protocol.