From 8c70db4d1d77c778c71a9b1d655a67557989ac49 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sat, 20 Apr 2019 03:48:22 -0700 Subject: [PATCH] update --- hush-v3.pdf | Bin 255452 -> 256186 bytes hush-v3.tex | 83 ++++++++++++++++++++++++++-------------------------- 2 files changed, 41 insertions(+), 42 deletions(-) diff --git a/hush-v3.pdf b/hush-v3.pdf index 0f0d4290ff0bb7c1f7716b09b4fc003ea00768c3..b73d195e6ea925d68cc85e7425d50a072f1a5981 100644 GIT binary patch delta 20932 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 N!X)hMN}9?f{{tUBRCfRX delta 20209 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 diff --git a/hush-v3.tex b/hush-v3.tex index 0d7ddaf..ec7dc9f 100644 --- a/hush-v3.tex +++ b/hush-v3.tex @@ -82,7 +82,7 @@ \newlist{formulae}{itemize}{3} \setlist[formulae]{itemsep=0.2ex,topsep=0ex,leftmargin=1.5em,label=,after=\vspace{1.5ex}} -\newcommand{\docversion}{Pre-Release Version} +\newcommand{\docversion}{Whitepaper Version 1.0} \newcommand{\termbf}[1]{\textbf{#1}\xspace} \newcommand{\Hushlist}{\termbf{HushList}} \newcommand{\HushList}{\termbf{HushList}} @@ -432,7 +432,7 @@ zkSNARKs, HushList, cryptoconditions, smart contracts, 51\% attack, double spend \title{\doctitle \\ \Large \docversion} \author{ -\Large \leadauthor\hairspace\thanks{\;duke@leto.net https://myhush.org} +\Large \leadauthor\hairspace\thanks{\;duke@leto.net , duke.leto.net, @dukeleto} } \date{\today} \maketitle @@ -446,7 +446,8 @@ zkSNARKs, HushList, cryptoconditions, smart contracts, 51\% attack, double spend originally called "Zdash" and mined a genesis block on Nov 17, 2016. The latest version of \Hush migrates to a new codebase based on Komodo and Zcash 2.0.x with a new genesis block mined on April 14th 2019, while keeping the - emission schedule as close as possible to the original intentions. + emission schedule as close as possible to the original intentions. Latest + details can be found at https://myhush.org . \begin{quote} A beginning is the time for taking the most delicate care that the balances are correct. @@ -474,7 +475,7 @@ A beginning is the time for taking the most delicate care that the balances are \begin{itemize} \item 21M total supply -\item Block reward = 12.5 HUSH +\item Block reward = 12.5 \HUSH \item Block time = 150 seconds \item Halving interval = every 210,000 blocks \item Delayed-Proof-Of-Work @@ -487,7 +488,7 @@ A beginning is the time for taking the most delicate care that the balances are \item New Genesis Block \item Sprout Disabled \item First Sprout-Free Chain, with Only Sapling Shielded Transactions - \item Replace ZEC with KMD as upstream + \item Replace Zcash (\ZEC) with Komodo (\KMD) as upstream \item New main Github repo \item Addition of 10\% Founders Reward \item Address prefix change (t1,t3 becomes R,b) @@ -506,13 +507,13 @@ A beginning is the time for taking the most delicate care that the balances are \nsection{New Genesis Block} -The new HUSH v3 mainnet genesis block has block hash: +The new \HUSH v3 mainnet genesis block has block hash: 06c3269d065d19960ba2aac92daad182f24961043b8e279a64a3c0298d4bf7ed and occured at unix Epoch time 1555263294. -Additional useful metadata that can be used to verify you have the correct HUSH +Additional useful metadata that can be used to verify you have the correct \HUSH genesis block: "nextblockhash": "0a3bcdd57276c1a07aa657992967fb0c64cd12d489bde85223058381cb58d95d" @@ -523,16 +524,14 @@ genesis block: "finalsaplingroot": "3e49b5f954aa9d3545bc6c37744661eea48d7c34e3000d82b7f0010c30f4c2fb", -"hash": "06c3269d065d19960ba2aac92daad182f24961043b8e279a64a3c0298d4bf7ed", - This block can be viewed in a more user-friendly manner at: https://explorer.myhush.org/block/06c3269d065d19960ba2aac92daad182f24961043b8e279a64a3c0298d4bf7ed \nsection{First Sprout-Free Sapling Blockchain} -HUSH is proud to be the very first blockchain to enforce only Sapling -transaction from the very beginning! HUSH enables Sapling at Block 1, which +\HUSH is proud to be the very first blockchain to enforce only Sapling +transaction from the very beginning! \HUSH enables Sapling at Block 1, which means no Sprout UTXOs will ever exist on our new blockchain. This removes any future risk of Sprout bugs/CVEs and drastically reduces the maintenance cost going forward, as Sprout code and Sapling code are different codepaths and so @@ -544,12 +543,12 @@ No other blockchain has started as a pure Sapling chain, all other existing Most closely aligned to Hush is our sister coin Pirate (ARRR), which was the very first coin to disable normal transparent transactions (only coinbase and notarizations) and was one of the first coins to transition away from Sprout to -Sapling. The decision for HUSH to disable support for old Sprout coins, after a +Sapling. The decision for \HUSH to disable support for old Sprout coins, after a certain block height, was inspired by Pirate: https://pirate.black \nsection{10\% Founders Reward} -HUSHv3 adds a 10\% Founders Reward, in perpetuity, until block rewards end. +\HUSH v3 adds a 10\% Founders Reward, in perpetuity, until block rewards end. This is approximately 5.5 million blocks or about 30 years. The Founders Reward is paid out every block in vout[1] to a single address @@ -561,7 +560,7 @@ with scriptPubKey 76a9145eb10cf64f2bab1b457f1f25e658526155928fac88ac -Initially the Founders Reward is 1.25 HUSH, starting at Block 129 until the first +Initially the Founders Reward is 1.25 \HUSH, starting at Block 129 until the first halving on the new chain at Block 340000. In order to help transition, there will be a period of 128 blocks of zero block @@ -574,20 +573,20 @@ estimate. \nsection{New Upstream: KMD} -HUSH is no longer directly a source code fork of Zcash (ZEC), it is now a fork -of \cite{Komodo} (KMD). Since KMD itself is a fork of ZEC, this means we gain an +\HUSH is no longer directly a source code fork of Zcash (\ZEC), it is now a fork +of \cite{Komodo} (\KMD). Since \KMD itself is a fork of \ZEC, this means we gain an immense amount of code and features, and all the development velocity of jl777. -As an example, during the development of HUSHv3, over the course of a few weeks, +As an example, during the development of \HUSH v3, over the course of a few weeks, about 20,000 lines of code was changed in upstream Komodo repo, adding many features and fixing various bugs. -We expect to see the developement velocity of the HUSH community greatly +We expect to see the developement velocity of the \HUSH community greatly increase, since we will now essentially have jl777 constantly doing low-level blockchain internals coding, which frees up other developer resources to work on wallets, explorers, HushList protocol and applications which sit on top of the RPC interface. -HUSHv3 is a source code fork of the jl777/komodo git repository and lives at +\HUSH v3 is a source code fork of the jl777/komodo git repository and lives at https://github.com/MyHush/hush3 @@ -613,7 +612,7 @@ others as time goes on: \end{itemize} These features will allow for an entire ecosystem of decentralized applications -(dApps) to be built on top of HUSH, which integrate with HushList protocol as +(dApps) to be built on top of \HUSH, which integrate with HushList protocol as well as cross-chain integrations with other Komodo asset chains that have cryptoconditions enabled. @@ -632,23 +631,23 @@ our new chain (Hush v3) by ceasing block rewards when total supply hits 21M coins, as intended. As a reminder, NONE of the current Hush team received any the original 0.76\% -(160,000 HUSH) pre-mine. All of the original Hush developers who received the +(160,000 \HUSH) pre-mine. All of the original Hush developers who received the reward have long since left the project. The current Hush chain (version 2) will attain a supply of 21,000,000 coins at -Block 5922239 which will have a Block Reward of 0.09765625 HUSH. This happens +Block 5922239 which will have a Block Reward of 0.09765625 \HUSH. This happens between the 7th and 8th halvings. -But because the original devs of Hush added a pre-mine of 160,000 HUSH in blocks +But because the original devs of Hush added a pre-mine of 160,000 \HUSH in blocks 1 through 4, the current Hush supply curve will continue past the 21M supply -mark until Block 26039999 when supply is 21159937.4895 HUSH and the last block +mark until Block 26039999 when supply is 21159937.4895 \HUSH and the last block reward of 1 satoshi is awarded just before the 31st halving. The core issue is that blocks 1 through 4 had a block reward of 40,000 each instead of 12.5 each in the GetBlockSubsidy() function defined in main.cpp, but the overall emission schedule was not modified to take this into account. -This mistake would eventually lead to an extra 159,937.4895 HUSH of total supply +This mistake would eventually lead to an extra 159,937.4895 \HUSH of total supply beyond the intended totaly supply of 21M, which would happen after about 30 years, between the 7th and 8th halvings. @@ -682,12 +681,12 @@ which can install and sync a full node in just a few minutes. - Fremen saying of ill will against an adversary \end{quote} -HUSH will continue to have Delayed Proof-of-Work as protection against 51\% +\HUSH will continue to have Delayed Proof-of-Work as protection against 51\% attacks and double spend attack prevention. No other technology is proven in production like \cite{DPoW}. The first DPoW transaction occured at Apr 14, 2019 10:38:10 PM Eastern Time -on the new HUSH mainnet : +on the new \HUSH mainnet : https://explorer.myhush.org/tx/e73105092bbf01694af250f8ef89aa38d955856a5a3496e3336eaca59492b29f @@ -696,16 +695,16 @@ large amount of hashrate was rented at NiceHash, and a 51\% attack was attempted, which would re-organized a notarized block. The attack repeatedly failed and wasted a large amount of BTC of the simulated attacker. -HUSHv3 will be migrating to the core DPoW implementation of Komodo itself, +\HUSH v3 will be migrating to the core DPoW implementation of Komodo itself, instead of relying on the implementation that was ported from Komodo to the -Hush v2 codebase. This further increases HUSH development velocity and reduces +Hush v2 codebase. This further increases \HUSH development velocity and reduces our maintenance burden to merge upstream code. \nsection{Cryptopia Attack} Delayed-Proof-of-Work had been implemented in Hush in early 2018 but took many months to finish testing and be pushed to mainnet. During this time, an -enterprising attacker probably saw that their window to attack HUSH was closing. +enterprising attacker probably saw that their window to attack \HUSH was closing. This attacker performed a series of 51\% and double spend attacks against Cryptopia, between August 28th and September 21st 2018 It was designed to use @@ -730,7 +729,7 @@ was orphaned and replaced by the 45 block subchain: \end{quote} -Note that the above block hashes must be looked up on a legacy HUSH block +Note that the above block hashes must be looked up on a legacy \HUSH block explorer such as : https://explorer.hush.zelcore.io @@ -741,7 +740,7 @@ exist as an orphaned blocks on nodes which originally saw that invalidated chain Via blockchain analysis and detailed transaction logs from Cryptopia, who gave us details about which addresses the attacker was using, it was determined that the following addresses are owned by the Cryptopia Double Spend Attacker, with -old HUSH v2 addresses on the left and new HUSH v3 addresses on the right. +old \HUSH v2 addresses on the left and new \HUSH v3 addresses on the right. \begin{quote} @@ -751,14 +750,14 @@ t1KttMaacGw17oFitV448TGfwM2yovm4g6Q = RBJURm3kuS26Gd3C1oE8QyuDreFKpkNT2Z \end{quote} -The first address owns 651000 HUSH and the second owns 29279.8 HUSH on the -legacy HUSH v2 chain which was not dispersed to the equivalent addresses on the -new HUSH v3 mainnet. These funds currently remain in the HUSH Founders Reward +The first address owns 651000 \HUSH and the second owns 29279.8 \HUSH on the +legacy \HUSH v2 chain which was not dispersed to the equivalent addresses on the +new \HUSH v3 mainnet. These funds currently remain in the \HUSH Founders Reward wallet and will be used to reimburse all who were stolen from at Cryptopia, -which will enable HUSH trading to resume. Any remaining funds will be used for +which will enable \HUSH trading to resume. Any remaining funds will be used for additional exchange listings. -\nsection{Immutability of HUSH v2 + v3} +\nsection{Immutability of \HUSH v2 + v3} Please note that the immutability of the legacy Hush mainnet or new Hush v3 mainnet was never compromised. The \cite{Bitcoin} Protocol was observed strictly and @@ -782,8 +781,8 @@ get to decide which chain goes forward. \nsection{Sprout Inflation Bug Playground} -Let it be known that HUSH v2 mainnet is considered a Sprout Inflation bug -playground, and there is a bounty of 500 HUSH for a script which makes it +Let it be known that \HUSH v2 mainnet is considered a Sprout Inflation bug +playground, and there is a bounty of 500 \HUSH for a script which makes it trivial to exploit the Sprout inflation bug and generate arbitrary amounts of funds inside of a Sprout zaddr. @@ -795,13 +794,13 @@ https://github.com/MyHush/hush3/issues/7 \nsection{Dispersing Funds To The New Mainnet: Swapping Airdrop} This process is sometimes called an "airdrop" because the technical process of -sending funds to addresses is the same, but HUSH v3 is technically a "coin +sending funds to addresses is the same, but \HUSH v3 is technically a "coin swap", since we do not support our legacy chain. A total of 3127 transactions with "sendmany" were made to complete sending funds to 31,267 unique addresses which contained funds on the Hush v2 blockchain as -of the snapshot block of 500,000. The average address had about 200 HUSH while -the median address had 1 HUSH. +of the snapshot block of 500,000. The average address had about 200 \HUSH while +the median address had 1 \HUSH. This data was extracted via the "getsnapshot" RPC which I helped write for Komodo and ported to Hush v2. Additionally I ported the -stopat CLI param