Horizen was launched in May 2017 under the name ZenCash. The project set out with the goal of building zero-knowledge-proof technologies, a sustainable funding model, and the desire to adequately incentivize stakeholders and build an ecosystem.
On 3rd June 2018, ZenCash experienced an attempted 51% attack. The attackers managed to create 3 double spend transactions of 3317.4, 6,600, and 13,234.9 ZEN. In response, the team amended the consensus mechanism and introduced a penalty for delayed block reporting. The solution makes it exponentially more difficult and costly for malicious actors trying to perform a 51% attack. The solution is also being used by other projects, such as Pirl.
As ZenCash grew in popularity, it constantly found itself being confused with another crypto project called Zcash. In addition, the word “cash” in the project’s name was presenting it as merely a digital currency and yet the project was looking at product offerings like a decentralized treasury and sidechains. The team decided that it was time for a rebrand.
In August 2018, the project was rebranded to its current name, Horizen. This marked the project's evolution from simply a cryptocurrency to a privacy platform with a focus on scalability.
The Horizen protocol is a distributed, time-stamped ledger of unspent transaction output (UTXO) transfers stored in an append-only chain of 2MB data blocks. A network of mining and economic nodes maintains this blockchain by validating, propagating, and competing to include pending transactions (mempool) in new blocks. Economic nodes (aka "full nodes") receive transactions from other network participants, validate them against network consensus rules and double-spend vectors, and propagate the transactions to other full nodes that also validate and propagate them. Valid transactions are sent to the network's mempool waiting for mining nodes to confirm them via inclusion in the next block.
Mining nodes work to empty the mempool usually in a highest-to-lowest fee order by picking transactions to include in the next block and racing against each other to generate a hash less than the target number set by Horizen's difficulty adjustment algorithm. Horizen uses a Proof-of-Work (PoW) consensus mechanism to establish the chain of blocks with the most accumulated "work" (a.k.a., energy spent on solved hashes) as the valid chain. Other network peers can cheaply verify the chain’s work.
In order to have zero-knowledge privacy in Horizen, the function determining the validity of a transaction according to the network’s consensus rules must return the answer of whether the transaction is valid or not, without revealing any of the information it performed the calculations on. This is done by encoding some of the network’s consensus rules in zk-SNARKs (zero-knowledge succinct non-interactive arguments of knowledge). Zk-SNARKs are specific zero-knowledge proofs whereby one can prove possession of certain information, e.g. a secret key, without revealing that information, and without any interaction between the prover and verifier.
Horizen addresses are either private (z-addresses) or transparent (t-addresses). Z-addresses start with a “zc,” and t-addresses start with a "zn." The two Horizen address types are interoperable, and funds can be transferred between z-addresses and t-addresses. A Z-to-Z transaction appears on the public blockchain, so it is known to have occurred and that the fees were paid. But the addresses, transaction amount, and the memo field are all encrypted and not publicly visible. Transactions between two transparent addresses (t-addresses) work just like Bitcoin: The sender, receiver, and transaction value are publicly visible. The owner of an address may choose to disclose z-address and transaction details with trusted third parties using view keys and payment disclosure.