Skip to content

Instantly share code, notes, and snippets.

ebfull

Block or report user

Report or block ebfull

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View sapling-mpc-verification.md

How do I verify the Sapling MPC?

What you'll need

  1. Install the Rust compiler. A version from a year ago will work but the recent one is fine too.
  2. Download the transcript from the Powers of Tau MPC. (See the links here.)
  3. Download the params file from the Sapling MPC.
  4. Check out the attestations for the Powers of Tau MPC. (Similar can be found for the Sapling MPC but participants chose various ways to distribute their attestations, they have not been coalesced into a single repository.)

Step 1: Verify Powers of Tau

View mpclog.txt
(INFO) [T+0h0m0s]: Opening TCP listener on 0.0.0.0:65530
(INFO) [T+0h0m0s]: Loading R1CS from disk and performing QAP reduction...
(INFO) [T+0h0m0s]: Accepted new connection (peerid=99b7ca5f21fbdf3d)
(INFO) [T+0h0m0s]: Accepted new connection (peerid=a6f95c77f82e54ad)
(INFO) [T+0h0m1s]: Accepted new connection (peerid=7ec2499a394d6764)
(INFO) [T+0h0m1s]: Accepted new connection (peerid=4011ea01e2300ff0)
(INFO) [T+0h0m1s]: Accepted new connection (peerid=61fadcd34bdbee7d)
(INFO) [T+0h0m2s]: Accepted new connection (peerid=5dfb6c04584ca622)
(INFO) [T+0h0m7s]: Creating transcript file...
(INFO) [T+0h0m7s]: Waiting for players to connect...
View lousy_test.diff
diff --git a/src/gtest/test_proofs.cpp b/src/gtest/test_proofs.cpp
index 49202f1f6..0d678a414 100644
--- a/src/gtest/test_proofs.cpp
+++ b/src/gtest/test_proofs.cpp
@@ -3,6 +3,7 @@
#include <iostream>
+#include "algebra/knowledge_commitment/knowledge_commitment.hpp"
#include "libsnark/common/default_types/r1cs_ppzksnark_pp.hpp"
View equihash_verifier.rs
extern crate typenum;
extern crate generic_array;
use typenum::marker_traits::*;
use typenum::operator_aliases::*;
use typenum::type_operators::*;
use typenum::consts::*;
use generic_array::GenericArray;
use generic_array::ArrayLength;
View HTLC_BIP.mediawiki


  BIP&#58; 172
  Layer&#58; Applications
  Title&#58; Hashed Time&#45;Locked Contract transactions
  Author&#58; Sean Bowe <sean@z.cash>
          Daira Hopwood <daira@z.cash>
  Comments&#45;Summary&#58; No comments yet.
  Comments&#45;URI&#58; https&#58;//github.com/bitcoin/bips/wiki/Comments&#58;BIP&#45;0172
  Created&#58; 2017&#45;03&#45;27
  License&#58; BSD&#45;3&#45;Clause

View better.rs
use std::rc::Rc;
trait Art<T, A: Adapton> {}
struct Location;
impl<T, A: Adapton> Art<T, A> for Location { }
trait Adapton {
fn put<T>(obj: T) -> Rc<Art<T, Self>>;
View gist:144f3aadfb154db96ca9
task '<main>' failed at 'called `Option::unwrap()` on a `None` value', /home/me/build/rust/src/libcore/option.rs:265
You can’t perform that action at this time.