Skip to content

Human Fund

dgisolfi edited this page May 7, 2019 · 1 revision

Money... for People

Overview

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.

Why Blockchain?

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.

Types of Actions

Donations allow humans to give money to the Fund.

Disbursements allow the Fund to give money to humans.

Blockchain - Essence to Implementation

This section uses the definitions related to blockchains provided in The Essential Blockchain document.

Structures

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.

Specifications

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).

Donations

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

Disbursements

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

Clone this wiki locally