How do you know that your contract is secure? Or if it is not will you qualify for an ETH hard fork as well?
Logic question.
The part of the code related to money is very simple. Anyone will be able to audit the code.
Of course , since everything can happen, the community may need to "make adjustments" to the code, and as you know, once you deploy the contract it is not possible to change anything.
ARK is modular. If the problem emerges in one of the modules, it is really not a problem.
If the problem emerges in the "core" contract (the real collaborative market, where the bots are and the multiplexers operate) so things become more "problematic".
This is how we move in that case.
We find the problem in the code
We fix the code
We deploy again
We create a TRUSTLESS BLUEPRINTER CONTRACT
We connect the blueprinter between the old and the new ARK
We click a button
We transfer the properties
We deprecate the previous contract
We use the new one
And anyone can see that the blueprinter is just a smart contract
and it is not possible to have any errors
But I am talking about some kind of bug
I make an example:
ARK sends invoices to customers, and registers the bills in the memory
each bill has a number
Now imagine there's a bug and all bills have the wrong number
something like bill 1 is actually bill 2
and bill 2 is actually bill 3
so all bills are messed up, with a x-1 number
This of course isn't acceptable and must be fixed
About money..
The meaning of the collaborative multiplexer is that the income isn't waiting in the system until we reach an amount, but when your bot serves the customer you can withdraw.
YOu probably withdraw because you want to invest somewhere else
I think there won't be big money inside the contract
maybe few eth
If there are problems, I will be the one in charge to fix... lol
So far I am pretty comfortable.
If someone comes and finds a way to steal all the bots, well, everything is registered
Anyway the code is relatively simple
THE_DAO was an articulated system
I modularized ARK, but one week ago it was a single contract
So pretty simple. If you aren't a super expert you should be able to audit it quite quickly anyway
Look here the widthdraw function (so simple):
function withdraw(){
uint t=balances[msg.sender];
balances[msg.sender]=0;
if(!(msg.sender.send(t)))throw;
}
If you find a way to steal money from this, the ethereum foundation will give you a huge bounty
(me too lol)
Any suggestion is welcome
I hope I answered to your question