Where is the encrypted mask value?How are outPk, mask and amount fields created when spending RignCT coinbase transactions?Error with transaction on the blockchainIs it possible to reset the blockchain with a new genesis block for efficiency?How does having a negative number in a Pedersen commitment, create money out of thin air?How would I exploit the fact that I knew the scalar used for H in the Pedersons Commitment w.r.t G?Why do we use different H values in a vector Pedersen Commitment?How is the used Pedersen commitment kept secret?How does the mixing work?What is the significance of monero switching the G and H points in a Pedersen commitment?Trying to understand how RCTTypeSimple works
Is there a way to make it so the cursor is included when I prtscr key?
How strong are Wi-Fi signals?
Would jet fuel for an F-16 or F-35 be producible during WW2?
Ticket sales for Queen at the Live Aid
I unknowingly submitted plagiarised work
What's the Difference between Two Single-Quotes and One Double-Quote?
Comment dirait-on « I was gonna say... » ?
How does an ARM MCU run faster than the external crystal?
Employer demanding to see degree after poor code review
How many chess players are over 2500 Elo?
How to convert to standalone document a matrix table
Can't remember the name of this game
Command to Search for Filenames Exceeding 143 Characters?
What are these arcade games in Ghostbusters 1984?
Why is desire the root of suffering?
Why do Russians call their women expensive ("дорогая")?
Is healing by fire possible?
Why doesn't the Earth's acceleration towards the Moon accumulate to push the Earth off its orbit?
How do I align equations in three columns, justified right, center and left?
Under what law can the U.S. arrest International Criminal Court (ICC) judges over war crimes probe?
Python program to convert a 24 hour format to 12 hour format
Is the first derivative operation on a signal a causal system?
What do different value notes on the same line mean?
What is the object moving across the ceiling in this stock footage?
Where is the encrypted mask value?
How are outPk, mask and amount fields created when spending RignCT coinbase transactions?Error with transaction on the blockchainIs it possible to reset the blockchain with a new genesis block for efficiency?How does having a negative number in a Pedersen commitment, create money out of thin air?How would I exploit the fact that I knew the scalar used for H in the Pedersons Commitment w.r.t G?Why do we use different H values in a vector Pedersen Commitment?How is the used Pedersen commitment kept secret?How does the mixing work?What is the significance of monero switching the G and H points in a Pedersen commitment?Trying to understand how RCTTypeSimple works
Checked this link: https://moneroblocks.info/api/get_transaction_data/4adb55cde1ffcc0ea639b6718355c48c0e574000306d95ef857e55d91ddabcf2
I could not find the encrypted mask value.
I believe the encrypted amount is in the ecdh part:
"ecdhInfo": [
"amount": "f350bbedb3a4a93b"
,
"amount": "c2005984b560da47"
,
"amount": "6a2a649c8322d6e1"
,
"amount": "0e0c6e72d16779c7"
],
ringct
add a comment |
Checked this link: https://moneroblocks.info/api/get_transaction_data/4adb55cde1ffcc0ea639b6718355c48c0e574000306d95ef857e55d91ddabcf2
I could not find the encrypted mask value.
I believe the encrypted amount is in the ecdh part:
"ecdhInfo": [
"amount": "f350bbedb3a4a93b"
,
"amount": "c2005984b560da47"
,
"amount": "6a2a649c8322d6e1"
,
"amount": "0e0c6e72d16779c7"
],
ringct
add a comment |
Checked this link: https://moneroblocks.info/api/get_transaction_data/4adb55cde1ffcc0ea639b6718355c48c0e574000306d95ef857e55d91ddabcf2
I could not find the encrypted mask value.
I believe the encrypted amount is in the ecdh part:
"ecdhInfo": [
"amount": "f350bbedb3a4a93b"
,
"amount": "c2005984b560da47"
,
"amount": "6a2a649c8322d6e1"
,
"amount": "0e0c6e72d16779c7"
],
ringct
Checked this link: https://moneroblocks.info/api/get_transaction_data/4adb55cde1ffcc0ea639b6718355c48c0e574000306d95ef857e55d91ddabcf2
I could not find the encrypted mask value.
I believe the encrypted amount is in the ecdh part:
"ecdhInfo": [
"amount": "f350bbedb3a4a93b"
,
"amount": "c2005984b560da47"
,
"amount": "6a2a649c8322d6e1"
,
"amount": "0e0c6e72d16779c7"
],
ringct
ringct
asked 8 hours ago
WeCanBeFriendsWeCanBeFriends
31017
31017
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
As of the March 2019 hard fork, commitment masks are deterministically derived from the per-output shared secret, and the amount is XOR encrypted using a key deterministically derived from the shared secret.
See the commit here: https://github.com/monero-project/monero/commit/7d375981584e5ddac4ea6ad8879e2211d465b79d
Therefore, to determine the commitment mask, calculate:
commitment mask = Hs("commitment_mask" || Hs(8aR||i)G))
to decrypt the amount, calculate:
amount = 8 byte encrypted amount XOR first 8 bytes of keccak("amount" || Hs(8aR||i)G)
TBC:a
is the public view key,i
is the index of the output in the transaction
– WeCanBeFriends
6 hours ago
a
is the private view key, not public.
– jtgrassie
5 hours ago
Oh right,8aR
is the public view key
– WeCanBeFriends
5 hours ago
8aR
is not "the public view key" either.R
is the tx public key (the shared part of the shared secret),a
is the receivers private view key andi
is the output index.
– jtgrassie
3 hours ago
Ahh thanks for the correction. I am now a bit confused as to why the G variable is there now. We could just send the scalar Hs("commitment_mask" || Hs(8aR||i)). Unless I'm missing something
– WeCanBeFriends
2 hours ago
|
show 1 more comment
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "656"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmonero.stackexchange.com%2fquestions%2f11272%2fwhere-is-the-encrypted-mask-value%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
As of the March 2019 hard fork, commitment masks are deterministically derived from the per-output shared secret, and the amount is XOR encrypted using a key deterministically derived from the shared secret.
See the commit here: https://github.com/monero-project/monero/commit/7d375981584e5ddac4ea6ad8879e2211d465b79d
Therefore, to determine the commitment mask, calculate:
commitment mask = Hs("commitment_mask" || Hs(8aR||i)G))
to decrypt the amount, calculate:
amount = 8 byte encrypted amount XOR first 8 bytes of keccak("amount" || Hs(8aR||i)G)
TBC:a
is the public view key,i
is the index of the output in the transaction
– WeCanBeFriends
6 hours ago
a
is the private view key, not public.
– jtgrassie
5 hours ago
Oh right,8aR
is the public view key
– WeCanBeFriends
5 hours ago
8aR
is not "the public view key" either.R
is the tx public key (the shared part of the shared secret),a
is the receivers private view key andi
is the output index.
– jtgrassie
3 hours ago
Ahh thanks for the correction. I am now a bit confused as to why the G variable is there now. We could just send the scalar Hs("commitment_mask" || Hs(8aR||i)). Unless I'm missing something
– WeCanBeFriends
2 hours ago
|
show 1 more comment
As of the March 2019 hard fork, commitment masks are deterministically derived from the per-output shared secret, and the amount is XOR encrypted using a key deterministically derived from the shared secret.
See the commit here: https://github.com/monero-project/monero/commit/7d375981584e5ddac4ea6ad8879e2211d465b79d
Therefore, to determine the commitment mask, calculate:
commitment mask = Hs("commitment_mask" || Hs(8aR||i)G))
to decrypt the amount, calculate:
amount = 8 byte encrypted amount XOR first 8 bytes of keccak("amount" || Hs(8aR||i)G)
TBC:a
is the public view key,i
is the index of the output in the transaction
– WeCanBeFriends
6 hours ago
a
is the private view key, not public.
– jtgrassie
5 hours ago
Oh right,8aR
is the public view key
– WeCanBeFriends
5 hours ago
8aR
is not "the public view key" either.R
is the tx public key (the shared part of the shared secret),a
is the receivers private view key andi
is the output index.
– jtgrassie
3 hours ago
Ahh thanks for the correction. I am now a bit confused as to why the G variable is there now. We could just send the scalar Hs("commitment_mask" || Hs(8aR||i)). Unless I'm missing something
– WeCanBeFriends
2 hours ago
|
show 1 more comment
As of the March 2019 hard fork, commitment masks are deterministically derived from the per-output shared secret, and the amount is XOR encrypted using a key deterministically derived from the shared secret.
See the commit here: https://github.com/monero-project/monero/commit/7d375981584e5ddac4ea6ad8879e2211d465b79d
Therefore, to determine the commitment mask, calculate:
commitment mask = Hs("commitment_mask" || Hs(8aR||i)G))
to decrypt the amount, calculate:
amount = 8 byte encrypted amount XOR first 8 bytes of keccak("amount" || Hs(8aR||i)G)
As of the March 2019 hard fork, commitment masks are deterministically derived from the per-output shared secret, and the amount is XOR encrypted using a key deterministically derived from the shared secret.
See the commit here: https://github.com/monero-project/monero/commit/7d375981584e5ddac4ea6ad8879e2211d465b79d
Therefore, to determine the commitment mask, calculate:
commitment mask = Hs("commitment_mask" || Hs(8aR||i)G))
to decrypt the amount, calculate:
amount = 8 byte encrypted amount XOR first 8 bytes of keccak("amount" || Hs(8aR||i)G)
answered 8 hours ago
knacccknaccc
6,908820
6,908820
TBC:a
is the public view key,i
is the index of the output in the transaction
– WeCanBeFriends
6 hours ago
a
is the private view key, not public.
– jtgrassie
5 hours ago
Oh right,8aR
is the public view key
– WeCanBeFriends
5 hours ago
8aR
is not "the public view key" either.R
is the tx public key (the shared part of the shared secret),a
is the receivers private view key andi
is the output index.
– jtgrassie
3 hours ago
Ahh thanks for the correction. I am now a bit confused as to why the G variable is there now. We could just send the scalar Hs("commitment_mask" || Hs(8aR||i)). Unless I'm missing something
– WeCanBeFriends
2 hours ago
|
show 1 more comment
TBC:a
is the public view key,i
is the index of the output in the transaction
– WeCanBeFriends
6 hours ago
a
is the private view key, not public.
– jtgrassie
5 hours ago
Oh right,8aR
is the public view key
– WeCanBeFriends
5 hours ago
8aR
is not "the public view key" either.R
is the tx public key (the shared part of the shared secret),a
is the receivers private view key andi
is the output index.
– jtgrassie
3 hours ago
Ahh thanks for the correction. I am now a bit confused as to why the G variable is there now. We could just send the scalar Hs("commitment_mask" || Hs(8aR||i)). Unless I'm missing something
– WeCanBeFriends
2 hours ago
TBC:
a
is the public view key, i
is the index of the output in the transaction– WeCanBeFriends
6 hours ago
TBC:
a
is the public view key, i
is the index of the output in the transaction– WeCanBeFriends
6 hours ago
a
is the private view key, not public.– jtgrassie
5 hours ago
a
is the private view key, not public.– jtgrassie
5 hours ago
Oh right,
8aR
is the public view key– WeCanBeFriends
5 hours ago
Oh right,
8aR
is the public view key– WeCanBeFriends
5 hours ago
8aR
is not "the public view key" either. R
is the tx public key (the shared part of the shared secret), a
is the receivers private view key and i
is the output index.– jtgrassie
3 hours ago
8aR
is not "the public view key" either. R
is the tx public key (the shared part of the shared secret), a
is the receivers private view key and i
is the output index.– jtgrassie
3 hours ago
Ahh thanks for the correction. I am now a bit confused as to why the G variable is there now. We could just send the scalar Hs("commitment_mask" || Hs(8aR||i)). Unless I'm missing something
– WeCanBeFriends
2 hours ago
Ahh thanks for the correction. I am now a bit confused as to why the G variable is there now. We could just send the scalar Hs("commitment_mask" || Hs(8aR||i)). Unless I'm missing something
– WeCanBeFriends
2 hours ago
|
show 1 more comment
Thanks for contributing an answer to Monero Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmonero.stackexchange.com%2fquestions%2f11272%2fwhere-is-the-encrypted-mask-value%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown