lsd0009

LSD0009: The GNU Taler Protocol
Log | Files | Refs | README

commit 0d490e46b9c35d850e7aef76bbbbcfd10cc99976
parent 1d77ece1388a859b39cde44ace057e9024723238
Author: Mikolai Gütschow <mikolai.guetschow@tu-dresden.de>
Date:   Tue,  7 Apr 2026 16:51:24 +0200

protocol: minor fixups

Diffstat:
Mdraft-guetschow-taler-protocol.md | 6++----
Mdraft-guetschow-taler-protocol.xml | 358+++++++++++++++++++++++++++++++++++++++----------------------------------------
2 files changed, 180 insertions(+), 184 deletions(-)

diff --git a/draft-guetschow-taler-protocol.md b/draft-guetschow-taler-protocol.md @@ -601,6 +601,7 @@ msg = Sign-Msg(MERCHANT_CONTRACT, h_contract) check EdDSA-Verify(merchant.pub, msg, sig) check contract.nonce == nonce // TODO: double-check extra hash check? +// todo: maybe get rid of CoinSelection altogether by claiming we already know coinᵢ and contributionᵢ ⟨selectionᵢ⟩ = CoinSelection(contract.{exchange,price}) TODO: include MarkDirty here for i in 0..n: (coinᵢ, denomᵢ, contributionᵢ) = selectionᵢ @@ -772,8 +773,6 @@ where (for RSA, without age-restriction) // todo: document ECDH-EdDSA(priv, pub) (returns hash512) -// todo: double-check incompatibility between h_denom and hash of denom used below - {::comment} // see TALER_EXCHANGE_get_melt_data ⟨batch_seedₖ⟩ // see TALER_refresh_expand_seed_to_kappa_batch_seeds @@ -890,7 +889,6 @@ for k in 0..kappa and k != ɣ: (E2) commitment validation (exchange) (ɣ, ⟨blind_sigᵢ⟩, h_planchetsᵧ) = lookup refresh-record(commitment) -// verify_commitment, for k != ɣ for k in 0..kappa and k != ɣ: ⟨transferₖᵢ.priv⟩ = HKDF("refresh-transfer-private-keys", batch_seedₖ, "", n*32) for i in 0..n: @@ -903,7 +901,7 @@ for k in 0..kappa and k != ɣ: planchetₖᵢ = RSA-FDH-Blind(SHA-512(coinₖᵢ.pub), blind_secretₖᵢ, denomᵢ.pub) h_planchetₖᵢ = SHA-512( SHA-512( denomᵢ.pub ) | uint32(0x1) | planchetₖᵢ ) h_planchetsₖ = SHA-512( ⟨h_planchetₖᵢ⟩ ) -value = coin.denom.fee_refresh + sum( denomᵢ.value ) + sum( denomᵢ.fee_withdraw ) +value = coin.denom.fee_refresh + sum( ⟨denomᵢ.value⟩ ) + sum( ⟨denomᵢ.fee_withdraw⟩ ) commitment' = SHA-512( refresh_seed | uint256(0x0) | coin.pub | value | SHA-512( ⟨h_planchetsₖ⟩ ) ) check commitment == commitment' diff --git a/draft-guetschow-taler-protocol.xml b/draft-guetschow-taler-protocol.xml @@ -573,6 +573,7 @@ msg = Sign-Msg(MERCHANT_CONTRACT, h_contract) check EdDSA-Verify(merchant.pub, msg, sig) check contract.nonce == nonce // TODO: double-check extra hash check? +// todo: maybe get rid of CoinSelection altogether by claiming we already know coinᵢ and contributionᵢ ⟨selectionᵢ⟩ = CoinSelection(contract.{exchange,price}) TODO: include MarkDirty here for i in 0..n: (coinᵢ, denomᵢ, contributionᵢ) = selectionᵢ @@ -729,7 +730,6 @@ knows coin | ]]></artwork> <t>where (for RSA, without age-restriction)</t> <t>// todo: document ECDH-EdDSA(priv, pub) (returns hash512)</t> - <t>// todo: double-check incompatibility between h_denom and hash of denom used below</t> <artwork><![CDATA[ (W1) coin melting (wallet) @@ -809,7 +809,6 @@ for k in 0..kappa and k != ɣ: (E2) commitment validation (exchange) (ɣ, ⟨blind_sigᵢ⟩, h_planchetsᵧ) = lookup refresh-record(commitment) -// verify_commitment, for k != ɣ for k in 0..kappa and k != ɣ: ⟨transferₖᵢ.priv⟩ = HKDF("refresh-transfer-private-keys", batch_seedₖ, "", n*32) for i in 0..n: @@ -822,7 +821,7 @@ for k in 0..kappa and k != ɣ: planchetₖᵢ = RSA-FDH-Blind(SHA-512(coinₖᵢ.pub), blind_secretₖᵢ, denomᵢ.pub) h_planchetₖᵢ = SHA-512( SHA-512( denomᵢ.pub ) | uint32(0x1) | planchetₖᵢ ) h_planchetsₖ = SHA-512( ⟨h_planchetₖᵢ⟩ ) -value = coin.denom.fee_refresh + sum( denomᵢ.value ) + sum( denomᵢ.fee_withdraw ) +value = coin.denom.fee_refresh + sum( ⟨denomᵢ.value⟩ ) + sum( ⟨denomᵢ.fee_withdraw⟩ ) commitment' = SHA-512( refresh_seed | uint256(0x0) | coin.pub | value | SHA-512( ⟨h_planchetsₖ⟩ ) ) check commitment == commitment' @@ -943,7 +942,7 @@ for i in 0..n: <refcontent>National Institute of Standards and Technology (U.S.)</refcontent> </reference> </references> - <?line 956?> + <?line 954?> <section anchor="change-log"> <name>Change log</name> @@ -956,182 +955,181 @@ Education and Research (BMBF) within the project Concrete Contracts.</t> </section> </back> <!-- ##markdown-source: -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 -t9oM5gRzgRkZUHpvzNnu84OT7tHur7p7Lw6PT8VaLCKer9bZniDm3qlDOyZE -SdEYELRFEEVkxyyGSXjAjSmhuffoVMiyWa+UArLyo2hpkViyInsWN5uDbmBm -AU1KZVNQmzU/761vnGWfb5a0fM/s15s1zUAMTaVmIHkXo3CTMT99nuUbxoDM -7rvhOQTFbpgM0aIZz36oGNNOsv5vwRm31dwbEKqqeKUtS+63i2013HI6Ot+s -2c17ZS2ZXZiQitc+LzYV+K0QmMViI4R0q0bW0pRO2qGj0uIqRG4y5qfPs3yj -OBprKtvIig+qhBQ+RW6C/QzBGaYJpa21O8C2Gm4lHdcXU/tgU7LST5LMxfDc -DfOQ8LNjVIHjXMvvDf7Z806/VmTlTdixYFqLzaluiUqyLSmbhUv14tbGLN9Y -1SJvSdGgSGps9MQnp7t18tMYVUJ8CtE3rhCKnFL46GWOyhZOGyAVQIcdePun -u84zPgM4u2aVzaMyjfnyiXT8HlWlEhWcmUZG1N0SiHNoM6pYmqaAz1Wh0MTF -MF5V6DBaMUIyHbjUrTQacYigYpk75SVUCmwxuIPQm3YHIxWCGWZ27jkNC7AY -zE900u5xyLcCmetSClxAwsf9rFgMwFwPQm9aDHLDGYsIAaxwyMrDxB+NKQiU -EajICvRouIyqtrcEMzOykwpB4zWRcBTUmNDG9k5MHim0O/jV3tPd4ycHXcgT -0q6iU5fyrCYkqYAZ7xIb6hAVZv2Ay7SaaCbY5UDsDDI0jaO+24dhqkmDgqbF -aJUryYVJ0FHOC6vsYgPr1oOdXJ4KMBbKso8zbDUatE8LR4KH3ANToVaIZYLk -1+rF1nW2IQ445CLjYHvH0/uUNuq07YIVKC66Nkd6s73VfitHVyFmGaS9vVUA -yfpaaZ7w9GXWt83WOOa4q2JWY5ednEzLyPw28ToPb7M+NlauS7Quriqpvgxc -cJW8OMX6XJfjbrFT1U1+YbZgBoatS8LRbA4cVc4V65Rg5fPpgo2vY8huwKPZ -tzA97zBdA3i9+/z5wVn35OD04OSXB93Xh2dP9092X9fJTtqYt9qFwJ8MECYL -iMvcU8jftE4QkCVsrJ4coVhESc8R94O2LluFKc99q9XkkofgOi0F6XADeC6K -GcJAkuosd922yohAc9aiH4ysaT6vOYas7eOl8zyKzrOpnXeLFBEGQcNidiXU -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 -vUga1v8DGlTYQrZ8AAA= +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 -->