First, I'd like to apologise to the community for not contributing nearly as much to the discussion this weekend as I intended to. Unfortunately I have had a migraine headache brought on by the intensity of my thinking about this project. (Guys, I am physically suffering on your behalf.) I spent much of Saturday lying in a darkened room. Today, Sunday, I decided to take the afternoon off to go for a good long walk to help clear my head. I also accepted an invitation to dinner this evening. There is still only so long that I can stare at a monitor at a time before I have to retire.
For what I see in the withepaper, the arbitrary works won't be for secure the blockchain, but for reward the workers "aka miners".
That is correct
If this is the only purpose of this coin, won't be maybe better include this feature in a coin which already has some value?
First that is not the only purpose of the coin, at least in so far as I conceive of it. I want this coin to be the best, most useful coin for general purpose trading that it can be. To that end, I have consistently advocated low to zero transaction costs, and built-in escrow. The latter, of course, is also necessary for the mining function - the workers will need some assurance that they will get paid for their work, while buyers will need some assurance that they won't end up paying miners who don't do the work, or produce incorrect results.
Why not an established coin? The reasons for that are partly historical. The project was founded by someone calling himself "Lionel Keys". A brief googling on that name turned up nothing beyond this project, so I assume it was a pseudonym. Lionel expressed great confidence in his original plan, which included the use of arbitrary work to secure the blockchain, and started the crowdfunding on that basis. My judgement was that his entire plan was a shambles. Despite Lionel's claims to have security proofs, which he never showed us, I found several vulnerabilities in his scheme, the most serious of which (the infamous Faster Algorithm Attack) rendered it unworkable Lionel ended up transferring the project to Evil Knieval and ceased his involvement in it at that time or shortly afterwards. It is unclear to me whether Lionel was an out-and-out scammer who never had any intention of delivering his coin, or if he intended to, and believed that he could. If he did believe that, then he was wrong.
When EK took over, he made the decision, against my advice, to continue the crowdfunding under the same terms before he had had time to sort out website and whitepaper, while allowing only a very short period for people to withdraw their contribution. Thus, under his tenure, crowdfunding continued on a website which was still largely promoting Lionel's plan, which we knew at the time was unworkable. We were openly discussing what we could and couldn't do in the threads here, so an attentive reader would know what he could and couldn't expect, but many people aren't that attentive.
Consequently it is in my view, our moral responsibility to adhere as closely to Lionel's original plan as is feasible, while recognizing (and being open about the fact) that many aspects of it are not feasable, and some things not even possible. That plan called for the creation of a new coin.
There are also good non-historical reasons why we need a new coin. First, we are going to be attaching an awful lot of data to our blockchain. I think, if we went up to some other coin and said "Hey guys, we've got this great new project we want to build around your coin, which is going to increase the size of your blockchain by a factor of a thousand or more. By the way, we don't even know for certain whether this project will work, though we are very hopeful", we might meet with some resistance from their current users and devs.
Second, a new coin allows us more freedom to choose the core features of the coin. Currently consensus appears to be coalescing around Proof-of-Stake and Mini-Blockchain. I know of no established coin with this particular combination. Do you?
Third, when considering what features we need to add to our coin, in order to allow the market infrastructure to work, there will be no other devs or users with competing interests who might object.
Will this feature can be added to any other coin with same codebase?
The project is open source. It will be open to the devs of other projects to incorporate our ideas, and even our code into their coins. Whether they do or not will be a matter for them.
In the other hand, I don't have almost any clue on how the checking of the processed pieces of work will be done, how will you know if the result is correct if no one before computed it?
Section 2.4 of the whitepaper purports to explain how we will do this. I say "purports to" because it is still vulnerable to a devastating attack which I have yet to explain in detail to the community. I had intended to do so this weekend. I will try to do so this week, headaches, and real-world commitments permitting.
I have yet to persuade my fellow devs that the Section 2.4 scheme is not just broken, but irreparably so. I'm not happy about that, as it was substantially my idea in the first place. I have some ideas amounting to a completely different approach as to how we will be able to provide buyers with
some assurance that their results are correct, which I will articulate in due course. They are quite low tech, and not without their own security risks, but those risks are well-understood. I don't believe less-than-bulletproof verifiability will be a project-killer, after all, centralised commercial cloud-computing provides no verifiability at all, yet it flourishes.
The target of this "coin" will be mainly build the toolkit for allow scientists or other in need of computing power recruit the necessary resources? I mean, the problem I mentioned above will need to be solved by the coders using the toolkit you provide or this toolkit will already have an easy to implement mechanism for check the validity of the processed tasks?
We will need at the very least to produce a software development toolkit, a miner's package, and a wallet. If my ideas are accepted, then they will work together to provide several mechanisms to allow buyers to give themselves some assurance that they won't be paying for incorrect results, while simultaneously allowing workers to give themselves a similar assurance that they will get paid for producing correct results.
And... I understand that the reward to the miners comes from the one in need of computing power, "he need X flops and will pay Y coins for each flop" so he subbmit the required ammount of coins and the network distribute it among participants, right? Ant the transactions fees goes to "POS" miners or to the "workers computing the workunits"?
It's more likely that it will be "Y flops for each coin". But it won't be flops as such. We hope eventually to implement this on a wide range of hardware, so we will need a custom metric which will approximate to the average effort expended by the various processors, or at least the processors capable of running that particular program. Obviously if a program contains CUDA commands then it can't be run by a CPU-only miner. And the system should ensure that no miner receives a job his hardware is incapable of or unsuited to.
Section 2.4 of the whitepaper does in fact describe a custom metric, namely the buffer B which is filled at a constant rate. I think this idea is still workable, indeed improvable, so long as we do not rely on it in the form given in the paper to provide verifiability.
I hereby propose that the unit for the custorm metric be called "the computron".
Anyways, I still don't know how you will manage to split in little portions any kind of work "nice if you found a way
" but for what I read, even boinc, folding@home or any other project work with redundant workunits which are computed several times from different members and then results are checked, right? so... did you found the way to achieve this?
Well, boinc is an infrastructure, as is our project, which allows for a range of programs to be run. I don't know much about it, what its limitations are, etc., nor do I know much about folding@home. I am
very familiar with
GIMPS. Some of their jobs take weeks, months, or even years to complete, though the latter are not handed out routinely.
The idea that we can prove program execution correct or provide any kind of security by running it in 10ms segments at a time is dead-in-the-water, and I see no point in not just running it from beginning to end, or until funds run out. Nor do I see any reason to impose arbitrary limits upon the duration of a run. If both buyer and worker are willing, and if the buyer has sufficient ELC, then I don't see why programs lasting days, weeks, or even years, shouldn't be run. On the other hand, it should also be possible for a worker to generate a save file, and return that to the buyer.
PD: Didn't followed the history of this coin, so maybe this things has already been addressed
Much of the above has been said before, but it's scattered across multiple posts in several different threads. It's good to get it all down in one place. Perhaps Lannister would consider adapting this post into a technical Q&A on the website.