{"action":"created","issue":{"url":"https://api.github.com/repos/zcash/zcash/issues/764","repository_url":"https://api.github.com/repos/zcash/zcash","labels_url":"https://api.github.com/repos/zcash/zcash/issues/764/labels{/name}","comments_url":"https://api.github.com/repos/zcash/zcash/issues/764/comments","events_url":"https://api.github.com/repos/zcash/zcash/issues/764/events","html_url":"https://github.com/zcash/zcash/issues/764","id":139446038,"number":764,"title":"reduce block interval from 10 minutes to 2.5 minutes","user":{"login":"zookozcash","id":16416064,"avatar_url":"https://avatars.githubusercontent.com/u/16416064?v=3","gravatar_id":"","url":"https://api.github.com/users/zookozcash","html_url":"https://github.com/zookozcash","followers_url":"https://api.github.com/users/zookozcash/followers","following_url":"https://api.github.com/users/zookozcash/following{/other_user}","gists_url":"https://api.github.com/users/zookozcash/gists{/gist_id}","starred_url":"https://api.github.com/users/zookozcash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zookozcash/subscriptions","organizations_url":"https://api.github.com/users/zookozcash/orgs","repos_url":"https://api.github.com/users/zookozcash/repos","events_url":"https://api.github.com/users/zookozcash/events{/privacy}","received_events_url":"https://api.github.com/users/zookozcash/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/zcash/zcash/labels/consensus%20protocol","name":"consensus protocol","color":"f766c7"},{"url":"https://api.github.com/repos/zcash/zcash/labels/in%201.0","name":"in 1.0","color":"ffc987"},{"url":"https://api.github.com/repos/zcash/zcash/labels/performance","name":"performance","color":"b495f9"},{"url":"https://api.github.com/repos/zcash/zcash/labels/PoW%20and%20mining","name":"PoW and mining","color":"903b00"}],"state":"open","locked":false,"assignee":{"login":"str4d","id":4993799,"avatar_url":"https://avatars.githubusercontent.com/u/4993799?v=3","gravatar_id":"","url":"https://api.github.com/users/str4d","html_url":"https://github.com/str4d","followers_url":"https://api.github.com/users/str4d/followers","following_url":"https://api.github.com/users/str4d/following{/other_user}","gists_url":"https://api.github.com/users/str4d/gists{/gist_id}","starred_url":"https://api.github.com/users/str4d/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/str4d/subscriptions","organizations_url":"https://api.github.com/users/str4d/orgs","repos_url":"https://api.github.com/users/str4d/repos","events_url":"https://api.github.com/users/str4d/events{/privacy}","received_events_url":"https://api.github.com/users/str4d/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/zcash/zcash/milestones/35","html_url":"https://github.com/zcash/zcash/milestones/Consensus%20Parameter%20Tuning%20/%20Optimization","labels_url":"https://api.github.com/repos/zcash/zcash/milestones/35/labels","id":1812112,"number":35,"title":"Consensus Parameter Tuning / Optimization","description":"","creator":{"login":"nathan-at-least","id":4369700,"avatar_url":"https://avatars.githubusercontent.com/u/4369700?v=3","gravatar_id":"","url":"https://api.github.com/users/nathan-at-least","html_url":"https://github.com/nathan-at-least","followers_url":"https://api.github.com/users/nathan-at-least/followers","following_url":"https://api.github.com/users/nathan-at-least/following{/other_user}","gists_url":"https://api.github.com/users/nathan-at-least/gists{/gist_id}","starred_url":"https://api.github.com/users/nathan-at-least/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nathan-at-least/subscriptions","organizations_url":"https://api.github.com/users/nathan-at-least/orgs","repos_url":"https://api.github.com/users/nathan-at-least/repos","events_url":"https://api.github.com/users/nathan-at-least/events{/privacy}","received_events_url":"https://api.github.com/users/nathan-at-least/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":0,"state":"open","created_at":"2016-06-06T22:23:01Z","updated_at":"2016-06-06T22:42:49Z","due_on":"2016-06-27T07:00:00Z","closed_at":null},"comments":12,"created_at":"2016-03-09T01:30:46Z","updated_at":"2016-06-09T02:35:08Z","closed_at":null,"body":"Litecoin has had 2.5-minute blocks all along (with 1 MB block size), and it doesn't seem to have suffered any problems because of it. Let's set Zcash's block interval to 2.5 minutes too.\r\n\r\nI've asked the Zcash Technical Advisory Board privately if they think there would be a problem with this, and none of them raised a warning flag."},"comment":{"url":"https://api.github.com/repos/zcash/zcash/issues/comments/224786125","html_url":"https://github.com/zcash/zcash/issues/764#issuecomment-224786125","issue_url":"https://api.github.com/repos/zcash/zcash/issues/764","id":224786125,"user":{"login":"defuse","id":4211072,"avatar_url":"https://avatars.githubusercontent.com/u/4211072?v=3","gravatar_id":"","url":"https://api.github.com/users/defuse","html_url":"https://github.com/defuse","followers_url":"https://api.github.com/users/defuse/followers","following_url":"https://api.github.com/users/defuse/following{/other_user}","gists_url":"https://api.github.com/users/defuse/gists{/gist_id}","starred_url":"https://api.github.com/users/defuse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defuse/subscriptions","organizations_url":"https://api.github.com/users/defuse/orgs","repos_url":"https://api.github.com/users/defuse/repos","events_url":"https://api.github.com/users/defuse/events{/privacy}","received_events_url":"https://api.github.com/users/defuse/received_events","type":"User","site_admin":false},"created_at":"2016-06-09T02:35:08Z","updated_at":"2016-06-09T02:35:08Z","body":"We still have to consider the effect on [selfish mining](https://bitcoinmagazine.com/articles/selfish-mining-a-25-attack-against-the-bitcoin-network-1383578440) attacks, though! \r\n\r\nSuppose the common Equihash solver running time is close to the block target time, and an adversary has a 2x faster implementation. There is a simple block withholding strategy that lets the adversary mine more efficiently than the rest of the network *with certainty*.\r\n\r\nCall the probability of one of your fast rounds winning a block R, and suppose R is small enough that the probability of N fast rounds winning can be approximated N\\*R. Since you can only get 2 sequential rounds in within a block interval, your proportion of the hashpower is X = ~2R.\r\n\r\nMine one fast round on your private chain. If you lose, keep mining and win the block with probability X. If you win (probability R), withhold the block for the duration of one of your fast rounds (minus a little bit) while mining on your private chain. Publish the block you won just before everyone else finishes their slow round (thus you win it with certainty, as they switch to mining that one\\*). You win the block after it with probability ~3R = 1.5X (since you were able to make 3 fast round attempts in total).\r\n\r\nWith this strategy, every time you win a block, you're 1.5 times as likely to win the next one [except for (most of) the blocks you win using this strategy]. The strategy gets less effective the more times an Equihash solver can be run within a block interval.\r\n\r\n\\* - Does our current implementation do this? Or will it unoptimially finish running started solvers even after a new block arrives? Or *is* the optimal strategy to finish running your solver?"}}
{"actor":{"display_login":"defuse"}}