From 370d1ddd57e28ffb3a4c4855d36e0202ce561b1e Mon Sep 17 00:00:00 2001 From: Christopher Goes Date: Tue, 13 Aug 2019 15:29:18 +0200 Subject: [PATCH] Merge PR #192: Update PDF; fix images & sections --- .gitignore | 3 +++ scripts/make_pdf.sh | 5 +++++ spec.pdc | 22 +++++++++++----------- spec.pdf | Bin 131 -> 131 bytes spec/ics-023-vector-commitments/README.md | 20 ++++++++++---------- 5 files changed, 29 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 7c556d41db84..1c2f6247dd39 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ # agda interpreter state *.agdai + +# temporary files created during pdf preprocessing +*.md.xfm diff --git a/scripts/make_pdf.sh b/scripts/make_pdf.sh index 8496ab4cb1d0..0c984b68d1f2 100755 --- a/scripts/make_pdf.sh +++ b/scripts/make_pdf.sh @@ -2,4 +2,9 @@ set -xe +DIR=./spec +find $DIR -type f -name "*.md" -exec cp {} {}.xfm \; +find $DIR -type f -name "*.md.xfm" -exec awk -i inplace '/## Backwards Compatibility/ {exit} {print}' {} \; +find $DIR -type f -name "*.png" -exec cp {} . \; pandoc --pdf-engine=xelatex --template eisvogel --filter pandoc-include --mathjax --toc --number-sections -o spec.pdf spec.pdc +rm *.png diff --git a/spec.pdc b/spec.pdc index 74539c4f4e51..2eb8d09fe29f 100644 --- a/spec.pdc +++ b/spec.pdc @@ -33,44 +33,44 @@ header-includes: # ICS 001 - ICS Standard -!include spec/ics-001-ics-standard/README.md +!include spec/ics-001-ics-standard/README.md.xfm # ICS 023 - Vector Commitments -!include spec/ics-023-vector-commitments/README.md +!include spec/ics-023-vector-commitments/README.md.xfm # ICS 024 - Host Requirements -!include spec/ics-024-host-requirements/README.md +!include spec/ics-024-host-requirements/README.md.xfm # ICS 002 - Consensus Verification -!include spec/ics-002-consensus-verification/README.md +!include spec/ics-002-consensus-verification/README.md.xfm # ICS 003 - Connection Semantics -!include spec/ics-003-connection-semantics/README.md +!include spec/ics-003-connection-semantics/README.md.xfm # ICS 005 - Port Allocation -!include spec/ics-005-port-allocation/README.md +!include spec/ics-005-port-allocation/README.md.xfm # ICS 004 - Channel & Packet Semantics -!include spec/ics-004-channel-and-packet-semantics/README.md +!include spec/ics-004-channel-and-packet-semantics/README.md.xfm # ICS 025 - Handler Interface -!include spec/ics-025-handler-interface/README.md +!include spec/ics-025-handler-interface/README.md.xfm # ICS 026 - Relayer Module -!include spec/ics-026-relayer-module/README.md +!include spec/ics-026-relayer-module/README.md.xfm # ICS 018 - Relayer Algorithms -!include spec/ics-018-relayer-algorithms/README.md +!include spec/ics-018-relayer-algorithms/README.md.xfm # ICS 020 - Fungible Token Transfer -!include spec/ics-020-fungible-token-transfer/README.md +!include spec/ics-020-fungible-token-transfer/README.md.xfm diff --git a/spec.pdf b/spec.pdf index 04cb70e8005cb88fe44b62531a6a840c2ca13f87..e13dd59fa5a1e90c4a7794673e4ab77b39574842 100644 GIT binary patch delta 84 zcmV~$xeb6Y3;;l-%@mA~#}6KYAsjyvH63jhU}Wxg+2x~ar8x48G#P~H5UZ&gvN?cv eP?s|sCvhT;M#k#FMBr01XRpuw#vyYEOZ@>Gnitvt delta 84 zcmWN_u@QhU2mrvd%@mFRArLZzLx6!hYdhO4;K=&ruWfCw9AxO7Qd=YsX`o^dN)dmV fXNTm|s|d_CFwuCDS value mappings which have been added to the commitment can always be proved to have been included, and keys which have not been included can always be proved to have been excluded, except with probability negligible in `λ`. +Commitment proofs MUST be *complete*: key => value mappings which have been added to the commitment can always be proved to have been included, and keys which have not been included can always be proved to have been excluded, except with probability negligible in `k`. For any key `key` last set to a value `value` in the commitment `acc`, @@ -181,7 +181,7 @@ proof = createMembershipProof(acc, key, value) ``` ``` -Pr(verifyMembership(root, proof, key, value) === false) negligible in λ +Pr(verifyMembership(root, proof, key, value) === false) negligible in k ``` For any key `key` not set in the commitment `acc`, for all values of `proof` and all values of `value`, @@ -192,28 +192,28 @@ proof = createNonMembershipProof(acc, key) ``` ``` -Pr(verifyNonMembership(root, proof, key) === false) negligible in λ +Pr(verifyNonMembership(root, proof, key) === false) negligible in k ``` #### Soundness -Commitment proofs MUST be *sound*: key => value mappings which have not been added to the commitment cannot be proved to have been included, or keys which have been added to the commitment excluded, except with probability negligible in a configurable security parameter `λ`. +Commitment proofs MUST be *sound*: key => value mappings which have not been added to the commitment cannot be proved to have been included, or keys which have been added to the commitment excluded, except with probability negligible in a configurable security parameter `k`. For any key `key` last set to a value `value` in the commitment `acc`, for all values of `proof`, ``` -Pr(verifyNonMembership(root, proof, key) === true) negligible in λ +Pr(verifyNonMembership(root, proof, key) === true) negligible in k ``` For any key `key` not set in the commitment `acc`, for all values of `proof` and all values of `value`, ``` -Pr(verifyMembership(root, proof, key, value) === true) negligible in λ +Pr(verifyMembership(root, proof, key, value) === true) negligible in k ``` #### Position binding -Commitment proofs MUST be *position binding*: a given key can only map to one value, and an commitment proof cannot prove that the same key opens to a different value except with probability negligible in λ. +Commitment proofs MUST be *position binding*: a given key can only map to one value, and an commitment proof cannot prove that the same key opens to a different value except with probability negligible in k. For any key `key` set in the commitment `acc`, there is one `value` for which: @@ -223,13 +223,13 @@ proof = createMembershipProof(acc, key, value) ``` ``` -Pr(verifyMembership(root, proof, key, value) === false) negligible in λ +Pr(verifyMembership(root, proof, key, value) === false) negligible in k ``` For all other values `otherValue` where `value /= otherValue`, for all values of `proof`, ``` -Pr(verifyMembership(root, proof, key, otherValue) === true) negligible in λ +Pr(verifyMembership(root, proof, key, otherValue) === true) negligible in k ``` ## Backwards Compatibility