{"action":"opened","issue":{"url":"https://api.github.com/repos/zkSNACKs/WalletWasabi/issues/145","repository_url":"https://api.github.com/repos/zkSNACKs/WalletWasabi","labels_url":"https://api.github.com/repos/zkSNACKs/WalletWasabi/issues/145/labels{/name}","comments_url":"https://api.github.com/repos/zkSNACKs/WalletWasabi/issues/145/comments","events_url":"https://api.github.com/repos/zkSNACKs/WalletWasabi/issues/145/events","html_url":"https://github.com/zkSNACKs/WalletWasabi/issues/145","id":312736332,"number":145,"title":"Which transaction spends a given output?","user":{"login":"nopara73","id":9156103,"avatar_url":"https://avatars0.githubusercontent.com/u/9156103?v=4","gravatar_id":"","url":"https://api.github.com/users/nopara73","html_url":"https://github.com/nopara73","followers_url":"https://api.github.com/users/nopara73/followers","following_url":"https://api.github.com/users/nopara73/following{/other_user}","gists_url":"https://api.github.com/users/nopara73/gists{/gist_id}","starred_url":"https://api.github.com/users/nopara73/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nopara73/subscriptions","organizations_url":"https://api.github.com/users/nopara73/orgs","repos_url":"https://api.github.com/users/nopara73/repos","events_url":"https://api.github.com/users/nopara73/events{/privacy}","received_events_url":"https://api.github.com/users/nopara73/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"lontivero","id":127973,"avatar_url":"https://avatars1.githubusercontent.com/u/127973?v=4","gravatar_id":"","url":"https://api.github.com/users/lontivero","html_url":"https://github.com/lontivero","followers_url":"https://api.github.com/users/lontivero/followers","following_url":"https://api.github.com/users/lontivero/following{/other_user}","gists_url":"https://api.github.com/users/lontivero/gists{/gist_id}","starred_url":"https://api.github.com/users/lontivero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lontivero/subscriptions","organizations_url":"https://api.github.com/users/lontivero/orgs","repos_url":"https://api.github.com/users/lontivero/repos","events_url":"https://api.github.com/users/lontivero/events{/privacy}","received_events_url":"https://api.github.com/users/lontivero/received_events","type":"User","site_admin":false},"assignees":[{"login":"lontivero","id":127973,"avatar_url":"https://avatars1.githubusercontent.com/u/127973?v=4","gravatar_id":"","url":"https://api.github.com/users/lontivero","html_url":"https://github.com/lontivero","followers_url":"https://api.github.com/users/lontivero/followers","following_url":"https://api.github.com/users/lontivero/following{/other_user}","gists_url":"https://api.github.com/users/lontivero/gists{/gist_id}","starred_url":"https://api.github.com/users/lontivero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lontivero/subscriptions","organizations_url":"https://api.github.com/users/lontivero/orgs","repos_url":"https://api.github.com/users/lontivero/repos","events_url":"https://api.github.com/users/lontivero/events{/privacy}","received_events_url":"https://api.github.com/users/lontivero/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2018-04-10T00:52:15Z","updated_at":"2018-04-10T00:52:15Z","closed_at":null,"author_association":"COLLABORATOR","body":"ZeroLink's DoS protection relies on being able to walk on the transaction graph: https://github.com/nopara73/ZeroLink/#d-dos-attack\r\n\r\nWhile basic (and insufficient) DoS protection can be implemented readily, Bitcoin Core's RPC does not enable us to query which transaction spends a given output, which is needed for proper DoS protection:\r\n\r\n![](https://i.imgur.com/uAAwZYL.png)\r\n\r\nFor example in the above illustration, we know TX1, then we want to notice if first output of TX1 is being spent by another transaction (TX2). In ZeroLink we would want to ban all the utxos of TX2, too.  \r\n\r\nThe good news is, we don't care if an utxo is being spent by an unconfirmed transaction, since unconfirmed utxos are only allowed to participate in mixing, if they are directly coming from another CoinJoin transaction in the first place. So we only need to concern ourselves with confirmed utxos here.\r\n\r\n@lontivero Don't start to work on it right away, just try to find a way to solve this problem and let's agree in a solution first.\r\n\r\nRelated: https://github.com/zkSNACKs/WalletWasabi/issues/63 https://github.com/zkSNACKs/WalletWasabi/issues/64"}}
{"actor":{"display_login":"nopara73"}}