bitpay / bitauth

Authenticate with web services utilizing the same strategy as Bitcoin.
MIT License
497 stars 171 forks source link

Support non-boolean authentication #8

Open maraoz opened 10 years ago

maraoz commented 10 years ago

A type 1 SIN is associated with a bitcoin sacrifice (See: https://en.bitcoin.it/wiki/Identity_protocol_v1#Creating_sacrifice_transactions). This could enable non-boolean levels authentication. Depending on the amount of bitcoin sacrificed, access can be granted with more granularity. An example app using this would be a forum where you need to sacrifice 0.01 btc to read, and 0.05 to post. An type 1 SIN which sacrificed 0.05 btc could read and post, and one with a 0.02 sacrifice could only read. Another could be an email server requiring a 0.01*x btc identity for every x emails sent (thus reducing spam). The benefits of adding costs to identity are many, and non-boolean authentication lets apps manage different levels of costs easily.

maraoz commented 10 years ago

Is it possible to use coin-age as a replacement to bitcoin sacrifice? In this case an identity is valid as long as the coin-age of the associated bitcoin address is > K. Locking the funds in that address also has a cost, and the user cannot move them as long as he wants to use that address (or that SIN) as an identity. (would love to hear @jgarzik's comments on this)

porkchop commented 10 years ago

+1 I'm super interested to hear comments on this as well. However I think implementation wise it is more of an authorization issue rather than authentication.