Transfer transaction ┌─┐ ║"│ └┬┘ ┌────────────┐ ┌──────────────┐ ┌─────────┐ ┌┼┐ │Owner 1 │ │Owner 2 │ │Auditor │ │ │ │ │ │ │ │ ┌────────────┐ ┌───────────────┐ ┌┴┐ │TransferView│ │AcceptCashView│ │AuditView│ │Fabric Peers│ │Fabric Orderers│ Alice └──────┬─────┘ └───────┬──────┘ └────┬────┘ └────────────┘ └───────────────┘ │ │ │ │ │ │ │ │ │ ╔════════════════════╗ │ │ ════════╪════════════════════╪═══════════════════════════════════════════════╪══════════════╣ Create transaction ╠══════════════════════╪════════════════════════════════════╪════════════════════════════════ │ │ │ ╚════════════════════╝ │ │ │ │ │ │ │ │ │transfer 100 TOK ┌┴┐ ┌┴┐ │ │ │ │to dan on Owner 2 │ │ │ │ │ │ │ │─────────────────> │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │┌┴┐ request recipient identity │┌┴┐ │ │ │ │ ││ │ ───────────────────────────────────────────>│ │ │ │ │ │ ││ │ ││ │ │ │ │ │ ││ │ ││ │ ────┐ │ │ │ │ ││ │ ││ │ │ create anonymous │ │ │ │ ││ │ ││ │ <───┘ (one-time-use) key │ │ │ │ ││ │ ││ │ │ │ │ │ ││ │ ││ │ │ │ │ │ ││ │ ││ │ ────┐ │ │ │ │ ││ │ ││ │ │ generate secret for │ │ │ │ ││ │ ││ │ <───┘ ZKP commitments │ │ │ │ ││ │ ││ │ │ │ │ │ │└┬┘ │└┬┘ │ │ │ │ │ │ public key, secret │ │ │ │ │ │ │ │ <─ ─ ────┐ ─ ─ ─ ─ ─ ─│ │ │ │ │ │ │ │ │ select input tokens │ │ │ │ │ │ │ │ <───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ────┐ │ │ │ │ │ │ │ │ │ create token transaction │ │ │ │ │ │ │ │ <───┘ (input, output, proofs, signature) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │┌┴┐ │ │ │ │ │ │ ││ │ share transaction │┌┴┐ │ │ │ │ ││ │ ───────────────────────────────────────────>│ │ │ │ │ │ ││ │ ││ │ │ │ │ │ ││ │ ││ │ ────┐ │ │ │ │ ││ │ ││ │ │ open commitments, │ │ │ │ ││ │ ││ │ <───┘ verify, sign, store │ │ │ │ ││ │ ││ │ Pending transaction │ │ │ │ ││ │ ││ │ │ │ │ │ │└┬┘ │└┬┘ │ │ │ │ │ │ signed response │ │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔══════════════════╗│ │ │ ════════╪═══════════════════╪═╪═════════════════════════════════════════════╪═╪══════════════╣ Get endorsements ╠╪══════════════════════╪════════════════════════════════════╪════════════════════════════════ │ │ │ │ │ ╚══════════════════╝│ │ │ │ │ │ │ │ │ │ │ │ │┌┴┐ request audit│ ┌┴┐ │ │ │ ││ │ ─────────────────────────────────────────────────────────────────────────────> │ │ │ │ │ ││ │ │ │ │ │ │ │ │ ││ │ │ │ │ │ ────┐ │ │ │ ││ │ │ │ │ │ │ validate │ │ │ ││ │ │ │ │ │ <───┘ │ │ │ ││ │ │ │ │ │ │ │ │ ││ │ signed response │ │ │ │ │ ││ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ │ ││ │ │ │ │ │ │ │ │ ││ │ request endorsement │ │ ┌┴┐ │ │ ││ │ ────────────────────────────────────────────────────────────────────────────────────────────────────> │ │ │ │ ││ │ │ │ │ │ │ │ │ │ ││ │ │ │ │ │ │ │ ────┐ │ │ ││ │ │ │ │ │ │ │ │ invoke tokenchaincode │ │ ││ │ │ │ │ │ │ │ <───┘ to validate transaction │ │ ││ │ │ │ │ │ │ │ │ │ │└┬┘ │ │ │ │ └┬┘ │ │ │ │ endorsed (signed) Fabric transaction │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔═══════════════════╧╗│ │ │ ════════╪═══════════════════╪═╪═════════════════════════════════════════════╪═╪═════════════╣ Commit transaction ╠╪═════════════════════╪════════════════════════════════════╪════════════════════════════════ │ │ │ │ │ ╚═══════════════════╤╝│ │ │ │ │ │ │ │ │ │ │ │ │ │┌┴┐ │ │ submit Fabric transaction│ │ ┌┴┐ │ ││ │ ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────> │ │ │ ││ │ │ │ │ │ │ │ │ │ ││ │ │ │ │ │ │ │ │ ────┐ │ ││ │ │ │ │ │ │ │ │ │ verify transaction, │ ││ │ │ │ │ │ │ │ │ <───┘ create block │ ││ │ │ │ │ │ │ │ │ │ ││ │ │ │ │ │ │ └┬┘ │ ││ │ │ │ │ │ │ broadcast new block │ │ ││ │ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ ││ │ │ │ │ │ │ │ │ ││ │ │ │ │ │ │ │ │ ││ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ ││ │ │ │ │ │ │ │ │ ││ │ ────┐ │ │ │ │ │ │ │ ││ │ │ commit │ │ │ │ │ │ │ ││ │ <───┘ └┬┘ │ │ │ │ │ └└┬┘ │ │ │ │ │ │ OK │ │ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ └┬┘ │ │ │ │ │ │ │ │ │ │ │────┐ │ │ │ │ │ │ │ commit │ │ │ │ │ │<───┘ │ │ │ │ │ │ │ │ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │────┐ │ │ │ │ │ │ │ commit │ │ Alice ┌──────┴─────┐ ┌───────┴──────┐ ┌────┴<───┘ ┌────────────┐ ┌───────────────┐ ┌─┐ │Owner 1 │ │Owner 2 │ │Auditor │ │Fabric Peers│ │Fabric Orderers│ ║"│ │ │ │ │ │ │ └────────────┘ └───────────────┘ └┬┘ │TransferView│ │AcceptCashView│ │AuditView│ ┌┼┐ └────────────┘ └──────────────┘ └─────────┘ │ ┌┴┐