working mint proof

This commit is contained in:
narodnik
2021-11-08 13:51:30 +01:00
parent 523a01ed0e
commit 441970b0a8
2 changed files with 7 additions and 20 deletions

View File

@@ -31,7 +31,7 @@ use halo2_gadgets::{
},
};
use pasta_curves::{
arithmetic::{CurveAffine, Field},
arithmetic::{CurveAffine, Field, FieldExt},
group::{
ff::{PrimeField, PrimeFieldBits},
Curve,
@@ -284,10 +284,10 @@ mod tx2 {
//}
for (i, output) in self.outputs.iter().enumerate() {
//if verify_mint_proof(mint_vk, &output.mint_proof, &output.revealed).is_err()
//{
// return Err(VerifyFailed::MintProof(i));
//}
if verify_mint_proof(mint_vk, &output.mint_proof, &output.revealed).is_err()
{
return Err(VerifyFailed::MintProof(i));
}
valcom_total -= &output.revealed.value_commit;
}
@@ -436,7 +436,7 @@ pub fn state_transition<S: ProgramState>(
fn main() -> std::result::Result<(), failure::Error> {
use drk::{
crypto::mint_proof::{create_mint_proof, verify_mint_proof},
types::{DrkSerial, DrkCoinBlind}
types::{DrkSerial, DrkCoinBlind, DrkCircuitField}
};
let cashier_secret = pallas::Base::random(&mut OsRng);
@@ -445,23 +445,10 @@ fn main() -> std::result::Result<(), failure::Error> {
let secret = pallas::Base::random(&mut OsRng);
let public = OrchardFixedBases::SpendAuthG.generator() * mod_r_p(secret);
let (proof, revealed) = create_mint_proof(
110,
pallas::Base::from(110),
pallas::Scalar::random(&mut OsRng),
pallas::Scalar::random(&mut OsRng),
DrkSerial::random(&mut OsRng),
DrkCoinBlind::random(&mut OsRng),
public.clone()
)?;
const K: u32 = 11;
let mint_vk = VerifyingKey::build(K, MintContract::default());
let spend_vk = VerifyingKey::build(K, SpendContract::default());
//verify_mint_proof(&mint_vk, &proof, &revealed)?;
//println!("DONE!");
let mut state = MemoryState { mint_vk, spend_vk };
let token_id = 110;

View File

@@ -62,7 +62,7 @@ impl MintRevealedValues {
fn make_outputs(&self) -> [DrkCircuitField; 5] {
let value_coords = self.value_commit.to_affine().coordinates().unwrap();
let token_coords = self.value_commit.to_affine().coordinates().unwrap();
let token_coords = self.token_commit.to_affine().coordinates().unwrap();
vec![
DrkCircuitField::from_bytes(&self.coin).unwrap(),