@@ -35,9 +35,13 @@ To check your balance:
35
35
36
36
``` secretcli q compute query <contract-address> '{"balance": {"address":"<your_address>", "key":"your_viewing_key"}}' ```
37
37
38
+ To view your transfer history:
39
+
40
+ ``` secretcli q compute query <contract-address> '{"transfer_history": {"address": "<your_address>", "key": "<your_viewing_key>", "page": <optional_page_number>, "page_size": <number_of_transactions_to_return>, "should_filter_decoys":<should_filter_out_decoys_and_break_paging_or_not>}}' ```
41
+
38
42
To view your transaction history:
39
43
40
- ``` secretcli q compute query <contract-address> '{"transfer_history ": {"address": "<your_address>", "key": "<your_viewing_key>", "page": <optional_page_number>, "page_size": <number_of_transactions_to_return>}}' ```
44
+ ``` secretcli q compute query <contract-address> '{"transaction_history ": {"address": "<your_address>", "key": "<your_viewing_key>", "page": <optional_page_number>, "page_size": <number_of_transactions_to_return>, "should_filter_decoys":<should_filter_out_decoys_and_break_paging_or_not >}}' ```
41
45
42
46
To withdraw: *** (This is public)***
43
47
@@ -57,3 +61,37 @@ To view the deposit/redeem exchange rate:
57
61
All transactions are encrypted, so if you want to see the error returned by a failed transaction, you need to use the command
58
62
59
63
` secretcli q compute tx <TX_HASH> `
64
+
65
+ # SNIP 25 Security Update
66
+
67
+ ## Security Changes
68
+ 1 . Implemented the ability to have decoy addresses for every operation that access account's balance
69
+ 2 . Converted every add operation related to account's balance and total supply
70
+ 3 . Started using u128 instead of Uint128
71
+
72
+ ## Decoys
73
+ ### Transaction That Support Decoys
74
+ 1 . Redeem
75
+ 2 . Deposit
76
+ 3 . Transfer
77
+ 4 . TransferFrom
78
+ 5 . Send
79
+ 6 . SendFrom
80
+ 7 . Burn
81
+ 8 . BurnFrom
82
+ 9 . Mint
83
+ 10 . BatchTransfer - For every action (The strength of the decoys will be the minimal strength of all of the actions)
84
+ 11 . BatchSend - For every action (The strength of the decoys will be the minimal strength of all of the actions)
85
+ 12 . BatchTransferFrom - For every action (The strength of the decoys will be the minimal strength of all of the actions)
86
+ 13 . BatchSendFrom - For every action (The strength of the decoys will be the minimal strength of all of the actions)
87
+ 14 . BatchMint - For every action (The strength of the decoys will be the minimal strength of all of the actions)
88
+ 15 . BatchBurnFrom - For every action (The strength of the decoys will be the minimal strength of all of the actions)
89
+
90
+ ### Example
91
+ ``` secretcli tx compute execute <contract-address> '{"transfer":{"recipient":"<address>","amount":"<amount>", "entropy":"<base64_encoded_entropy>", "decoys":<[addresses_list]>}}' --from <account> ```
92
+
93
+ ## Future Work
94
+ | Topic | Immidiate-term solution | Medium-term solution | Long-term solution |
95
+ | --- | --- | --- | --- |
96
+ | Receiver privacy | Decoys - offer limited privacy, since it depends a lot on how you choose decoys. There’s probably no way to select decoys effectively enough, and thus it only makes it a bit harder but effectively doesn’t provide receiver privacy to a sophisticated long-term attacker | Some sort of bucketing? - still no clear path forward| ORAM? - still no clear path forward |
97
+ | Transfer amount privacy - subtractions (Transfer/Send/Burn) | None | None | Merkle proofs for storage reads - will make it very difficult to simulate transactions and play with storage. |
0 commit comments