NAME
Crypt::HashCash - HashCash Digital Cash
VERSION
$Revision: 1.117 $
$Date: Sat Jun 10 10:50:47 PDT 2017 $
SYNOPSIS
HashCash is a digital cash system based on blind signatures, as introduced by David Chaum in [1].
HashCash features a number of optimizations for usability and accessibility, including blind ECDSA signatures which make for more compact coins, and a simple protocol that enables the system to work in a permissionless manner, requiring no user accounts or registration.
The main components of HashCash are: one or more vaults, which issue and verify HashCash coins; the coins themselves; and wallets, which hold and manage coins owned by users.
HashCash coins represent a claim on a deposit at a vault. They are bearer tokens which can be passed directly from one user to another, and cannot be tracked by the vault.
HashCash coins can be backed by whatever a vault accepts for deposit - some possibilities being precious metals, fiat currencies, gift cards, etc. The distribution includes an implementation of a vault for Bitcoin, which issues HashCash coins backed by Bitcoin.
All messages between wallets and vaults are encrypted, so there's no need for a secure communications channel between them.
HOW TO USE
Usually you would just run the HashCash wallet after installing the distribution, with the command:
hashcash.pl
Then you can buy or sell HashCash, export coins from your wallet to give to others, or import coins received from others into your wallet. You can also exchange coins for lower denominations, and verify coins you've imported into the wallet.
HashCash coins can be sent to others over any communications channel - email, web, instant messaging, SMS, directly by scanning a QR code. They could even be printed on paper and used just like normal paper currency, though with a higher level of security and privacy.
You can easily automate the acceptance of HashCash payments on a website (or via email or any other communications channel) using the Business::HashCash module.
You could also run a HashCash vault, which is a potentially very profitable small business requiring a minimal amount of ongoing work. For more details on this visit the website: http://www.hashcash.com/.
FUNCTIONS
breakamt
Accepts a single parameter which is an amount to break into coins, and returns the denominations of the minimum number of coins that total up to this amount, as well as the total number of coins. The coin denominations are returned as a hash whose keys are the coin denominations and values are the number of coins of the corresponding denomination.
changecoin
Accepts a single parameter which is the denomination of a coin to get change for, and returns the denominations of the change coins, as well as the total number of coins. The denominations are returned in a hash, as described above, followed by the total number of coins.
SEE ALSO
www.hashcash.com
Crypt::HashCash::Mint
Crypt::HashCash::Client
Crypt::HashCash::Coin
Crypt::HashCash::Vault::Bitcoin
Business::HashCash
REFERENCES
1. Blind Signatures For Untraceable Payments, David Chaum. http://www.hit.bme.hu/~buttyan/courses/BMEVIHIM219/2009/Chaum.BlindSigForPayment.1982.PDF
AUTHOR
Ashish Gulhati, <crypt-hashcash at hash.neo.tc>
BUGS
Please report any bugs or feature requests to bug-crypt-hashcash at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Crypt-HashCash. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Crypt::HashCash
You can also look for information at:
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
LICENSE AND COPYRIGHT
Copyright (c) 2001-2017 Ashish Gulhati.
This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0.
See http://www.perlfoundation.org/artistic_license_2_0 for the full license terms.