Currently, we're putting the transparent coin amount, fee, height/lock_height, and so on in the slate, and fully rely / depend on the communication channel to manage / provide the privacy, such as via the Https / Keybase for encrypted communication channel, or via the Http / File which can't provide privacy.
This is a quite reasonable/good design, to provide multiple methods on low level, and the developers / users MUST know what they're doing.
For example, in a safe private network, using Http for internal wallet transaction could not be a bad design.
But I indeed have a little worry that actually we should do a little bit more here to protect our privacy reputation, since privacy is the brand of Mimblewimble protocol.
And a possible worse situation is some people (especially those without much IT knowledge background) could simply use the Http for grin wallet send, since it's much simple than the Https setup. For example, someone send some grin coins to a friend from a company network, and the network admin come to warn him/her don't play crypto in the office and even says "wow you're so rich~ you sent 1 million grin coins! how much coins do you have?" then that someone will be shocked and faint 😸 he/she could have expected privacy cryptocurrency
must 100% privacy! in any situation! then the Grin privacy reputation will turn into dusky among persons in the street, by such kind of misuse.
{
"num_participants":2,
"id":"37453d70-85c7-432b-b880-f909b06f4e82”,\
"tx":{...
"kernels":[\
{ "features":{"bits":0},\
"fee":8000000,\
"lock_height":89165,\
"excess":[...],\
"excess_sig":[...]\
}]\
}\
}
"amount":1000000000,\
"fee":8000000,\
"height":89165,\
"lock_height":89165,\
"participant_data":[\
{ "id":0,\
"public_blind_excess":[3,241,235,206,70,87,156,16,145,214,145,129,220,233,235,214,243,246,31,66,78,99,34,30,19,216,32,14,202,178,4,205,100],\
"public_nonce":[2,246,65,150,75,199,223,145,67,54,165,74,244,234,7,129,57,5,9,40,193,125,54,141,50,146,148,177,153,106,214,150,140],\
"part_sig":null,\
"message":null,\
"message_sig":null\
}\
]\
}
So, I propose we do a global transaction data encryption as the grin wallet default implementation, at our low level, and never rely on the communication channel to provide this.
Before go inside the detail design of this (should be easy to implement and can be completed in one/two days), I would like to hear from you if this is really matter and needed.