8442
Comments (667)
sorted by:
You're viewing a single comment thread. View all comments, or full comment thread.
2
slag 2 points ago +2 / -0

If you and two other people give me a dollar each to place in an account. You each have contributed 1/3 to the total account value. I know that you contributed whole numbers (e.g. 1 dollar), but I decide to say you each contributed 0.333333333 (or maybe just 0.33, since we can't really represent the fraction 1/3 with a finite decimal number - try doing long division of 1/3 and let me know when you stop lol). You don't get a receipt by the way, just trust that I'll take care of the details. Also you can't look behind the desk to see how I manage stuff.

Instead of maintaining the integer number you submitted, I like to use proportional representation to store your information for your contribution to the account because reasons (remember, you can't even ask to see why!) I like to store these proportional values in a decimal format, say to 2 decimals worth of precision. So I look at your contribution 1, and divide it by the total account value 3. I don't write down 1/3, instead, I write down the decimal 0.33 .

A funny thing though: since the account value has to add up to 3, and I decide to arbitrary store at say 2 decimal points worth of precision, somebody will get more than 0.33. We "lost" some information by going into decimal...so I will helpfully inject that information back in to make things balance out. So since everybody had 1/3 (or approx 0.33) of a contribution, and 0.33 + 0.33 + 0.33 = 0.99 (which is bad), I decide to arbitrarily give your other friend 0.34. Now 0.33 + 0.33 + 0.34 = 1.00, so everybody's proportional share adds up to 1 like it should.

So you come back later and you want to get your contribution back.

I say "sure!" and give you (0.33 * 3) = 0.99, so here's your 99 cents! This seems wrong. Playing with fractions and storing them as decimals opens the door to these kinds of things. If I were "malicious" (say one of the people giving me money to hold was a relative), I could look for opportunities to shift these tiny values around to benefit their account. If the values are small enough (say a fraction of a fraction of a penny), who would ever notice? What if I made it so that nobody could even audit me (say I tore up records, etc.)?

We have pretty sophisticated auditing processes and accounting when we deal with money. We do note have that transparency with voting, particularly electronic voting, which opens up opportunities for fraud.

This is an obviously arbitrary example; the idea is that the system (me in this case) can use arbitrary rules to mess with the input (your money/vote) to get a result "I" want (shifting stuff from your account into another account) without you being able to call me on it easily. In other words, YOU SHOULD NOT TRUST ME.