Skip to content

Commit

Permalink
Update address prefixes again. refs zcash/zcash#812
Browse files Browse the repository at this point in the history
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
  • Loading branch information
daira committed Oct 4, 2016
1 parent 2ccd1ac commit af4b9a0
Showing 1 changed file with 63 additions and 49 deletions.
112 changes: 63 additions & 49 deletions protocol/protocol.tex
Expand Up @@ -333,18 +333,18 @@
\newcommand{\PaymentAddressSecondByte}{\hexint{9A}}
\newcommand{\SpendingKeyLeadByte}{\hexint{AB}}
\newcommand{\SpendingKeySecondByte}{\hexint{36}}
\newcommand{\PtoSHAddressLeadByte}{\hexint{1B}}
\newcommand{\PtoSHAddressSecondByte}{\hexint{9C}}
\newcommand{\PtoPKHAddressLeadByte}{\hexint{1B}}
\newcommand{\PtoPKHAddressSecondByte}{\hexint{97}}
\newcommand{\PaymentAddressTestnetLeadByte}{\hexint{14}}
\newcommand{\PaymentAddressTestnetSecondByte}{\hexint{51}}
\newcommand{\SpendingKeyTestnetLeadByte}{\hexint{B1}}
\newcommand{\SpendingKeyTestnetSecondByte}{\hexint{EB}}
\newcommand{\PtoSHAddressTestnetLeadByte}{\hexint{1B}}
\newcommand{\PtoSHAddressTestnetSecondByte}{\hexint{9A}}
\newcommand{\PtoPKHAddressTestnetLeadByte}{\hexint{1C}}
\newcommand{\PtoPKHAddressTestnetSecondByte}{\hexint{05}}
\newcommand{\PtoSHAddressLeadByte}{\hexint{1C}}
\newcommand{\PtoSHAddressSecondByte}{\hexint{BD}}
\newcommand{\PtoPKHAddressLeadByte}{\hexint{1C}}
\newcommand{\PtoPKHAddressSecondByte}{\hexint{B8}}
\newcommand{\PaymentAddressTestnetLeadByte}{\hexint{16}}
\newcommand{\PaymentAddressTestnetSecondByte}{\hexint{B6}}
\newcommand{\SpendingKeyTestnetLeadByte}{\hexint{AC}}
\newcommand{\SpendingKeyTestnetSecondByte}{\hexint{08}}
\newcommand{\PtoSHAddressTestnetLeadByte}{\hexint{1C}}
\newcommand{\PtoSHAddressTestnetSecondByte}{\hexint{BA}}
\newcommand{\PtoPKHAddressTestnetLeadByte}{\hexint{1D}}
\newcommand{\PtoPKHAddressTestnetSecondByte}{\hexint{25}}
\newcommand{\NotePlaintextLeadByte}{\hexint{00}}
\newcommand{\AuthPublic}{\mathsf{a_{pk}}}
\newcommand{\AuthPrivate}{\mathsf{a_{sk}}}
Expand Down Expand Up @@ -2443,11 +2443,11 @@
\begin{pnotes}
\item In \Bitcoin a single byte is used for the version field identifying
the address type. In \Zcash two bytes are used. For addresses on
the production network, this fixes the first two characters of the
Base58Check encoding to be \ascii{r3} for P2SH addresses, or
\ascii{r1} for P2PKH addresses. (This does \emph{not} imply that a
\transparent \Zcash address can be parsed in the same way as a
\Bitcoin address just by removing the \ascii{r}.)
the production network, this and the encoded length cause the first
two characters of the Base58Check encoding to be fixed as \ascii{t3}
for P2SH addresses, and as \ascii{t1} for P2PKH addresses. (This does
\emph{not} imply that a \transparent \Zcash address can be parsed
identically to a \Bitcoin address just by removing the \ascii{t}.)
\item \Zcash does not yet support Hierarchical Deterministic Wallet
addresses \cite{BIP-32}.
\end{pnotes}
Expand Down Expand Up @@ -2489,6 +2489,13 @@
normal encoding of a Curve25519 public key \cite{Bern2006}}.
\end{itemize}

\pnote{
For addresses on the production network, the lead bytes and encoded length
cause the first two characters of the Base58Check encoding to be fixed as
\ascii{zc}. For the test network, the first two characters are fixed as
\ascii{zt}.
}

\nsubsubsection{Spending Keys} \label{spendingkeyencoding}

A \spendingKey consists of $\AuthPrivate$, which is a sequence of \changed{252} bits.
Expand Down Expand Up @@ -2519,15 +2526,21 @@

\changed{
The zero padding occupies the most significant 4 bits of the third byte.

\pnote{
If an implementation represents $\AuthPrivate$
internally as a sequence of 32 bytes with the 4 bits of zero padding
intact, it will be in the correct form for use as an input to
$\PRFaddr{}$, $\PRFnf{}$, and $\PRFpk{}$ without need for bit-shifting.
Future key representations may make use of these padding bits.
}

\begin{pnotes}
\changed{
\item If an implementation represents $\AuthPrivate$ internally as a
sequence of 32 bytes with the 4 bits of zero padding intact,
it will be in the correct form for use as an input to $\PRFaddr{}$,
$\PRFnf{}$, and $\PRFpk{}$ without need for bit-shifting.
Future key representations may make use of these padding bits.
}
\item For addresses on the production network, the lead bytes and encoded
length cause the first two characters of the Base58Check encoding to
be fixed as \ascii{SK}. For the test network, the first two characters
are fixed as \ascii{ST}.
\end{pnotes}


\nsubsection{\ZeroKnowledgeProvingSystem} \label{proofs}
Expand Down Expand Up @@ -3090,30 +3103,30 @@
For testnet, $\FounderAddressList_{\mathrm{1}..\NumFounderAddresses}$ is:

\begin{tabular}{@{\hskip 2.5em}l@{\;}l}
[& \ascii{2N2e2FRfP9D1dRN1oRWkH7pbFM69eGNAuQ4}, \ascii{2NBW8WsA2jUussoJbRv82UXH1BYopkjYqcd}, \\
& \ascii{2N1MudZmwDFTcYiLCZfrcsnhHwaSTTigbcN}, \ascii{2MxfUJXWKz9D8X3mcMpVcdEJKdJ6zFukca9}, \\
& \ascii{2N8iUwMCpU16VYpKQ1HRM6xfut5FZwGwieM}, \ascii{2N9hyafTvJVrykBvZDw79j1brozwZNySwPP}, \\
& \ascii{2NFx7tRozsp3kT1M4w4tL9FfnEj8RovzbzN}, \ascii{2NAqoH96V1RtmK72LEZpJNX1uxhJ5yejRiK}, \\
& \ascii{2MyV7hoV28KS8Uam2Z8nzY3xeo7R3T3TLUr}, \ascii{2N8Tn19hMoCD4EmCwpg1V8qupVkQLVVPhav}, \\
& \ascii{2NA5UeJU9zAQkSMyy3xpDcjfp4CEyKfzXKp}, \ascii{2NBERNyXy46CfM9yewGeof4yzC3vkwYnhgS}, \\
& \ascii{2N7fnpAswHb4mnPm2ZjWX3eKkF8hABAYBtQ}, \ascii{2N9MXGsz7uYaY5ciax6tSMDG7sjZUoLhJTC}, \\
& \ascii{2N5PwzPQFFmLut2XWGQWAmpwKsF8VzUoPtr}, \ascii{2MvZdDpNP8hWyEqg6zKW9B62YTJqcUwjHr5}, \\
& \ascii{2Mx4KfKJ37EDc3A43Frzof1iEjSe91JUX7d}, \ascii{2NBMSdXjZ7YqREmwxEtgGryY59KBpqMSs1d}, \\
& \ascii{2N9RbfE4ZCJ3Nx68vPfmvH2M6Q3qicJhagb}, \ascii{2N4xwfFkFj4DR4NWNbynzP2aJmVcEFnA2DB}, \\
& \ascii{2Mx4TyAwedmsRuDkvMNYGqrcCZfQTfCvxAp}, \ascii{2Mx4HSVsxEqXjLxn8igJzmCrFdG9XhnNvtf}, \\
& \ascii{2MtLM4SP7LJbBZ5rA5ZG8kAVz9UNrNKuoFB}, \ascii{2N7SPq83Cbmwuwv5rjNBzVd9QtJKAxxKj8M}, \\
& \ascii{2MwYkbE4U4p9XBsCrupDDkdcDH9L9xvc9Bn}, \ascii{2MyaeCHpVmckokUi67YP1QK9L3Dkx3Pt86F}, \\
& \ascii{2N7URNgBPXGjqnuPHiynCa6qMMhKm6YEaHr}, \ascii{2N2eNwGVwj4WwbEdJg7YZDgrnYvDv1ZSNbB}, \\
& \ascii{2MuWAG6BqLM1mtZc67Fv1aKgGwkNQ2akDGt}, \ascii{2N7XH82MbGwpzbc7PM2aK5CU14bSJvK7Etz}, \\
& \ascii{2MuPX8Ke5TvDDQ1nkqpaPMgYWPyWbFp18Jn}, \ascii{2NFBST7oK9yw9PaXaq5QhdyYwp5HpHz9m81}, \\
& \ascii{2MuSeMBUrttbjvDZAeQjTrrDeoP197qj2kG}, \ascii{2N6JU8JNGGAUFknTCuLSuDEEhZJqMfFsH88}, \\
& \ascii{2N4P2MrwtwbiHymQm1RASoVoiH3sFrBpmXa}, \ascii{2MyhFiVXvVVxUNc8Qh9ppV7jG4NsKpnxige}, \\
& \ascii{2N5dLXUho2GtjuHMWuqixLrHLCwUMcYxd7s}, \ascii{2N9NhfSiYBt3fhETFR6mQc3uxreEy7simSg}, \\
& \ascii{2NBEEWPY3v38uuC7n1tMtviEY7ND2XzfgSG}, \ascii{2NCWWj6oREJiMmfJ2bV5sbm1xchMwQfAZ5r}, \\
& \ascii{2N4ACsVCKMvJmtEb3Pd3xkqhJ3rLT4mYx1r}, \ascii{2MtmMdabcwRJmenswaYtWA675df854KhUxD}, \\
& \ascii{2N2h27Dd87eiGcm7ajvu4hJpXjTm9GkzvLZ}, \ascii{2NGE19agRXU1EAK3PCLZWXERkpqyUexhk9r}, \\
& \ascii{2N63112wMnBsXTaBFjbCTjW9LuyTXQmvEdw}, \ascii{2NBkHxgkYZbU56zsoLNsP5WZVfMtBK6X8WK}, \\
& \ascii{2N5pK7NfKo6d9qBmsKggpwuvQeMxGf65SLH}, \ascii{2N5jHzgCg9a9uAcLaT2jij8WKTZzWbVNC5c}\, ]
[& \ascii{t2UNzUUx8mWBCRYPRezvA363EYXyEpHokyi}, \ascii{t2N9PH9Wk9xjqYg9iin1Ua3aekJqfAtE543}, \\
& \ascii{t2NGQjYMQhFndDHguvUw4wZdNdsssA6K7x2}, \ascii{t27ktmq1kbeCWiQ5TZ7w5npSzcdbBmTB7v6}, \\
& \ascii{t2GcBttAKD2WTHka8HyGc2dfvVTKYZUfHmJ}, \ascii{t2Q3vxWaD9LrdqUE8Xd9Ddjpr9pUQ2aGotK}, \\
& \ascii{t2TTfWDsYu998fHWzVP9Gns4fgxXXRi1Wzu}, \ascii{t2KS6R4MMWdSBMjLCiw2iMyhWGRQPmyRqDn}, \\
& \ascii{t2Q2ELrgotWv3Eec6LEtMMiiQ8dtW38u8Tj}, \ascii{t2AEgJA88vTWAKqxJDFUEJWyHUtQAZi5G1D}, \\
& \ascii{t2HCSdmpq1TQKksuwPQevwAzPTgfJ2rkMbG}, \ascii{t2HQCPFAUQaUdJWHPhg5pPBxit7inaJzubE}, \\
& \ascii{t2Fzqvq8Y9e6Mn3JNPb982aYsLmq4b5HmhH}, \ascii{t2HEz7YZQqDUgC5h4y2WSD3mWneqJNVRjjJ}, \\
& \ascii{t2GCR1SCk687Eeo5NEZ23MLsms7JjVWBgfG}, \ascii{t2KyiPR9Lztq2w1w747X6W4nkUMAGL8M9KN}, \\
& \ascii{t2UxymadyxSyVihmbq7S1yxw5dCBqJ1S4jT}, \ascii{t2AVeMy7fdmTcJhckqiKRG8B7F1vccEhSqU}, \\
& \ascii{t26m7LwihQzD2sH7ZVhYpPJM5j7kzwbfKW9}, \ascii{t2DgwUNTe7NxuyPU6fxsB5xJXap3E4yWXrN}, \\
& \ascii{t2U6funcXA11fC9SZehyvUL3rk3Vhuh7fzS}, \ascii{t284JhyS8LGM72Tx1porSqwrcq3CejthP1p}, \\
& \ascii{t29egu8QcpzKeLoPLqWS6QVMnUUPQdF6eNm}, \ascii{t29LqD9p9D3B26euBwFi6mfcWu8HPA38VNs}, \\
& \ascii{t28GsAMCxAyLy85XaasddDzaYFTtfewr86y}, \ascii{t2GV44QyaikQPLUfm6oTfZnw71LLjnR7gDG}, \\
& \ascii{t2U2QzNLQ1jtAu4L6xxVnRXLBsQpQvGRR2g}, \ascii{t2QKGr5PNan7nrwDgseyHMN9NFeeuUjCh8b}, \\
& \ascii{t2AfS8u6HwBeJpKpbuxztvRjupKQDXqnrwa}, \ascii{t2CTRQUViQd3CWMhnKhFnUHqDLUyTxmWhJs}, \\
& \ascii{t2CbM9EqszNURqh1UXZBXYhwp1R4GwEhWRE}, \ascii{t2LM7uYiAsKDU42GNSnMwDxbZ8s1DowQzYH}, \\
& \ascii{t2AgvT35LHR378AE3ouz6xKMhkTLHLJC6nD}, \ascii{t285EAQXUVyi4NMddJv2QqTrnv45GRMbP8e}, \\
& \ascii{t2EpMRCD5b8f2DCQ37npNULcpZhkjC8muqA}, \ascii{t2BCmWXrRPiCeQTpizSWKKRPM5X6PS7umDY}, \\
& \ascii{t2DN7X6wDFn5hYKBiBmn3Z98st419yaTVTH}, \ascii{t2QJj8HeCwQ6mHwqekxxDLZntYpZTHNU62t}, \\
& \ascii{t2QdHBR1Yciqn4j8gpS8DcQZZtYetKvfNj3}, \ascii{t2E5cpLA1ey5VNxFNcuopeQMq2rH2NHiPdu}, \\
& \ascii{t2EVRGtzjFAyz8CF8ndvLuiJu7qZUfDa93H}, \ascii{t2KoQDk3BSFadBkuaWdLwchFuQamzw9RE4L}, \\
& \ascii{t2FnR3yhTmuiejEJeu6qpidWTghRd1HpjLt}, \ascii{t2BAuBAAospDc9d1u5nNGEi6x4NRJBD2PQ2}, \\
& \ascii{t2RtKrLCGcyPkm4a4APg1YY9Wu2m4R2PgrB}, \ascii{t28aUbSteZzBq2pFgj1K1XNZRZP5mMMyakV}, \\
& \ascii{t2Urdy1ERfkvsFuy6Z4BkhvYGzWdmivfAFR}, \ascii{t2ADinR4JrvCMd4Q1XGALPajzFrirqvhED6}\, ]
\end{tabular}

\renewcommand{\arraystretch}{1}
Expand Down Expand Up @@ -3633,7 +3646,8 @@
\subparagraph{2016.0-beta-1.8}

\begin{itemize}
\item Specify the lead bytes for \transparent P2SH and P2PKH addresses.
\item Revise the lead bytes for \transparent P2SH and P2PKH addresses,
and reencode the testnet \foundersReward addresses.
\item Add a section on which BIPs apply to \Zcash.
\item Specify that \ScriptOP{CODESEPARATOR} has been disabled, and
no longer affects signature hashes.
Expand Down

0 comments on commit af4b9a0

Please sign in to comment.