What would happen if I wanted to render a video using Elastic? Would that be a viable use case in the first place?
I hate to say this, but I think having some kind of reputation system on the network would solve a lot of problems. Regarding possibilities how to implement it, look at my previous posts.
Yes, I believe that would be a viable use case...I don't have any concerns about the bounty system as proposed. Also, I do like the idea of a reputation system; however, that doesn't solve the issues I'm seeing. To me the main issue is the potential for miners to exploit the system...and I don't mean attacking the system, I just simply mean creating custom miners that exploit weaknesses to maximize their rewards. Ultimately, we need to find a way to get people to want to mine xel and ensure them that dishonest miners don't get an unfair share of the rewards.
Well in my eyes, this should be not a big problem. In all crypto currencies that I have seen so far people start developing faster and better miners. Luckily most of these solutions end up open source, which is why everyone can get the benefit of an alternative miner.
So I wouldn't call it "dishonest".
Hard but honest words. I don't get half of it, unfortunately, but I thought about a related issue: The traditional PoW system is "hard to solve, easy to prove". However, depending on the particular job, this doesn't need to apply to elastic in the same sense, since some jobs don't need a lot of "random computation". Thus, to prove that a solution is actually correct, another miner would have to repeat a very power intensive computation.
In the worst case, this would limit the kind of tasks you could use Elastic for to those similar to PoW functions.
Am I wrong here?
Maybe a little ;-) The job functions are particulary easy to calculate, we even have a WCET (worst case execution time) limit for them. So one execution of such function is very quick. A miner has to execute this functions hundreds of thousands of times, if not millions, with different random input values until he either finds a bounty or a viable PoW solution. All the "trial and errors" are of course not verified, just the one execution with the correct inputs.
Maybe...depends on how people define the purpose of xel. I always thought it was about getting a group of miners to join resources to solve complex problems. However, under the current design, if I was going to mine xel (I don't have a mining rig, so I won't be), I would probably customize my miner to focus only on POW and ignore bounty calcs until I saw a scenario that I felt it was worth going after the bounty. So the miners can just chug along collecting POW rewards without doing any of the bounty work.
If we can't convince people that all miners are working on the bounty calcs, why would anyone invest in renting our hashpower. Seems like they'd want some guarantee...but from the responses I've seen in earlier emails, I'm not sure this is the case. From what I've read the thought is that they will set bounties so high that it will ensure miners work on their project. I'm just not convinced as there are a lot of variables here to determine what is profitable to miners.
We can discuss on this point a bit more if you like. This is the exact reason why we have the bounty fund, and we have different payouts for proof of work and proof of bounty.
After all, the search for a bounty and the search for a POW share the same code, i.e., are performed paralelly at the same time. The only thing that differs for the bounty search is the last line of code, the verify statement. If you have gone the entire way until the end of the program, checking for the bounty is not a big deal anymore.
Sure you could drop the last check if you only want to go for the PoW, but from the logical point of view it would be stupid not to perform the execution of the last line of code, if there is an interesting bounty waiting to be claimed.
Otherwise, if the bounty reward is close to zero, nobody would bother about executing the last line of code!
The system right now sort of works in a way that it allows the work author for attaching bounty-rewards, which then encourage the miners to execute the full N lines of code of a program, instead of just N-1.