Alternative to POW for maintaining consensus.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
db
patricia
pt
.gitignore
README
api.py
auto_signer.py
blockchain.py
cli.py
custom.py
db.py
log
ls
networking.py
peer_recieve.py
peers_check.py
reward_collector.py
security.py
threads.py
todo
tools.py
transactions.py

README

This blockchain is no longer maintained.
Use Flying Fox instead: https://github.com/BumblebeeBat/FlyingFox


Slasher
=============

a blogpost which proposed the idea to me: https://blog.ethereum.org/2014/01/15/slasher-a-punitive-proof-of-stake-algorithm/
a paper that calls this project impossible: https://download.wpsoftware.net/bitcoin/pos.pdf

Donations: 1GbpRPE83Vjg73KFvTVZ4EnS2qNkiLY5TT

=====INSTALL 
for Ubuntu

    git clone https://github.com/zack-bitcoin/slasher.git
    pip install pysha3
    pip install bitcoin
    cd slasher

====RUN A NODE

    ./cli.py start

It will take time to download the blockchain.

====TALK TO THE NODE

    ./cli.py

====About this software:

This is not yet a functioning cryptocurrency! The money does not have value.

I use a lot of Vitalik's ideas.
From this essay: https://blog.ethereum.org/2014/01/15/slasher-a-punitive-proof-of-stake-algorithm/
1) his algorithm for selecting signers from the coin-holders, with a small adjustment. 
2) the punitive transaction type. 

https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/
1) weak subjectivity 

https://blog.ethereum.org/2014/07/05/stake/
1) the low influence random number generator, with a modification. Signers first reveal Hash(bit+salt) and later reveal bit+salt when they collect their reward.

I use something similar to Daniel Larimer's transactions as proof of stake. Every transaction must reference the hash of one of the 10 most recent blocks. That way forks that start more than 10 blocks ago wont have any tx fees to reward the block creator.

https://blog.ethereum.org/2014/10/03/slasher-ghost-developments-proof-stake/
1) creating a new block should cost a large fee. A negative block reward. 
2) I use something similar to his idea (7), quote: "If there is an insufficient number of signers to sign at a particular block height h, a miner can produce a block with height h+1 directly on top of the block with height h-1 by mining at an 8x higher difficulty (to incentivize this, but still make it less attractive than trying to create a normal block, there is a 6x higher reward). "
But instead of charging POW, I charge a fee. 

from here http://vitalik.ca/ethereum/patricia.html
1) I took the idea to use Patricia trees so that users can efficiently prove how much money they had at any point in history.

An idea that Vlad Zamfir explained to me:
The total amount of money spent in a block must be less than or equal to the total amount of safety deposits left by the people who signed on that block. That way, any double-spend attack ends up costing more money than can be stolen. All the safety deposits are deleted. 

My slasher will have ~4 transaction types:
1) spend money 
2) sign on a block to help make the next valid block. 
3) punish someone who signed on contradictory chains. 
4) redeem your reward for having signed 3000 blocks ago. 

It will not have a scripting language.