PuffsCoin operates as an Ethereum-like blockchain, featuring an inherent Turing-complete programming language, and utilizing similar consensus and architecture. PuffsCoin utilizes puffs as both its fuel and its currency to run smart contracts, allowing for the PuffsCoin Foundation to develop, deploy and scale distributed applications concentrated towards the cannabis industry, from seed producers to recreational users. PuffsCoin operates as “chainId”: 30375, and implemented its Homestead, eip155, and eip158 blocks within the first blocks beyond Genesis.

PuffsCoin utilizes the [ETHASH] Proof of Work (PoW) hashing algorithm as the backbone of its consensus engine, designed to operate as a “memory-hard to compute, memory-easy to verify” alternative to scrypt-based algorithms. The ideal of Ethash is to make the PoW mining function generally ASIC-resistant, attempting to help democratize the distribution of cryptocurrency mining, allowing smaller operators to take part in the consensus mining process of the cyptocurrency to gain access to PUFFS.

Investment Strategy and Consulting

Ethash creates a “pseudorandom dataset”, computed from the current blockchain height, called a DAG (“directed acyclic graphs”). The DAG, a “neural network” data structure with layers arranged as open chains, produces the key component for “memory-hardness”. Memory-hardness is the time to complete a given computational problem (the cryptographic block hash) which is decided upon primarily by the amount of memory required to hold the dataset and is used to prevent “spam transactions” that would have negligible cost to the malefactor.

A memory-hard process accesses locations in a large region of memory (the DAG) in an unpredictable way, in such a way that using caches are not effective. The DAG is regenerated every 30,000 blocks, called an epoch (approximately ~5 days). The DAG will continue to grow in size as the blockchain grows.

Full clients and miners store this dataset, which grows linearly with time. Many end-users will interact only with wallet transactions and distributed applications and be running a lite-client or web-extension such as Metamask will act as the bridge to the PuffsCoin blockchain.

Mining for PuffsCoin, in essence, involves grabbing random slices of the DAG and hashing them together. Verification can be done with low memory by using the cache to regenerate the specific pieces of the dataset needed.

The flow of the ethash hashing algorithm can be summarized as follows:

1. The Header, derived from the most previous block, and the Current Nonce, an arbitrary cryptographic guess to the block solution, are combined using the [Keccak-256] algorithm to calculate an initial 128-byte mix, called “Mix0”.
2. The Mix is used to compute which 128-byte page from the DAG to retrieve, represented by the Get DAG Page block.
3. The Mix is combined with the retrieved DAG page. This is done using an ethereum-specific Sha-128 derived mixing function to generate the next mix, called “Mix1”.
4. Steps 2 & 3 are repeated 64 times, finally yielding “Mix64”.
5. Mix64 is post-processed, yielding a shorter, 32-byte MixDigest.
6. This MixDigest is compared against a predefined 32-byte TargetThreshold.

This process creates the necessary memory hard conditions. Every mixing operation requires a 128byte read from the DAG. Hashing a single nonce requires 64 mixes, resulting in 8KB of memory read. The reads are random access (each 128-byte page is chosen pseudorandomly based on the Keccak-256 mixing function)and fetching the DAG pages from memory is much slower than the mixing computation itself, thus the user’s system memory bandwidth is what limits mining performance.The only way to boost mining performance is to speed up the 128 byte DAG page fetches from memory.

As an example of how the memory bandwidth limit affects system hardware, the mining performance of a commonly used graphics card: The ATI Radeon RX470, which lists its specs for memory bandwidth at 211 Gigabytes/second with 8 Gigabytes of memory. The theoretical hashrate of this model (Bandwidth/Memory) {211/8} is 26.375 Megahashes/second (37.9 nanoseconds/hash). The empirical data for the RX470 collected by Ethereum miners averages out to 24 MHs/S (41.7 nanoseconds per hash).

Miners have developed chained GPU systems (“mining rigs”) and naturally, research into high memory bandwidth ASIC boards, improvements in mobile chipsets and more efficient graphics cards will drive the evolution of cryptocurrency protocol design where a democratization of distribution is truly the real goal.

Naturally, PuffsCoin will watch the effects of the migration to Proof of Stake consensus on the Ethereum-1 blockchain, as Proof of Work does have several disadvantages as a primary engine for new currency distribution. It is costly in terms of electricity used by graphics cards, and some centralization occurs are large pools develop or organizations which can afford larger sets of “mining rigs” can control large swaths of the overall network hash rate, accumulating a larger proportion of rewards.

The principle of PoS on Ethereum-like blockchains will be determined as a “security-deposit based” consensus protocol. Staking nodes, so-called “bonded validators”, are required to secure a deposit (“bonding”) to serve the consensus by staking blocks. If a validator produces anything that Casper considers “invalid”, or misbehave in an objectively verifiable manner will have their deposit forfeited, alongside being blacklisted from participating in the staking process.

TARGET BLOCK TIME: 15 seconds.

We are working on creating not only just a speculative currency but also a generalized network platform for decentralized applications. In the context of non-financial applications, people tend to expect a much more rapid response time for the confirmation of transactions. Therefore, for the purpose of a stable AND efficient transactional platform, having a blockchain that is faster than the 10-minute blocktime for Bitcoin is essential. Arguments have been postulated that a faster block time creates more orphaned blocks (uncles) due to the delay of block propagation over the entire network, Having paid attention to our network intelligence page for some time, we have averaged less than 0.5% uncles with a 15 second block time which is statistically insignificant.


In the interest of a controlled economy, and to prevent rapid supply inflation, we are setting the distribution of block rewards to 5 PUFFS. This figure may be revised downwards in the future should the need arise, and should the overall community feel it is necessary.

Thus, with a proposed 15 second block time, the goal is to propagate and verify approximately 5760 blocks per day, minting approximately 28,800 PUFFS each day. We have chosen this slow distribution model presently to combat inflationary pressure on the currency. As the system grows, we are open to revisiting this rate.

PuffsCoin is not operating with a hard cap on currency supply. We hope to ensure that operational costs for contract interaction will remain a very minimal effect on users, and do not feel the “rarity” argument applies when the currency is intended more as a computational fuel than a speculative currency. Tokens launched on the PuffsCoin ecosphere may themselves have hard caps to supply, as written into their contract code, and as a development team, we will be exploring use-cases for many of the proposed ERC20 and ERC721 projects in the open-source realm, running on similar EVM core systems.

PuffsCoin does not have hard-coded block reward halving scheduled. Having the ability to maintain a system swiftly responsive to changes in market realities is important. Changes to block reward schemata will be a community assessed process, with consultations with both the cryptocurrency and cannabis industries as a whole.

Gas collected from transactions and contract calls collected within each block will be submitted separately from the block reward into the Veterans Endowment, a fund used to purchase and provide medicinal cannabis to registered veterans and first responders. This fund will be administered by the PuffsCoin Core development group in its initial stages but will be transferred to the control of a community-represented DAO as soon as our overall userbase and various participations are cemented with dispensaries, growers, and vets.