Overcoming rational manipulation in distributed mechanism implementations