[INFO] fetching crate zkplmt 0.4.5... [INFO] documenting zkplmt-0.4.5 against master#8afe9ff1caa97654c31fb8c259dac9fdf67d6302 for pr-151918 [INFO] extracting crate zkplmt 0.4.5 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate zkplmt 0.4.5 [INFO] finished tweaking crates.io crate zkplmt 0.4.5 [INFO] tweaked toml for crates.io crate zkplmt 0.4.5 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate zkplmt 0.4.5 on toolchain 8afe9ff1caa97654c31fb8c259dac9fdf67d6302 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8afe9ff1caa97654c31fb8c259dac9fdf67d6302" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8afe9ff1caa97654c31fb8c259dac9fdf67d6302" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 107 packages to latest compatible versions [INFO] [stderr] Adding criterion v0.3.6 (available: v0.8.2) [INFO] [stderr] Adding curve25519-dalek v2.1.3 (available: v4.1.3) [INFO] [stderr] Adding proptest v0.10.1 (available: v1.10.0) [INFO] [stderr] Adding rand v0.7.3 (available: v0.9.2) [INFO] [stderr] Adding sha2 v0.8.2 (available: v0.10.9) [INFO] [stderr] Adding thiserror v1.0.69 (available: v2.0.18) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8afe9ff1caa97654c31fb8c259dac9fdf67d6302" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rusty-fork v0.3.1 [INFO] [stderr] Downloaded half v1.8.3 [INFO] [stderr] Downloaded rand_xorshift v0.2.0 [INFO] [stderr] Downloaded criterion-plot v0.4.5 [INFO] [stderr] Downloaded sha2 v0.8.2 [INFO] [stderr] Downloaded serde_cbor v0.11.2 [INFO] [stderr] Downloaded proptest v0.10.1 [INFO] [stderr] Downloaded criterion v0.3.6 [INFO] [stderr] Downloaded curve25519-dalek v2.1.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+8afe9ff1caa97654c31fb8c259dac9fdf67d6302" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 08d7137776d9ac291c6573bbf22dffcc3178d1f682ac360a116dabd2a83de557 [INFO] running `Command { std: "docker" "start" "-a" "08d7137776d9ac291c6573bbf22dffcc3178d1f682ac360a116dabd2a83de557", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "08d7137776d9ac291c6573bbf22dffcc3178d1f682ac360a116dabd2a83de557", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "08d7137776d9ac291c6573bbf22dffcc3178d1f682ac360a116dabd2a83de557", kill_on_drop: false }` [INFO] [stdout] 08d7137776d9ac291c6573bbf22dffcc3178d1f682ac360a116dabd2a83de557 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+8afe9ff1caa97654c31fb8c259dac9fdf67d6302" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 21034692c0e03d42afde10442a975aab802e912591f1c9398b62165854f050d0 [INFO] running `Command { std: "docker" "start" "-a" "21034692c0e03d42afde10442a975aab802e912591f1c9398b62165854f050d0", kill_on_drop: false }` [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking byte-tools v0.3.1 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Checking fake-simd v0.1.2 [INFO] [stderr] Checking opaque-debug v0.2.3 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Checking block-padding v0.1.5 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Checking generic-array v0.12.4 [INFO] [stderr] Checking digest v0.8.1 [INFO] [stderr] Checking block-buffer v0.7.3 [INFO] [stderr] Checking sha2 v0.8.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking curve25519-dalek v2.1.3 [INFO] [stderr] Documenting zkplmt v0.4.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:139:29 [INFO] [stdout] | [INFO] [stdout] 139 | Let an output TxO be (V[t],A[t],B[t]). Let the public key of the signer be $P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:139:34 [INFO] [stdout] | [INFO] [stdout] 139 | Let an output TxO be (V[t],A[t],B[t]). Let the public key of the signer be $P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:139:39 [INFO] [stdout] | [INFO] [stdout] 139 | Let an output TxO be (V[t],A[t],B[t]). Let the public key of the signer be $P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:140:94 [INFO] [stdout] | [INFO] [stdout] 140 | The public key is simply encrypted using the El-Gamal encryption with the public key $(A[t],B[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:140:99 [INFO] [stdout] | [INFO] [stdout] 140 | The public key is simply encrypted using the El-Gamal encryption with the public key $(A[t],B[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:141:99 [INFO] [stdout] | [INFO] [stdout] 141 | To do that, first a random $x$ is chosen from $𝔽q$, and then the encryption is computed as $E[t]=xB[t]+P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:141:105 [INFO] [stdout] | [INFO] [stdout] 141 | To do that, first a random $x$ is chosen from $𝔽q$, and then the encryption is computed as $E[t]=xB[t]+P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | Both $X[t]=xA[t]$ and $E[t]$ are stored in the transaction. The reciever knows the private key of the receiver (say $q[t]$); [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:142:19 [INFO] [stdout] | [INFO] [stdout] 142 | Both $X[t]=xA[t]$ and $E[t]$ are stored in the transaction. The reciever knows the private key of the receiver (say $q[t]$); [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:142:30 [INFO] [stdout] | [INFO] [stdout] 142 | Both $X[t]=xA[t]$ and $E[t]$ are stored in the transaction. The reciever knows the private key of the receiver (say $q[t]$); [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:142:124 [INFO] [stdout] | [INFO] [stdout] 142 | Both $X[t]=xA[t]$ and $E[t]$ are stored in the transaction. The reciever knows the private key of the receiver (say $q[t]$); [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:57 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:62 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:66 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:86 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:91 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:95 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:106 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:110 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:115 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:120 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:128 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:144:19 [INFO] [stdout] | [INFO] [stdout] 144 | This means $E[t]-q[t]X[t] = xB[t]+P-xB[t]=P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:144:24 [INFO] [stdout] | [INFO] [stdout] 144 | This means $E[t]-q[t]X[t] = xB[t]+P-xB[t]=P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:144:28 [INFO] [stdout] | [INFO] [stdout] 144 | This means $E[t]-q[t]X[t] = xB[t]+P-xB[t]=P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:144:36 [INFO] [stdout] | [INFO] [stdout] 144 | This means $E[t]-q[t]X[t] = xB[t]+P-xB[t]=P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:144:44 [INFO] [stdout] | [INFO] [stdout] 144 | This means $E[t]-q[t]X[t] = xB[t]+P-xB[t]=P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:146:64 [INFO] [stdout] | [INFO] [stdout] 146 | Now, the trick is to prove that $E$ indeed is equal to $xB[t]+P$ to the validators who don't know $q$ and must not be able to d... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:146:142 [INFO] [stdout] | [INFO] [stdout] 146 | ...don't know $q$ and must not be able to decrypt $E[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:147:112 [INFO] [stdout] | [INFO] [stdout] 147 | The trick is to 'promote' everything by some secret random $y$ and then check the sum. We compute $Y=yG,E_[t]=yE[t], P_=yP$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:147:118 [INFO] [stdout] | [INFO] [stdout] 147 | The trick is to 'promote' everything by some secret random $y$ and then check the sum. We compute $Y=yG,E_[t]=yE[t], P_=yP$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:148:38 [INFO] [stdout] | [INFO] [stdout] 148 | We now want to show that $E_=xyB[t]+P_$, which would then prove that $E[t]=xB[t]+P$. To do this, we must also compute the value... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:148:77 [INFO] [stdout] | [INFO] [stdout] 148 | We now want to show that $E_=xyB[t]+P_$, which would then prove that $E[t]=xB[t]+P$. To do this, we must also compute the value... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:148:83 [INFO] [stdout] | [INFO] [stdout] 148 | We now want to show that $E_=xyB[t]+P_$, which would then prove that $E[t]=xB[t]+P$. To do this, we must also compute the value... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:148:141 [INFO] [stdout] | [INFO] [stdout] 148 | ...o do this, we must also compute the value of $xyB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:149:26 [INFO] [stdout] | [INFO] [stdout] 149 | We first compute $B_[t]=yB_t$ and then $Q_[t]=xB_[t] = xyB[t]$. To prove the promotion is correct, we compute a a ZkPLMT pi_1 [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:149:48 [INFO] [stdout] | [INFO] [stdout] 149 | We first compute $B_[t]=yB_t$ and then $Q_[t]=xB_[t] = xyB[t]$. To prove the promotion is correct, we compute a a ZkPLMT pi_1 [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:149:55 [INFO] [stdout] | [INFO] [stdout] 149 | We first compute $B_[t]=yB_t$ and then $Q_[t]=xB_[t] = xyB[t]$. To prove the promotion is correct, we compute a a ZkPLMT pi_1 [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:149:64 [INFO] [stdout] | [INFO] [stdout] 149 | We first compute $B_[t]=yB_t$ and then $Q_[t]=xB_[t] = xyB[t]$. To prove the promotion is correct, we compute a a ZkPLMT pi_1 [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:36 [INFO] [stdout] | [INFO] [stdout] 150 | for the linear tuple $(G,Y),(E[t],E_[t]),(B_[t],yB[t])$. We also compute a ZkPLMT pi_2 to prove the linearity of the tuple (A[t... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:42 [INFO] [stdout] | [INFO] [stdout] 150 | for the linear tuple $(G,Y),(E[t],E_[t]),(B_[t],yB[t])$. We also compute a ZkPLMT pi_2 to prove the linearity of the tuple (A[t... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:50 [INFO] [stdout] | [INFO] [stdout] 150 | for the linear tuple $(G,Y),(E[t],E_[t]),(B_[t],yB[t])$. We also compute a ZkPLMT pi_2 to prove the linearity of the tuple (A[t... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:56 [INFO] [stdout] | [INFO] [stdout] 150 | for the linear tuple $(G,Y),(E[t],E_[t]),(B_[t],yB[t])$. We also compute a ZkPLMT pi_2 to prove the linearity of the tuple (A[t... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:131 [INFO] [stdout] | [INFO] [stdout] 150 | ...kPLMT pi_2 to prove the linearity of the tuple (A[t],X[t]),(B_[t],Q_[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:136 [INFO] [stdout] | [INFO] [stdout] 150 | ... pi_2 to prove the linearity of the tuple (A[t],X[t]),(B_[t],Q_[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:144 [INFO] [stdout] | [INFO] [stdout] 150 | ... prove the linearity of the tuple (A[t],X[t]),(B_[t],Q_[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:150 [INFO] [stdout] | [INFO] [stdout] 150 | ... the linearity of the tuple (A[t],X[t]),(B_[t],Q_[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:29 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:35 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:47 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:53 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:77 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:84 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:93 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:153:52 [INFO] [stdout] | [INFO] [stdout] 153 | Now, the verifier can simply check whether $E_[t]=Q_[t]+P_$ to know whether the encryption is correctly done. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:153:58 [INFO] [stdout] | [INFO] [stdout] 153 | Now, the verifier can simply check whether $E_[t]=Q_[t]+P_$ to know whether the encryption is correctly done. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.82s [INFO] [stderr] Generated /opt/rustwide/target/doc/zkplmt/index.html [INFO] running `Command { std: "docker" "inspect" "21034692c0e03d42afde10442a975aab802e912591f1c9398b62165854f050d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "21034692c0e03d42afde10442a975aab802e912591f1c9398b62165854f050d0", kill_on_drop: false }` [INFO] [stdout] 21034692c0e03d42afde10442a975aab802e912591f1c9398b62165854f050d0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "RUSTC_BOOTSTRAP=1" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+8afe9ff1caa97654c31fb8c259dac9fdf67d6302" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--document-private-items\"]" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 17a320f11bf9d2c6e930eadda817a8aa219ec56b32acc051d662e8cbf01673fe [INFO] running `Command { std: "docker" "start" "-a" "17a320f11bf9d2c6e930eadda817a8aa219ec56b32acc051d662e8cbf01673fe", kill_on_drop: false }` [INFO] [stderr] Documenting zkplmt v0.4.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:139:29 [INFO] [stdout] | [INFO] [stdout] 139 | Let an output TxO be (V[t],A[t],B[t]). Let the public key of the signer be $P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:139:34 [INFO] [stdout] | [INFO] [stdout] 139 | Let an output TxO be (V[t],A[t],B[t]). Let the public key of the signer be $P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:139:39 [INFO] [stdout] | [INFO] [stdout] 139 | Let an output TxO be (V[t],A[t],B[t]). Let the public key of the signer be $P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:140:94 [INFO] [stdout] | [INFO] [stdout] 140 | The public key is simply encrypted using the El-Gamal encryption with the public key $(A[t],B[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:140:99 [INFO] [stdout] | [INFO] [stdout] 140 | The public key is simply encrypted using the El-Gamal encryption with the public key $(A[t],B[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:141:99 [INFO] [stdout] | [INFO] [stdout] 141 | To do that, first a random $x$ is chosen from $𝔽q$, and then the encryption is computed as $E[t]=xB[t]+P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:141:105 [INFO] [stdout] | [INFO] [stdout] 141 | To do that, first a random $x$ is chosen from $𝔽q$, and then the encryption is computed as $E[t]=xB[t]+P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | Both $X[t]=xA[t]$ and $E[t]$ are stored in the transaction. The reciever knows the private key of the receiver (say $q[t]$); [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:142:19 [INFO] [stdout] | [INFO] [stdout] 142 | Both $X[t]=xA[t]$ and $E[t]$ are stored in the transaction. The reciever knows the private key of the receiver (say $q[t]$); [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:142:30 [INFO] [stdout] | [INFO] [stdout] 142 | Both $X[t]=xA[t]$ and $E[t]$ are stored in the transaction. The reciever knows the private key of the receiver (say $q[t]$); [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:142:124 [INFO] [stdout] | [INFO] [stdout] 142 | Both $X[t]=xA[t]$ and $E[t]$ are stored in the transaction. The reciever knows the private key of the receiver (say $q[t]$); [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:57 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:62 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:66 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:86 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:91 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:95 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:106 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:110 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:115 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:120 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:143:128 [INFO] [stdout] | [INFO] [stdout] 143 | so, the receiver can compute the value of $P$ as $E[t]-q[t]X[t]$. Notice that $B[t]=q[t]A[t]$, so $q[t]X[t]=q[t]xA[t] = xB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:144:19 [INFO] [stdout] | [INFO] [stdout] 144 | This means $E[t]-q[t]X[t] = xB[t]+P-xB[t]=P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:144:24 [INFO] [stdout] | [INFO] [stdout] 144 | This means $E[t]-q[t]X[t] = xB[t]+P-xB[t]=P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:144:28 [INFO] [stdout] | [INFO] [stdout] 144 | This means $E[t]-q[t]X[t] = xB[t]+P-xB[t]=P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:144:36 [INFO] [stdout] | [INFO] [stdout] 144 | This means $E[t]-q[t]X[t] = xB[t]+P-xB[t]=P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:144:44 [INFO] [stdout] | [INFO] [stdout] 144 | This means $E[t]-q[t]X[t] = xB[t]+P-xB[t]=P$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:146:64 [INFO] [stdout] | [INFO] [stdout] 146 | Now, the trick is to prove that $E$ indeed is equal to $xB[t]+P$ to the validators who don't know $q$ and must not be able to d... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:146:142 [INFO] [stdout] | [INFO] [stdout] 146 | ...don't know $q$ and must not be able to decrypt $E[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:147:112 [INFO] [stdout] | [INFO] [stdout] 147 | The trick is to 'promote' everything by some secret random $y$ and then check the sum. We compute $Y=yG,E_[t]=yE[t], P_=yP$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:147:118 [INFO] [stdout] | [INFO] [stdout] 147 | The trick is to 'promote' everything by some secret random $y$ and then check the sum. We compute $Y=yG,E_[t]=yE[t], P_=yP$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:148:38 [INFO] [stdout] | [INFO] [stdout] 148 | We now want to show that $E_=xyB[t]+P_$, which would then prove that $E[t]=xB[t]+P$. To do this, we must also compute the value... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:148:77 [INFO] [stdout] | [INFO] [stdout] 148 | We now want to show that $E_=xyB[t]+P_$, which would then prove that $E[t]=xB[t]+P$. To do this, we must also compute the value... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:148:83 [INFO] [stdout] | [INFO] [stdout] 148 | We now want to show that $E_=xyB[t]+P_$, which would then prove that $E[t]=xB[t]+P$. To do this, we must also compute the value... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:148:141 [INFO] [stdout] | [INFO] [stdout] 148 | ...o do this, we must also compute the value of $xyB[t]$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:149:26 [INFO] [stdout] | [INFO] [stdout] 149 | We first compute $B_[t]=yB_t$ and then $Q_[t]=xB_[t] = xyB[t]$. To prove the promotion is correct, we compute a a ZkPLMT pi_1 [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:149:48 [INFO] [stdout] | [INFO] [stdout] 149 | We first compute $B_[t]=yB_t$ and then $Q_[t]=xB_[t] = xyB[t]$. To prove the promotion is correct, we compute a a ZkPLMT pi_1 [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:149:55 [INFO] [stdout] | [INFO] [stdout] 149 | We first compute $B_[t]=yB_t$ and then $Q_[t]=xB_[t] = xyB[t]$. To prove the promotion is correct, we compute a a ZkPLMT pi_1 [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:149:64 [INFO] [stdout] | [INFO] [stdout] 149 | We first compute $B_[t]=yB_t$ and then $Q_[t]=xB_[t] = xyB[t]$. To prove the promotion is correct, we compute a a ZkPLMT pi_1 [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:36 [INFO] [stdout] | [INFO] [stdout] 150 | for the linear tuple $(G,Y),(E[t],E_[t]),(B_[t],yB[t])$. We also compute a ZkPLMT pi_2 to prove the linearity of the tuple (A[t... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:42 [INFO] [stdout] | [INFO] [stdout] 150 | for the linear tuple $(G,Y),(E[t],E_[t]),(B_[t],yB[t])$. We also compute a ZkPLMT pi_2 to prove the linearity of the tuple (A[t... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:50 [INFO] [stdout] | [INFO] [stdout] 150 | for the linear tuple $(G,Y),(E[t],E_[t]),(B_[t],yB[t])$. We also compute a ZkPLMT pi_2 to prove the linearity of the tuple (A[t... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:56 [INFO] [stdout] | [INFO] [stdout] 150 | for the linear tuple $(G,Y),(E[t],E_[t]),(B_[t],yB[t])$. We also compute a ZkPLMT pi_2 to prove the linearity of the tuple (A[t... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:131 [INFO] [stdout] | [INFO] [stdout] 150 | ...kPLMT pi_2 to prove the linearity of the tuple (A[t],X[t]),(B_[t],Q_[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:136 [INFO] [stdout] | [INFO] [stdout] 150 | ... pi_2 to prove the linearity of the tuple (A[t],X[t]),(B_[t],Q_[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:144 [INFO] [stdout] | [INFO] [stdout] 150 | ... prove the linearity of the tuple (A[t],X[t]),(B_[t],Q_[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:150:150 [INFO] [stdout] | [INFO] [stdout] 150 | ... the linearity of the tuple (A[t],X[t]),(B_[t],Q_[t])$. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:29 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:35 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:47 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:53 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:77 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:84 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:152:93 [INFO] [stdout] | [INFO] [stdout] 152 | $\pi_1$ proves that $B_[t]=yB[t]$ and $E_[t]=yE[t]$. $\pi_2$ proves $Q_[t]=xB_[t] = xyB[t]$. The main signature proves that $P_... [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:153:52 [INFO] [stdout] | [INFO] [stdout] 153 | Now, the verifier can simply check whether $E_[t]=Q_[t]+P_$ to know whether the encryption is correctly done. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unresolved link to `t` [INFO] [stdout] --> src/verifiable_encryption.rs:153:58 [INFO] [stdout] | [INFO] [stdout] 153 | Now, the verifier can simply check whether $E_[t]=Q_[t]+P_$ to know whether the encryption is correctly done. [INFO] [stdout] | ^ no item named `t` in scope [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.11s [INFO] [stderr] Generated /opt/rustwide/target/doc/zkplmt/index.html [INFO] running `Command { std: "docker" "inspect" "17a320f11bf9d2c6e930eadda817a8aa219ec56b32acc051d662e8cbf01673fe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "17a320f11bf9d2c6e930eadda817a8aa219ec56b32acc051d662e8cbf01673fe", kill_on_drop: false }` [INFO] [stdout] 17a320f11bf9d2c6e930eadda817a8aa219ec56b32acc051d662e8cbf01673fe