Re: response to "proof of work proves not to work"?
"Eric S. Johansson" <[email protected]> Mon, 17 Jul 2006 16:57:09 -0400
| Newsgroups | gmane.mail.spam.hashcash |
|---|---|
| Message-ID | <[email protected]> |
John Honan wrote: > I've also done some calculations on spammer profitability and breakeven. > I used this approach; > > If it takes x seconds for a spammer to stamp and send an email, then if > x is large enough it should be possible to impact the spammers > profitability enough to deter them from sending spam in the first place. I think we're fundamentally coming from the same place. It's really quite obvious when you think about it. :-) > When we work out what the spammers breakeven point is, we can then > derive how long it should take to calculate a Hashcash stamp to make > them unprofitable. There are only a certain number of seconds in a day, > which means the spammer is limited in the maximum amount of stamped > email they can send per CPU per day. http://camram.org/zombiecalc have fun with the calculator. Internal calculator is pretty badly organized. It was the first JavaScript I ever wrote and unfortunately, it's not the last. I've attached a slightly cleaner calculator. The main difference being organization and that I have not tried to put any sort of economic calculations into it. That we can add on. > > You're right in that we have to make some assumptions about spam > response rates, profit-per-response and cost of running one CPU, but > this is the basic approach I took. Based on my calculations, I figured > the optimum stamp size to put a spammer out of business is 59 seconds - > or about a 30-bit stamp size on a fast processor; which brings up the > issue of cpu 'egalitarianism'.... > > I'd really like to take a look at your approach to the calculations > whenever you post them. looking at zombie calculator 2, 3 million zombies at 100% efficiency with 13 billion spam stamps required, each stamp would be 19 seconds. If you instead dropped the pass rate to 10%, the stamp size climbs to 199 seconds (no surprise there). But since nothing operates at 100% efficiency, if we drop efficiency rating to something more realistic like 33% then we end up with a 66 second stamp. The big question is what pass rate is spam or breakeven rate and that's more of a marketing/cost analysis model than I can do right now. so if any of us have significant others or friends of significant others that can do marketing type work, this is where they can prove they're worth the society. I must add, we have no idea the number of zombies. The last time I saw antispam calculations breaking out in the zombie contingent, the numbers worked out to something like 40,000 zombies running four hours a day. Not a huge number. With those kind of numbers, we could break spammers with as little as a 0.7 seconds stamp. A 2 second stamp would wipe them out. this is all assuming I didn't screw up my calculator. I've been embarrassed by that before (damned JavaScript). anyway, if the attachment does not make it through, let me know. ---eric
zombiecalc2.html
(text/html, 3.5 KB)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<link rel="StyleSheet" href="zombiecalc2_files/xcamram.css" type="text/css">
<script language="javascript">
function calc_stamp(){
//variables
var zombies = document.converter.zombies.value
var leakage = document.converter.leakage.value/100
var zer = document.converter.zer.value/100
var spd = document.converter.spd.value*leakage
var rr = document.converter.rr.value
var day2min = 24*60
var spm = spd/day2min
var eff_zombies = zombies * zer
var stamp_size = Math.round((eff_zombies/spm)*1000)/1000
// response rate is measured in some unit time, typically days or for a campaign.
// calculate the number of spam messages per day degraded by leakage efficiency.
// zombie efficiency does not come into play as that merely affect stamp size
var responses = Math.round((spd * (rr/100))*1000)/1000
//write in text box
document.converter.sm.value=stamp_size
document.converter.responses.value=responses
}
function calc_zombies(){
//variables
var leakage = document.converter.leakage.value/100
var zer = document.converter.zer.value/100
var spd = document.converter.spd.value*leakage
var stamp_size = document.converter.sm.value
var day2min = 24*60
var spm = spd/day2min
var zombies = Math.round(((spm*stamp_size)/zer)*1000)/1000
//write in text box
document.converter.zombies.value=zombies
}
function calc_stamp_vol(){
//variables
var zombies = document.converter.zombies.value
var attacks = document.converter.attacks.value
var duration = document.converter.duration.value
var pass_rate = document.converter.pass_rate.value/100
var zer = document.converter.zer.value/100 // percentage to dec fraction
// var spd = document.converter.spd.value*leakage
// var attack_volume = attacks/duration
var stamp_capacity = (zombies*zer)*(1440/24)*duration
var stamp_volume = (attacks/(zer*zombies) * pass_rate)
var day2min = 24*60
var stamp_size = 60*60/(stamp_volume/duration)
// var stamp_size = Math.round((eff_zombies/spm)*1000)/1000
// response rate is measured in some unit time, typically days or for a campaign.
// calculate the number of spam messages per day degraded by leakage efficiency.
// zombie efficiency does not come into play as that merely affect stamp size
// var responses = Math.round((spd * (rr/100))*1000)/1000
//write in text box
document.converter.stamp_size.value=stamp_size
document.converter.stamp_volume.value=Math.round(stamp_volume)
document.converter.stamp_capacity.value=stamp_capacity
}
</script>
</head>
<body>
<div class="container">
<div id="main">
<form name="converter"><input value="3000000" name="zombies" align="right" type="text">zombies
<br>
<input value="13000000000" name="attacks" align="right" type="text">attacks<br>
<input value="24" name="duration" align="right" type="text">attack duration (hours) <br>
<input value="100.0" name="zer" align="right" type="text"> zombie efficency rating (percent) <br>
<input value="100.0" name="pass_rate" align="right" type="text">percentage pass rate <br>
<input value="0.0" name="stamp_volume" align="right" type="text">stamp volume demand per zombie per duration<br>
<input value="0.0" name="stamp_capacity" align="right" type="text"> stamp minutes (how many 1 min stamps zombies can send)<br>
<input value="0.0" name="stamp_size" align="right" type="text">stamp size in seconds<br>
<input value="calculate stamp volume" onclick="javascript:calc_stamp_vol()" type="button"></form>
</div>
</div>
<br>
</body>
</html>