Macrochip
Active member
Dash's Governance model is without a doubt the most sustainable and technically superior method to govern the development of a cryptocurrency. However we must not close our eyes to potential weaknesses.
The recently revealed reason for the insufferable Lamassu integration delay, which boils down to a single developer with questionable motivations, is a perfect display of how the "Pay and Pray" method of budget funding is flawed. I had my concern about this the day budget proposals were introduced and it took a while but my concern finally came true: Currently we're relying on delivery of performance after an upfront payment has occurred.
What's being created when a budget proposal is accepted is nothing short of a legally binding contract. But we lack any recourses or any possibilities of a refund. Paid is paid. Delivered or not. And that's the problem. The nature of most proposals ("Code for money") makes smart contracts (at least with current technology) almost useless, too: Let's assume a contractor made a proposal to build a decentralized marketplace. He shows us some nice mockups, test code, roadmap, milestones etc. Everyone is frantic about it and Masternode operators accept the proposal to pay 200 DASH/month for 1 year to the project. The developer promises to publish every update on a public github account. Now if we had a smart contract in place, all it could check for is this: "Does he upload code within the agreed upon interval? Yes - Pay the 200 Dash | No - Withold payment". There is no method to check for the codes uniqueness (copy-paste garbage?) and usefulness to the end goal. The dev could upload anything just to get paid.
Currently the only way to check for useful code is having another human party review it. But even then, when the code is revealed to be garbage, that person couldn't stop the payments (and neither should she or anyone be able to do that).
So we need to have a discussion on how to remove the component of dependency on goodwill and trust within our governance model. Any ideas? An Evolution DApp where users vote on these updates, maybe?
Edit: Maybe I should clarify something: For some cases I mean for a solution other than voting the entire proposal down and stop payment altogether, even though my example doesn't reflect this, unfortunately. It's about paying less for receiving less. The proposal can still be good (like BTM integration), but should be foolproofed and avoid wasting resources. Other cases (like one time payments) are mostly about wasted funds with no ability to reclaim them. In any case: Payment should occur after delivery and validation of performance.
The recently revealed reason for the insufferable Lamassu integration delay, which boils down to a single developer with questionable motivations, is a perfect display of how the "Pay and Pray" method of budget funding is flawed. I had my concern about this the day budget proposals were introduced and it took a while but my concern finally came true: Currently we're relying on delivery of performance after an upfront payment has occurred.
What's being created when a budget proposal is accepted is nothing short of a legally binding contract. But we lack any recourses or any possibilities of a refund. Paid is paid. Delivered or not. And that's the problem. The nature of most proposals ("Code for money") makes smart contracts (at least with current technology) almost useless, too: Let's assume a contractor made a proposal to build a decentralized marketplace. He shows us some nice mockups, test code, roadmap, milestones etc. Everyone is frantic about it and Masternode operators accept the proposal to pay 200 DASH/month for 1 year to the project. The developer promises to publish every update on a public github account. Now if we had a smart contract in place, all it could check for is this: "Does he upload code within the agreed upon interval? Yes - Pay the 200 Dash | No - Withold payment". There is no method to check for the codes uniqueness (copy-paste garbage?) and usefulness to the end goal. The dev could upload anything just to get paid.
Currently the only way to check for useful code is having another human party review it. But even then, when the code is revealed to be garbage, that person couldn't stop the payments (and neither should she or anyone be able to do that).
So we need to have a discussion on how to remove the component of dependency on goodwill and trust within our governance model. Any ideas? An Evolution DApp where users vote on these updates, maybe?
Edit: Maybe I should clarify something: For some cases I mean for a solution other than voting the entire proposal down and stop payment altogether, even though my example doesn't reflect this, unfortunately. It's about paying less for receiving less. The proposal can still be good (like BTM integration), but should be foolproofed and avoid wasting resources. Other cases (like one time payments) are mostly about wasted funds with no ability to reclaim them. In any case: Payment should occur after delivery and validation of performance.
Last edited by a moderator: