From 4547854db192a40c5fa6323716f54d7745b1b3a1 Mon Sep 17 00:00:00 2001 From: Mario Pastorelli Date: Tue, 28 Nov 2023 10:16:25 +0000 Subject: [PATCH] why --- standards/ICRC-3/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/standards/ICRC-3/README.md b/standards/ICRC-3/README.md index c33b1479..a833da50 100644 --- a/standards/ICRC-3/README.md +++ b/standards/ICRC-3/README.md @@ -33,7 +33,9 @@ The block log is a list of blocks where each block contains the hash of its pare The [candid](https://github.com/dfinity/candid) format supports sharing information even when the client and the server involved do not have the same schema (see the [Upgrading and subtyping](https://github.com/dfinity/candid/blob/master/spec/Candid.md#upgrading-and-subtyping) section of the candid spec). While this mechanism allows to evolve services and clients independently without breaking them, it also means that a client may not receive all the information that the server is sending, e.g. in case the client schema lacks some fields that the server schema has. -This loss of information is not an option for `ICRC-3`. The client must receive the same exact data the server sent. For this reason, `ICRC-3` introduces the `Value` type which never changes: +This loss of information is not an option for `ICRC-3`. The client must receive the same exact data the server sent in order to verify it. Verification is done by hashing the data and checking that the result is consistent with what has been certified by the server. + +For this reason, `ICRC-3` introduces the `Value` type which never changes: ``` type Value = variant {