{"action":"created","issue":{"url":"https://api.github.com/repos/rgb-org/spec/issues/59","repository_url":"https://api.github.com/repos/rgb-org/spec","labels_url":"https://api.github.com/repos/rgb-org/spec/issues/59/labels{/name}","comments_url":"https://api.github.com/repos/rgb-org/spec/issues/59/comments","events_url":"https://api.github.com/repos/rgb-org/spec/issues/59/events","html_url":"https://github.com/rgb-org/spec/pull/59","id":347602674,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2MTgzOTcx","number":59,"title":"Obfuscate UTXO-Based outputs inside transfer proofs","user":{"login":"the9ull","id":1118740,"node_id":"MDQ6VXNlcjExMTg3NDA=","avatar_url":"https://avatars3.githubusercontent.com/u/1118740?v=4","gravatar_id":"","url":"https://api.github.com/users/the9ull","html_url":"https://github.com/the9ull","followers_url":"https://api.github.com/users/the9ull/followers","following_url":"https://api.github.com/users/the9ull/following{/other_user}","gists_url":"https://api.github.com/users/the9ull/gists{/gist_id}","starred_url":"https://api.github.com/users/the9ull/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/the9ull/subscriptions","organizations_url":"https://api.github.com/users/the9ull/orgs","repos_url":"https://api.github.com/users/the9ull/repos","events_url":"https://api.github.com/users/the9ull/events{/privacy}","received_events_url":"https://api.github.com/users/the9ull/received_events","type":"User","site_admin":false},"labels":[{"id":921987317,"node_id":"MDU6TGFiZWw5MjE5ODczMTc=","url":"https://api.github.com/repos/rgb-org/spec/labels/01-rgb","name":"01-rgb","color":"f9ce61","default":false},{"id":655518365,"node_id":"MDU6TGFiZWw2NTU1MTgzNjU=","url":"https://api.github.com/repos/rgb-org/spec/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2018-08-04T09:05:18Z","updated_at":"2018-09-13T16:18:41Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/rgb-org/spec/pulls/59","html_url":"https://github.com/rgb-org/spec/pull/59","diff_url":"https://github.com/rgb-org/spec/pull/59.diff","patch_url":"https://github.com/rgb-org/spec/pull/59.patch"},"body":"The UTXO serialization protects the privacy of the payee since the payer (and others if/when the proof is published) does not know the receiving utxos, because they are hashed.\r\n\r\nBy the way it is easy and cheap to discover hidden utxos. It is possible to build a rainbow table that maps serialized utxos to plain utxos. The cost is O(blockchain size). It is possible to keep a synchronized rainbow table to resolve all the RgbOutPoint in constant time.\r\n\r\nTo prevent this behaviour we can add a key to the serialized data to build RgbOutPoints:\r\n  HMAC_SHA256(KEY, TX_HASH || OUTPUT_INDEX_AS_U32)\r\n\r\nRgbOptPoints are hashed as before but they require keys in order to be decoded. The keys will be included into spending transactions.\r\n\r\nWithout the key an RgbOptPoint will not provide any information about the receiving UTXO."},"comment":{"url":"https://api.github.com/repos/rgb-org/spec/issues/comments/421065772","html_url":"https://github.com/rgb-org/spec/pull/59#issuecomment-421065772","issue_url":"https://api.github.com/repos/rgb-org/spec/issues/59","id":421065772,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMTA2NTc3Mg==","user":{"login":"StefanoPellegrini","id":34380006,"node_id":"MDQ6VXNlcjM0MzgwMDA2","avatar_url":"https://avatars1.githubusercontent.com/u/34380006?v=4","gravatar_id":"","url":"https://api.github.com/users/StefanoPellegrini","html_url":"https://github.com/StefanoPellegrini","followers_url":"https://api.github.com/users/StefanoPellegrini/followers","following_url":"https://api.github.com/users/StefanoPellegrini/following{/other_user}","gists_url":"https://api.github.com/users/StefanoPellegrini/gists{/gist_id}","starred_url":"https://api.github.com/users/StefanoPellegrini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StefanoPellegrini/subscriptions","organizations_url":"https://api.github.com/users/StefanoPellegrini/orgs","repos_url":"https://api.github.com/users/StefanoPellegrini/repos","events_url":"https://api.github.com/users/StefanoPellegrini/events{/privacy}","received_events_url":"https://api.github.com/users/StefanoPellegrini/received_events","type":"User","site_admin":false},"created_at":"2018-09-13T16:18:41Z","updated_at":"2018-09-13T16:18:41Z","author_association":"NONE","body":"I am sorry for entering this discussion which I didn't completely understand.\r\nMy feeling is, for what I know about elliptic curves, that the strength of such a construction deeply depends on the elliptic curve used, but there should be at least one that suits your purpose.\r\nElliptic curves are of so much interest for making inverse calculations hard and since the operation involved in your construction are not that strange there should be an elliptic curve that behaves the way you want, obviously if the set of possible values for S is large enough.\r\nOn the other hand I know nothing about rainbow tables so I could be completely wrong."}}
{"actor":{"display_login":"StefanoPellegrini"}}