Settings

Theme

Show HN: Go Freaking Do It – Smart contract for reaching your goals

gofreakingdoit.com

128 points by superkarolis 8 years ago · 111 comments

Reader

masukomi 8 years ago

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/ 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 8 years ago

    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 8 years ago

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

      • rmaus 8 years ago

        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 8 years ago

          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.

      • gitgud 8 years ago

        Dear Jim,

        We begrudgingly offer you this gift as a token of our accumulated tardiness to company meetings.

        Regards,

        Your subordinates

      • rconti 8 years ago

        The good news is, none of them have to attend the meeting anymore.

  • Fnoord 8 years ago

    I used to run a CLI program called smoketimer [1]. It'd give an output like (from the README example):

    "4 Months, one week, 5 days, two hours, 51 minutes, 39 seconds. 3084 cigarettes not smoked, saving EUR 478.02. Life saved: One week, one day, 13 hours, 36 minutes."

    After I saved up an X amount of money (a year or so?), I bought myself a laptop from that; the first laptop I ever bought for myself. Quite a decent motivator if I may say so myself.

    Sure, I had relapses. Multiple even. Last one in 2014, whilst on vacation (very difficult time for me not smoking on vacation). I bought one pack, ended up throwing away half of it.

    [1] https://www.stack.nl/~martijnb/smoketimer.tgz

  • jameslevy 8 years ago

    That's a very interesting idea, although it would be pretty tricky to implement in a way that didn't require self-reporting. The main obvious benefit using a smart contract could provide is automatically making the donation unless you actively lie (or tell the truth) that you didn't smoke at all, and the UI could play that up by asking you if you're sure you aren't lying.

underyx 8 years ago

The same concept, but with credit cards: https://www.beeminder.com

jesperht 8 years ago

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...

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

CrossWired 8 years ago

>> 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 8 years ago

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

    • kbutler 8 years ago

      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 8 years ago

        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 8 years ago

          >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 8 years ago

            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.

      • nck4222 8 years ago

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

        Which results in unnecessary procedures, and unnecessary prescriptions.

        >Banks, credit card companies, and brokerages all make more money if you make poor financial decisions

        Which caused the housing crisis and great recession.

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

        Which results in some of the most untrustworthy salespeople in one of the most untrustworthy industries.

        All of those industries are regulated by the government, precisely because the incentives are wrong and it causes people to do more harm than good if left unregulated.

        • wuliwong 8 years ago

          I was able to find a trustworthy mechanic. If they did a poor job or were sabotaging my car when I brought it to them, I would choose another mechanic.

          • nck4222 8 years ago

            My point is those fields need extra regulations because there are incentives that promote unethical behavior, and thus shouldn't be used as examples of why this websites incentives are good business practices. Not that there's no such thing as a trustworthy mechanic.

          • throwawaydjdo 8 years ago

            HN is ridiculous. If a mechanic sabotages your car, you can sue them... you know, a service provider by the government. But what if your town has only that one mechanic? What if the mechanic is worth billions and bought the other smaller shops just to shut them down? Do keep in mind that sometimes there is no competition, or the incentives are so perverse that competition doesn’t matter. The world isn’t black and white. Despite what Ayn Rand might’ve told you, you can’t just expect competition to fix literally everything.

            Hackernews is supposed to have smart people, but the pithy nonsense like the parent I’m responding to makes it abundantly clear that that’s not the case.

      • dumbfounder 8 years ago

        You aren't making a case for, you are making cases against all these other industries.

      • losteric 8 years ago

        Those problems also outline a potential business model based on verified long-term reviews.

        If a doctor's treatment record and long-term ROI follows them around, or if piano students can track their proficiency over time, the market can act on that information. Without it, we're all flying blind so of course we get suckered into bad exchanges.

        It also reflects opportunities for stronger regulations... For example, financial advisor were required to act in the best interest of their customers (until Trump repealed Obama's executive order)

    • falcolas 8 years ago

      This is effectively the business model of every health club out there. They lock you into a 1 year contract, knowing most people will not continue past the first or second month.

      • dpatrick86 8 years ago

        In that case, the only incentive they have for you to fail is to pack more gym memberships in the same square footage. Still, I think as a perverse incentive it's a lot more indirect.

        • mrisoli 8 years ago

          Exactly, while they can benefit from having fewer people go regularly to offer a better experience to those who do, churn is still a gym's biggest problem, it's why they lock up longer contracts and why gyms have trainers available and regular progress reports, to enhance customer LTV.

    • iamwil 8 years ago

      But in this instance, that's the incentive. You want that money back, rather than going to someone else.

    • jstanley 8 years ago

      That's also the business model of most dating websites.

  • mgberlin 8 years ago

    If you really want it to motivate, the funds should be sent to some group you detest if you fail. I.e. the DNC for a staunch republican, or the NRA for someone who believes in gun control.

    • dreeves 8 years ago

      Our (Beeminder's) counterargument: https://blog.beeminder.com/anticharity/

      Excerpt:

      Take my thoughts on this with a huge grain of salt, given my conflict of interest, but I really dislike commitment devices that destroy things — either information or other forms of value. StickK’s anti-charities seem the most egregious, actively harming the world. I’m certainly motivated to not allow the world to become a worse place, so it’s not that it would be ineffective as a commitment contract. Just that I’m also motivated to prevent things that don’t make the world worse in any way, like paying money to a third party (who’s not evil).

      • gnicholas 8 years ago

        > StickK’s anti-charities seem the most egregious, actively harming the world.

        That assumes that (1) there are "good" charities and "bad" charities, and (2) that most of Stickk's users are good people who end up benefiting "bad" charities when they fail.

        Point (1) seems hard to prove and point (2) is impossible to prove without detailed info about how Stickk is used.

        It seems like you're in this market, so perhaps you have data like this. Do you? If not, how do you justify the above assertion?

        • dreeves 8 years ago

          Good points, but I don't think we need assumptions that strong. For example, if democrats donate to the republican party as an anti-charity and republicans donate an equal total to the democratic party, then probably democrats and republicans would all agree that that's strictly worse than nobody donating at all.

          But more to the point, I'm just viewing it from the individual user's perspective. From your point of view, you're actively harming the world by donating to an anti-charity. It doesn't matter that those other wrong-on-the-internet people think your donation is doing good. :)

          • gnicholas 8 years ago

            It is useful to distinguish between the individual user's perspective and the global perspective.

            You want to focus on the individual user, and that makes sense. But to him/her, they're using an anti-charity because they want to increase their odds of accomplishing their goal. So when thinking about whether it is "good for the world" or "bad for the world" that people do this, we have to factor in:

            1: the x% probability that the user will fail, and money will be donated, and

            2: the y% chance that the user would have failed without the anti-charity option, but succeeds instead because of it.

            When you consider both of these aspects, it is not at all clear that the anti-charity option is bad for the world.

            • dreeves 8 years ago

              Ah, yes, my assumption is that you can derive the same amount of motivation with a non-evil beneficiary by just jacking up the amount at risk. Like donating $1 to the KKK is extremely aversive but you're equally motivated to avoid giving, say, $1k to a neutral 3rd party.

              Exactly zero harm befalls the world in the latter case.

              I'd even go so far as to say you could achieve the same effect with a true charity by risking an amount that you really couldn't afford. But, as I point out in the blog post I linked to above, no one ever has the guts to actually do that.

              Btw, on Beeminder we very occasionally have people who risk thousands of dollars. I think they tend to be really hardcore fans who may in fact view it as improving the world by giving us money. Hence them shrugging off smaller amounts and needing to risk something ridiculous to stay motivated to stay on track. But it's still super win-win (because they do stay on track overall -- and sometimes staying on track means things like finishing a PhD!).

              • gnicholas 8 years ago

                > Ah, yes, my assumption is that you can derive the same amount of motivation with a non-evil beneficiary by just jacking up the amount at risk. Like donating $1 to the KKK is extremely aversive but you're equally motivated to avoid giving, say, $1k to a neutral 3rd party.

                Is there any evidence to support this theory? Seems like the existence of tools that offer anti-charity donations indicate that for at least some people, this assumption is incorrect.

  • underyx 8 years ago

    It's easier to slack off on your goals if it feels like a noble thing to do.

    • Klathmon 8 years ago

      Couldn't the smart contract literally "burn" the funds in case of failure?

      Like transfer a small percentage to the owner as a fee for the service, then send the rest to a faulty address or contract setup to never be retrievable?

      • detaro 8 years ago

        yes. or maybe even distribute it among those that managed to reach their goals.

        • dumbfounder 8 years ago

          Then people might try to game the system. I think you present the excess to one person each day that receives votes as the best (public) goal matched. It incentivizes people to publicize their goals, which helps the business, and also makes them more likely to fulfill the goal. You will still see gaming I'm sure, but at least it will be vetted by peers.

        • Klathmon 8 years ago

          In a way "burning" the funds already does distribute them to everyone else.

          Since that is now money that is forcibly and irrevocably taken out of circulation, so therefore everyone else's money is worth slightly more because of it!

        • kbutler 8 years ago

          Goal: "Set a goal that makes me eligible to receive a portion of the rewards".

          Done!

          • detaro 8 years ago

            Even more reason to not fail your goal and give money to "stupid freeloaders" :P

      • SamBam 8 years ago

        I wonder if deliberately sending money to a blockchain address that no one has the keys to could be legally considered destruction of money?

        Probably not yet, but maybe eventually. It's essentially the same as burning it.

        • yathern 8 years ago

          Destruction of value is not destruction of money. If I were to buy some extremely expensive memorabilia (a pristine copy of Abbey Road, signed by all of the Beatles) and burn it in my back yard, that wouldn't be destruction of money.

          While BTC, ETH, XMR function like currencies and can be traded - they are not recognized as a currency in most places

  • berberous 8 years ago

    +1. I'd be fine giving the site a percentage as a cut, but would want to be able to designate an address for the primary portion of the funds.

  • dominotw 8 years ago

    > instead maybe a Charity

    Money going to charity won't make me feel that bad about not achieving my goal.

    "oh well atleast someone needy is getting the money"

    Defeats the whole point of the exercise( pardon the pun).

danpalmer 8 years ago

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?

  • darepublic 8 years ago

    This app reminds me of the cartoons where a character says 'lock me in here and don't let me out no matter what say'

    • sincerely 8 years ago

      The app is basically the exact plot of one of the schemes from Nathan for You s2e6

  • chaostheory 8 years ago

    It's probably mainly a way to learn how to implement something / anything with smart contracts. I don't see anything wrong with that.

    • danpalmer 8 years ago

      Yeah quite possibly, and a very valid reason, although not how the product is pitched.

  • gnicholas 8 years ago

    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

amelius 8 years ago

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

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

  • wuliwong 8 years ago

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

suanmeiguo 8 years ago

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 8 years ago

    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 8 years ago

      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 8 years ago

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

    • dreeves 8 years ago

      You know how the customers who pay the least are the most work? Well this idea creates customers who literally pay a negative amount. My sense from the erstwhile GymPact -- https://blog.beeminder.com/gympact/ -- is that those "customers" tended to be a nightmare.

      Hence Beeminder rationalizing just keeping all the money! :)

  • supermdguy 8 years ago

    I had the same idea too!

frisby 8 years ago

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 8 years ago

    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 8 years ago

      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.

    • frisby 8 years ago

      Nothing, you make a good point. We were going to use github commits as a trusted oracle in our first prototype of this idea so that a supervisor would not be needed (i.e. you would pledge to commit to a certain project a given amount within the month) but this would still be easy to game in the way you described.

      Maybe there isn't a great way to implement this.

  • amelius 8 years ago

    But this may be gamed by users who submit easy-to-fulfill tasks.

mpeg 8 years ago

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 ?

  • superkarolisOP 8 years ago

    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 8 years ago

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

  • heptathorp 8 years ago

    It also doesn't appear to be checking if a goal has already been set as failed, so someone could fail their goal repeatedly and drain the contract of all its funds.

pjam14 8 years ago

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

  • superkarolisOP 8 years ago

    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 8 years ago

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 8 years ago

    +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).

  • jstanley 8 years ago

    I don't like the concept of a smart contract having an "owner". Why should anybody have any more power than anybody else?

    A true trustless smart contract would have no owner.

sharemywin 8 years ago

This might be a better model:

https://www.fitnessmagazine.com/weight-loss/tips/motivation/...

mapleoin 8 years ago

> get an email emailed

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

codingdave 8 years ago

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

  • supermdguy 8 years ago

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

ghostly_s 8 years ago

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 8 years ago

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 8 years ago

Similar on the bitcoin blockchain - https://www.realitykeys.com/

jhiska 8 years ago

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 8 years ago

why can you put in negative numbers as the amount?

alexee 8 years ago

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.

NwmG 8 years ago

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 8 years ago

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

supermdguy 8 years ago

This is a great idea!

aqsheehy 8 years ago

This seems like a great way to have your money stolen

jister 8 years ago

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

demoonkevin 8 years ago

Seems like an exact copy of gofuckingdoit.com

  • superkarolisOP 8 years ago

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

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection