From 42f1035559a7a81c398f70d2bf57fe6cf070183a Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Thu, 15 Aug 2024 12:46:56 +0200 Subject: [PATCH] mpc: document commitment workflow --- commit_verify/doc/MPC.drawio | 433 +++++++++++++++++++++++++++++++++ commit_verify/doc/MPC.svg | 4 + commit_verify/src/mpc/block.rs | 6 +- 3 files changed, 442 insertions(+), 1 deletion(-) create mode 100644 commit_verify/doc/MPC.drawio create mode 100644 commit_verify/doc/MPC.svg diff --git a/commit_verify/doc/MPC.drawio b/commit_verify/doc/MPC.drawio new file mode 100644 index 00000000..6bf8eb11 --- /dev/null +++ b/commit_verify/doc/MPC.drawio @@ -0,0 +1,433 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/commit_verify/doc/MPC.svg b/commit_verify/doc/MPC.svg new file mode 100644 index 00000000..79d705d9 --- /dev/null +++ b/commit_verify/doc/MPC.svg @@ -0,0 +1,4 @@ + + + +
0x10
protocol_id
message
1
32
32
Leaf::Inhabited
SHA256t(urn:ubideco:merkle:node#2024-01-31)
0x11
Leaf::Entropy
entropy
pos
8
4
1
MerkleHash
hash
32
branching
depth
32
1
width
node1
node2
1
32
32
MerkleNode
NodeBranching
u8
MerkleNode
u256
MerkleNode
98 bytes:
13 bytes:
65 bytes:
ProtocolId
Message
u64
u32
tag
tag
VIRTUAL_LEAF = u256::MAX
32
NodeBranching
0x00: empty (two virtual leafs)
0x01: single (one virtual leaf)
0x02: branch
tag
Commitment
hash
32
depth
cofactor
merkle_root
1
2
32
MerkleConcealed
65 bytes:
u16
MerkleHash
u5
SHA256t(urn:ubideco:mpc:commitment#2024-01-31)
Leaf::Inhabited
MerkleNode
NodeBranching::Single
Leaf::entropy
MerkleNode
NodeBranching::Empty
Leaf::Inhabited
MerkleNode
NodeBranching::Branch
Leaf::entropy
Leaf::entropy
cofactor=3
width=8
(2^depth)
depth=3
\ No newline at end of file diff --git a/commit_verify/src/mpc/block.rs b/commit_verify/src/mpc/block.rs index e1888985..6a7cdfae 100644 --- a/commit_verify/src/mpc/block.rs +++ b/commit_verify/src/mpc/block.rs @@ -134,7 +134,11 @@ impl TreeNode { #[strict_type(lib = LIB_NAME_COMMIT_VERIFY)] #[derive(CommitEncode)] #[commit_encode(crate = crate, strategy = strict, id = Commitment)] -#[cfg_attr(feature = "serde", derive(Serialize, Deserialize), serde(crate = "serde_crate"))] +#[cfg_attr( + feature = "serde", + derive(Serialize, Deserialize), + serde(crate = "serde_crate", rename_all = "camelCase") +)] pub struct MerkleConcealed { /// Tree depth (up to 16). depth: u5,