
Show HN: Go Freaking Do It – Smart contract for reaching your goals - superkarolis
https://gofreakingdoit.com/
======
masukomi
ignoring the tech, i think many folks here are missing the point. Assume you
really want to quit smoking right now, and you are also pro choice. With a
system like this you can say "I will quit smoking in 2 months or this $5000
will go to an anti-abortion charity." now THIS system doesn't do that BUT the
core point remains, if you can attach "significant" loss to NOT achieving a
goal it can help motivate people (not all people, but you get teh point).

this system is limited in that it can only do "money" for significance. it
can't also tie it to something you loathe. I don't think any of the available
things ( [https://www.beeminder.com/](https://www.beeminder.com/) was
mentioned by someone ) can do this, but you can do it with a friend you trust.

to those who suggested having the money go to charity: Having the money go to
a charity you LIKE is a terrible idea because then if you fail in your task
"well at least my favorite charity is getting money" You actually have
incentive to fail.

~~~
rmaus
Did something similar to this at a previous employer. We had a problem with a
particular weekly meeting starting on time, so we all agreed on a $1 late fee,
per minute. At year's end, the collected fees were gifted to one of the firm's
wealthy executives whom we all disliked. The meeting's on-time rate
skyrocketed.

~~~
mulmen
Did you send a card along with the money explaining this to the executive?

~~~
rmaus
Hah, yes and no. The card said we wanted the money to go to the person we
thought needed it the least. However, he knew he was not well-liked,
presumably connected the dots, and thought it was funny anyways.

~~~
mulmen
So he has a sense of humor. That would make me like him more which means I
would sadly be late to a lot of your meetings.

------
underyx
The same concept, but with credit cards:
[https://www.beeminder.com](https://www.beeminder.com)

------
jesperht
Awesome job building your idea! Took at a look at the source code an found a
few bugs and put them here in a post: [https://medium.com/@jesperht/dont-go-
freaking-do-it-5da4df4d...](https://medium.com/@jesperht/dont-go-freaking-do-
it-5da4df4d4b44)

Feel free to get in touch with me if you need a hand fixing any of this!

~~~
superkarolis
Hey, thanks for the thorough inspection. I now realize there are several flaws
in the implementation that will need fixing. V2 release of the contract will
come soon!

~~~
XR0CSWV3h3kZWg
Why did you say that it was verified safe?

------
CrossWired
>> and will keep the funds otherwise.

If I'm possibly going to give my money away, why would I want to do this to
some random contract, instead maybe a Charity or somewhere other than directly
to the contract?

~~~
supermdguy
It is kind of awkward that a business that exists to help you get things done
is paid whenever you fail.

~~~
kbutler
Doctors and pharmaceutical companies are supposed to help you be healthy, but
make more if you're ill long-term.

Banks, credit card companies, and brokerages all make more money if you make
poor financial decisions (fees, interest, and active trading, respectively).

Auto mechanics and car companies make money if your car doesn't work or
doesn't last past the warranty period.

Even piano teachers only make money if you continue needing lessons, rather
than becoming able to learn on your own.

Hopefully enlightened businesses will follow the model that customer referrals
are more scalable than bleeding the money out of any one individual.

~~~
jMyles
The incentive structure you are describing is a huge part of the problem in
the statist/industrial paradigm of human existence.

Blockchains and smart contracts purport to lift of out of these conditions,
but, as you point out, this one seems to suffer from the same flaws.

~~~
harrumph
>The incentive structure you are describing is a huge part of the problem in
the _statist /industrial_ paradigm of human existence.

You misspelled "capitalist".

~~~
jMyles
Sure, call it that too. I think that that word is a bit unwiedly in today's
political dialogue, because it means something different to everybody.

To some, "capitalist" is an attribute of a society that resist state
intervention in economic collaboration. It is equal to the phrase "free
market" and viewed with great skepticism.

To others, "capitalist" is more tantamount to greed and cronyism; it is
understood in a way that's contrary to traditional anarchic theory about the
state.

You might detect that I usually find myself in the second category.

Because of this dichotomy, I like to think of the procession of ages of
humankind represented by the dawn of the internet being from
"statist/industrial" toward "humanitarian/information-driven".

But you can also certainly think of it as being from "capitalist" to
"humanitarian" or whatever may go in that second slot, sure.

~~~
cryptodogemoon
It sounds like you're fantasizing about anarcho-capitalism?

What type of system do you think cryptocoins facilitate?

[https://www.newyorker.com/humor/daily-shouts/l-p-d-
libertari...](https://www.newyorker.com/humor/daily-shouts/l-p-d-libertarian-
police-department)

~~~
jMyles
I have run into AnCaps whose opinions I respected, but I've never quite been
convinced that their version of the world is sufficiently selective for
compassion.

------
danpalmer
I don't really understand the trend of solving all problems with "smart
contracts". This just seems to limit the potential market to people who care
about smart contracts, and complicate an otherwise simple arrangement, without
providing any benefits. You still have to find a supervisor your trust, why
not just give money to a friend instead?

~~~
gnicholas
Agree. This seems like Stickk [1], but with "smart contract" branding. There
may be other differences (and I'd be interested to know more about them), but
I had the same initial reaction as you.

1: www.stickk.com

~~~
dreeves
Here are all the other similar such apps we know of:
[http://blog.beeminder.com/competitors](http://blog.beeminder.com/competitors)

------
amelius
They didn't implement the most difficult part of the idea: the supervisor.

Seems like a half-baked solution. Interesting, but incomplete.

~~~
wuliwong
It asks for a supervisor's email. I'm not aware of how these smart contracts
work. What else needs to be done?

------
suanmeiguo
I had the exact same idea years ago. Eventually I found there are some
shortage about it so I ditched the idea:

\- How to verify people achieved their goal (this website introduces
"supervisor" but I'm not sure that's gonna work well)

\- You gain nothing from achieving goals, v.s. you lose money if you didn't

\- The gain (goal achieved, which can be done without losing money) is much
less than lose (lose _real money_ ), so no incentive for people to use this
service.

This website will face the same challenge.

I'm happy to see there are someone out there having the exact same idea, I
hope they can do well sincerely.

~~~
onion2k
_You gain nothing from achieving goals, v.s. you lose money if you didn 't_

One solution to that would be having the app share the money from the losers
between all the winners (less a fee for running the app if you wanted to
monetize it).

~~~
cableshaft
Then every customer would have a financial incentive to always lie and say
they completed their goals.

It's already iffy with the 'lose money if you don't meet them' approach, but
if you could actually get a piece of all the users moneys, yeah, you might as
well say you're a winner (or only create goals where you can easily win) and
game the system.

~~~
onion2k
That's the hard part of the problem, and the bit that makes it worth solving.

------
frisby
I had been discussing almost exactly this idea with a friend over the last
couple weeks, wholly unaware of the similar services listed elsewhere in the
comments (although I realise there is a chance I heard about one of them in
the past but forgot about it). Good job on getting this up and running, looks
great so far!

The way we had proposed to deal with funds that were not returned to the user
because of failing a goal was to add them to a reward pool of sorts. We would
take a percentage of any failed goal funds, but the majority would be given as
rewards to others who had completed their goals in a similar area or time
period. The details of this hadn't been fleshed out but one potential way to
do it we discussed would be to distribute the reward pool at the end of every
month to those who had completed gals in that month (proportional to the
amount of money staked).

This would potentially remove some people's concerns listed in the comments
about the money not being handled well in case of goal failure. Also it might
drive more usage of the service if people would maybe even profit.

~~~
tonyarkles
Something to think about with that, wearing my black hat:

What's to stop me from putting up a stake, using a second email address as my
"supervisor", and just confirming at the end of the month that I've reached my
goal? Without doing anything, that makes me eligible for a chunk of the reward
pool.

~~~
monokh
Exactly. The difficult part of creating these kind of value systems isn't just
providing more beneficial incentives. It's also about providing the right
combination of incentives that remove (as much as possible) any malicious
intentions.

------
mpeg
Since setGoalFailed is public (because you want it to be callable by the
person trying to achieve the goal, and the contract owner is the supervisor)
and does no checks, seems like anyone can mark a goal as failed and the money
held in the smart contract will go to the contract owner?

Shouldn't that check that msg.sender is either goals[_hash].owner or owner ?

~~~
superkarolis
You are right, thank you for spotting this! I will have to make a new
contract, this one is flawed. If someone decides to call this function and I
get the funds, I will give a manual refund. It will have to do until v2
release of the contract. Right now at least it's not holding any major funds.

~~~
mpeg
No worries! Still much better code than Parity Multisig and their fake
constructors :)

------
pjam14
Like the one from Pieter Levels?
[https://gofuckingdoit.com/](https://gofuckingdoit.com/)
[https://levels.io/debriefing-go-fucking-do-it/](https://levels.io/debriefing-
go-fucking-do-it/)

~~~
superkarolis
Exactly, "Go Fucking Do It" is the original concept and inspiration for this
side-project. I informed him about what I am building. The only difference is
that "Go Freaking Do It" is built on top of Ethereum blockchain and the funds
are verifiably safe.

------
cantrip
I don't like kill functions. If you have to trust that the owner won't just
kill the contract in the middle of your goal it's not actually trustless.

~~~
shazow
+1, kill functions only make sense in contracts which are expected to operate
within a specific narrow time window that is governed outside of the contract.

For example, a fundraising period. Kill functions work well when you can
effectively say "oops we screwed up the event window, we're going to relaunch
with a fresh event window."

For something that is intended to exist permanently, the kill function is
strictly harmful as it creates risk for anyone depending on the contract
(unless your intention is to avoid having people depend on it, I suppose).

------
sharemywin
This might be a better model:

[https://www.fitnessmagazine.com/weight-
loss/tips/motivation/...](https://www.fitnessmagazine.com/weight-
loss/tips/motivation/weight-loss-apps-bet-money/)

------
mapleoin
> get an email emailed

I think this could be rewritten as "send an email".

------
codingdave
So if your supervisor flakes out, you lose the money? There is definitely a
flaw in that...

~~~
supermdguy
Or goes on vacation for a week. I wonder if there's a time limit for their
response?

------
ghostly_s
Interesting idea, but it seems ultimately like a high-tech implementation of a
low-tech process-- really I'm just relying on the 'supervisor' to hold me
accountable, and if I get to the point of asking someone else to hold me
accountable to a deadline I've already accomplished the hard part, anyway.
Sharing goals is a proven strong motivator in itself, I think.

It did bring to mind an interesting related idea, though, specifically for
software side projects: instead of relying on a human to validate your
success, create a smart contract around a test suite; funds are released by
passing your tests by the deadline.

------
crispyambulance
This is a neat idea.

But it makes wonder that there's perhaps more to consider about "your goals"
if you need "a supervisor" to verify that you met your goals and a monetary
penalty for failing to meet your goals.

More importantly, one's _choice_ of goals and the process by which they strive
to achieve them (the journey) is every bit as important as the "verifiable"
success/failure rate if we're talking about personal goals.

------
jcousins
Similar on the bitcoin blockchain -
[https://www.realitykeys.com/](https://www.realitykeys.com/)

------
jhiska
Using technology and money to blackmail yourself isn't an effective way to
make you do something you don't actually want to do; shady.

------
NwmG
why can you put in negative numbers as the amount?

~~~
netsec_burn
Hahhahaha my procrastination could have finally paid off!

~~~
superkarolis
It only allowed you to put negative number in UI box but that would have not
made a valid Ethereum smart contract so it still wouldn't have worked. It made
me scared for a second though!

~~~
supermdguy
Oh, good. That could have been really bad.

------
alexee
Suggestion to make it with lesser scope, but with verifiable contracts, so you
can automatically verify that it was done. I'd actually use that service
myself :)

For example: 1) Run 10K on Strava. 2) Solve programming challenge on
Codeforces/TopCoder. 3) Pass coursera class. 4) Have X bitcoins on your wallet
5) Check-in in some specific location.

~~~
joshschreuder
I think there is an Oracle problem here with trying to bring in data from
external services

[https://www.slideshare.net/mobile/InfoQ/blockchain-the-
oracl...](https://www.slideshare.net/mobile/InfoQ/blockchain-the-oracle-
problems)

------
NwmG
You might want to note that you can test it on the testnet. It looks like it
works, i did it using ropsten testnet but the verbiage in the posting says
mainnet regardless of if it is actually the mainnet.

------
everdev
I've seen these financial penalty systems promoted as change motivators, but
does anyone have a success story using them?

~~~
dreeves
At risk of meta-overload, our startup wouldn't exist but for doing this!

[http://messymatters.com/uvi/](http://messymatters.com/uvi/)

------
supermdguy
This is a great idea!

------
aqsheehy
This seems like a great way to have your money stolen

------
jister
come on you can do this without tech, it's called discipline.

------
demoonkevin
Seems like an exact copy of gofuckingdoit.com

~~~
superkarolis
Yes, it's inspired by "Go Fucking Do It" and Pieter, the creator of the
original concept, is aware of this re-implementation :)

