lsd0009

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

commit f1c039566d980a155d14854e17f3b39eaa7847c1
parent 2afd4c128bf151552b23b14c9f7ee2b0cb260385
Author: Mikolai Gütschow <mikolai.guetschow@tu-dresden.de>
Date:   Mon, 30 Jun 2025 10:43:10 +0200

-update xml

Diffstat:
Mdraft-guetschow-taler-protocol.xml | 238++++++++++++++++++++++++++++++++++++++++---------------------------------------
1 file changed, 122 insertions(+), 116 deletions(-)

diff --git a/draft-guetschow-taler-protocol.xml b/draft-guetschow-taler-protocol.xml @@ -29,7 +29,7 @@ </address> </author> - <date year="2025" month="June" day="13"/> + <date year="2025" month="June" day="30"/> <workgroup>independent</workgroup> @@ -481,7 +481,7 @@ nonce = EdDSA-Keygen() | persist nonce.priv | | | |------- /orders/{order.id}/claim ------>| - | (nonce, token?) | + | (nonce.pub, token?) | | | | h_wire = HKDF(wire_salt, payto, | "merchant-wire-signature", 64) @@ -516,8 +516,6 @@ persist (contract, sig, *deposit) | check EdDSA-Verify(merchant.pub, msg2, sig2) | ]]></artwork></figure> -<t>TODO: discuss - nonce doesn't strictly need to be EdDSA keypair?</t> - <t>where <spanx style="verb">msg0</spanx>, <spanx style="verb">*msg1</spanx>, and <spanx style="verb">msg2</spanx> are formed as follows:</t> <figure><artwork><![CDATA[ @@ -537,6 +535,11 @@ msg2 = bigEndian(32, 72) | bigEndian(32, 1104) /* TALER_SIGNATURE_MERCHANT_PAYME <t>(without age restriction, policy and wallet data hash)</t> +<t>Note that the private key of <spanx style="verb">nonce</spanx> is currently not used anywhere in the protocol. +However, it could be used in the future to prove ownership of an order transaction, +enabling use-cases such as "unclaiming" or transferring an order to another person, +or proving the payment without resorting to the individual coins.</t> + </section> <section anchor="deposit"><name>Deposit</name> @@ -689,7 +692,7 @@ msg3 = bigEndian(32, 344) | bigEndian(32, 1033) /* TALER_SIGNATURE_EXCHANGE_CONF -<?line 559?> +<?line 562?> <section anchor="change-log"><name>Change log</name> @@ -707,122 +710,125 @@ Education and Research (BMBF) within the project Concrete Contracts.</t> </back> <!-- ##markdown-source: -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 -V/LmcYRXpXBPeE4j8A1JJmlZ/weR36loJUgAAA== +GLIXa3hY6XO/171oMvzW6/YvwJ0ph5XncW9F+iEbFdOVgdhYAoLTa5IaYFOA +T4QDCkAqTLUs1u8f5AXyry/1ZiLGWi9VpZ7+9f5irwqHxZ4ck22Vda0D987N +OwR4/T2NfkLSdgPJ06U6C1A1R6f74ulBWN62Bcn6HrWBXaEP99PoSoSvm8VK +31ImVQfyMM1soqD1BdaXK96Vq8pvCdNhhP7uqTV3uTQjDNI1rbjm11NbHcjL +EeJPsvFF8sn37jbcgPsz9khVgj+22gDmx5K5P7u2mF6i+mjnlKuSspPmV1Kw +pm3VQYxO3rNTjmtVpPntAdmiSvls3oSANM7A9XqCe+CDhdJ//evqpUAUymtg +22UNlwZG9qWU/etYUPgbyeBmaQdfhfDhXT+1ptKbb9Em8XYmbfbJzGtpE6bP +J/s2jWblicvdCCMoqHbED6pWcnKbko7vVa3UFM7lkCg3Jdds1M2sF8bDa56f +7J1A1hdBriQciYaOqOXZOQ28rp+pq5riLYtthnnfmQjkbWs7p+dLbgVkVhA3 +5LKQ5gaZJ9gxj6/2fEheGZZD1jrssGNKd72U4awDGzr1rSYoROZR4qMtS/Ja +X5BxWJipBsldQTBxUiIqtW8N2TaZxnhfNPpJgQSccK5mDwYS/LHvJfpnBBKp +RKosJDJaZRXJlYJUYfUmh0S7JzHaeoNPcRjdxxxG90c5DClWIqE6+sMdRpcU +uVtxGEvNhyYbkl0N5UsRONiV5cx9LYnpZSly5i0RDj4Hb/X97exkkNtSA+qF +2g7GL92aBkan3altYBzvn+4e7gzOL3dPBuenO7vnpdZFQYxF21haaRPb/DW9 +kvqlVK9k9+RocLm3/+Hk7KhYzFjtoa6E8ex5p+hL5Cagcq7fzVb08uxzSBkK +b5onEI37YSpZQg1Fqn2zrm3T7EJW7Ktm3jIsQBkVXO32UQ+6q+rB5sN68GHn +H8f78Hnyrl4TZC1bKmFZqYSFxDYKfHchz3RVNwjPvTHwNczXUoRxGQav0VFk +lSf29EId9nWwDS1fswsX0rTUEa5+37tlHUY32L+hC8JulAVefvVPgY4zuqeQ +RnSZWOAbshAJpv6cznJDVQTSqZ4KYpYIOfYgJojHcTm+bJBk7hQNdi0LqQKB +p2vYKNengbHqPils2ENSHSRYDHHiJSu8zEz3C4V+UzzvBgAb1aVUdXKNrZNr +38voerKPJ+fYH1DO2ugPaA3ZWKVHUDkKzl9TfKQ/UMAV/YFVewvFgYiaKMsf +ViqI0J02y3omAYvEIc9CqEuouyRV7/3w1kuADx7zbox46k4dveJjx2ClnKyo +Q4wKollxHXc1hBd7bzIz4Eje3Ec409zUHCr3LB7c8tcz6z7I+rO0PGX5IYdq +CvnTT9QqAeM7F+n5z3eq1hUXjLzE4KvOTToqBX8q5nvOY6prNL6VIQbC6unO +02hG8eOdswT/XgdedVt1ui5MtO7EAm8uYas4vnIQ2xOKZiDFywJ8o7x0NWTl +6dqtXuaeg0rMG/tJWXjPzMINX01K0fv+WTit26zbwA/KwsuRSm6KNL33cBbe +e+wIsLeUOPU2N2syp3avV5s57f8HJk5v9zGDPjg6PV7KbSup7XKiWpfRqZlm +JrrM6wey1boW1hNT23sPJs0KlDl1We7SWWU+T3YIzMRW3YjEl8qzGP8szS7e +E/XUa8uJ+sspe/SXU56xo53BzhLEIArxxWRUzRGn25BsV94aDKIJ/rbjYuQI +hDeRf6LnS1/eshPe9tqYB4lYuzPWoUNG+sscN/T2Kr01JNNKuvenLifKv2bD +DoRHf0rlmF7CijGltfa9TL1IhtHqVCSCw5aZ/eb4zYF8ebDIZvGiGO4JT6kE +fiHJQNb3f2muy5AjSQAA -->