-
Notifications
You must be signed in to change notification settings - Fork 1
Human Fund
Money... for People
The Human Fund supports people all around the world by providing them money. Humans can donate money to the Human Fund, and the Human Fund can disburse money to people.
The Human Fund blockchain acts as a verifiable institutional receipt that anyone participating in the blockchain can (and may) inspect. Donations and disbursements are all recorded within the blockchain, giving auditors the ability to easily traverse the Human Fund's history.
Donations allow humans to give money to the Fund.
Disbursements allow the Fund to give money to humans.
This section uses the definitions related to blockchains provided in The Essential Blockchain document.
A Transaction holds an arbitrary data element called the payload. In the Human Fund, the payload comes in two flavors representing the two actions that actors on the Human Fund blockchain can perform: donate and disburse.
Transactions are grouped into Blocks. The Human Fund blockchain chooses to include a block id. This accident is necessary to aid in auditing. IDs help one search for (and eventually query) specific transactions, which would be difficult without a way to identify individual blocks.
The blockchain appends blocks together in an ordered manner. Its specifications (essentials and accidents) are listed below.
| Abstraction | Implementation | Reason |
|---|---|---|
| Block References | Linked List | Linked lists lend themselves to append-only ledgers, which a blockchain is. |
| Hashing Algorithm | SHA 256 | Hashing allows the blockchain to confirm the permanent stasis of a given block and subsequent dependent blocks. SHA 256 is cryptographically secure (for now). |
| Hash requirement for proof of work | One leading zero | It is easy to check if a hash is valid. It is easy to explain a leading zero proof to a (non-)technical audience. |
| Transaction Storage within Blocks | Merkle Tree | Merkle Trees aid in validating transactions and also in proofs of membership (or, in some cases, non-membership). |
Anyone can make a donation to the Human Fund. Donors' identities and donations are public.
| Field | Description | Type |
|---|---|---|
| Donor | The person making the donation. | String |
| Amount | The amount of money, in US cents, the donor is donating. | int |
| Time | When the donor has made the donation | LocalDateTime |
Only the Human Fund can disburse money to humans. The recipients' identities are public.
| Field | Description | Type |
|---|---|---|
| Recipient | The human receiving the disbursement. | String |
| Amount | The amount of money, in US cents, the Human Fund is disbursing. | int |
| Time | When the Human Fund has made the disbursement | LocalDateTime |