Building a Execution Protocol on the Safe Network

Hi guys, I’m building a decentralized protocol where services are executed across a network of nodes. It’s like running a process on a device with millions of cores but each core demands money for execution.

When a service is to be executed by a node (employer), To ensure correct execution a small committee of anonymous nodes called the whiteroom execute the service and vote on the execution’s output.

How does Safe Network come in?

As said earlier, the whiteroom has to be anonymous. but when an employer node wants to give the service to be worked on, whiteroom nodes have to search it out to work on it.

This means the storage platform has to put in an anonymous storage platform that no central authority controls, and the employer node must not know the nodes that come to fetch the service as it could reach out to them and corrupt them in the committee.

I’m working on SAFE being the storage layer as it fulfils all the intended anonymity and functionality.

This is the whitepaper of the project: Marketplace-whitepaper

Tell me what you think.

11 Likes

I got half-way through a few days back, but will read the rest when I can.

From the part I read, it sounds very interesting, though I can’t say I’ve yet built a strong grasp of it.

Looking forward to digging in further, and I wish you the best with the project. I’ll provide more feedback, for what it’s worth, when I’ve had time to read more & think about it a bit. Hopefully some others with more technical knowledge will do so too.

2 Likes

Thanks, I’ll be expecting your reply

2 Likes

I’m still reading through your whitepaper. Very interesting. I have some questions at this stage:

  1. Fundamentally, what are some key differences between your approach and something like the Internet Computer Protocol?

  2. It appears that you’re basing the speed/quality of a device on the VDF computation time. This can be accelerated in hardware using FPGAs, for example. How do you combat people gaming the system with hardware like this?

  3. Is this GDC token already existing or a new token proposal?

3 Likes

I finished reading it, and will add my thoughts for what they’re worth, but I’m not a dev, and I’m not that familiar with alternative protocols for decentralised computation.

Overall it does seem interesting.

To get a better understanding of what this could do, it would be great to have high-level use-case examples and, as Zettawatt requested, a comparison with ICP and other appropriate alternatives / analogous technologies.

Scalability given the frequency of transactions on the system does seem likely to be a challenge, so it was good to see the suggestions for future development including sharding/partitioning of the mempool.

The effectiveness of pruning of the blockchain is something that I’d be interested to hear more about, as having a global chain for the potentially massive number of transactions all happening at the same time seems like a potential limiting factor.

Regarding Goldcoin (GDC), what was the thinking behind the name? It seems to have very different properties to gold from what I can see, with its flexible supply & peg to a unit of computing work. Might a name that reflects its nature make more sense, e.g. WorkUnitToken or something?

Other questions / thoughts:

  • If a whiteroom size were 100, does that mean the same compute task is run by all of the 100 participants?
  • During the proof-of-capability process, how is the ‘standard time’ set, and how does it develop over time, e.g. average hardware gets more powerful, or network attracts faster hardware over time etc? Does it automatically balance to be an average amount of the computers on the network?
  • Is there a clear benefit to be utilising a token that is pegged to a unit of compute work, or could a single, fixed-supply token carry out the task (e.g. GTT) with the market setting the price per compute unit?
  • If I were operating a node, I’d prefer to earn a token that may appreciate in the future vs one that will likely devalue over time in FIAT terms… but perhaps the idea of a ‘stablecoin’ tied to a unit of computing rather than a fiat currency has some appeal?
  • GTT’s 10 year unlock schedule for public sale participants seems very long, and would put off some investors. The fee-sharing and governance utilities of GTT’s token would add value, but if it were also a utility token needed for every transaction, it’d likely drive more value to the token as the network grows, and therefore be more appealing to investors.
  • 35% of GTT for the Marketplace Company seems high, but as long as it’s putting in as much pro-rata as public investors are, that may be fair enough.

Also, the link to the discord isn’t working any more - do you have a new place for a community around this?

Those are my thoughts for now. Hopefully they’re helpful in some way, and I hope you can make some progress to build a proof-of-concept for this system in due course.

1 Like

Thanks,

First, you asked what the key differences were between ICP and the Marketplace is: Personally, I view ICP as a direct descendant of Ethereum in that all nodes on the network synchronously execute the same computational work at the same time, which can be expensive and slow. This is because the nodes have to agree on the state of the chain. The ICP also has a very high standard for node participation so as not to slow down consensus.

The Marketplace execution is extremely parallel because of the whiteroom mechanism. The amount of work done on the system at a particular time scales with the amount of nodes which is not possible with ethereum style network-wide duplication. Think of multi-core vs single-core device. There is also no barrier to node participation.

Network nodes directly pay each other for work, with no central authority. similar to a freelance website where the employer node meets the worker node and payment is direct.

You are right about the VDF’s potentially being gamed. But as stated in the whitepaper, there is no incentive to be faster, as it reduces their overall weight in the whiteroom. They would need a large amount of faster/more-expensive nodes compared to the network’s capability to game the whiteroom, and even then it’s impossible to game the entire network.

GDC is a new token, I created it as the custom currency of the system has to be tied to CPU cycles to be used as a standard between nodes.

3 Likes

Thanks for the reply.

Concerning a use-case, check out this interesting use case a redditor (u/Less_Result5615) suggested as a reply to my post on reddit: Example Use case

Yes, Whiteroom members all compute the same task.

The standard time does not really matter and acts as a placeholder given that nodes are competing with each other directly which means the earliest nodes get into the whiteroom regardless of standard time. But the only thing affected is the amount of money printed. Node that finishes the VDF in 0.1s will earn 10% of standard witness reward. So there may be need for changes to that standard value but the decision can be voted on later.

Yes, it is extremely important for nodes to agree on a deterministic measure of payment for work and be reflective of real-world costs so that workers are paid fairly regardless of volatility. GDC also has to be be available to a growing network to drive activity, and if the network shrinks, so does the GDC in circulation. You could say the currency is tied to the economic GDP of the system.

You are right about the node wanting to earn an appreciative token. But speculation is the biggest killer of crypto today. The stability of GDC can help with predictive spending for the average node (think enterprise adoptors building a stall). There is also the option to buy GTT with the earned GDC, and like that the node has a speculative asset that closely shadows the Marketplace’s growth.

That’s true. The project is still a work in progress, So I can correct that.

The funds of the company is going to be used to fund default apps on the platform, and invest into potential onboarding projects. Basically a way for me to get funds to drive activity.

2 Likes

Here’s what I think, after skimming the whitepaper, reading the comments here, and the Reddit post…

I’ve spent a fair amount of time looking into various limited-trust distributed computation options. My first thought is that you may be trying to reinvent the wheel. I’m open to reconsider if you can point out what Marketplace will do that fundamentally sets it apart from its competitors.

From what I can tell, there is a highly competitive landscape of existing solutions. Granted, I’m not aware of any that specifically use SAFE for their storage layer. For your consideration I’ll share some links in case any of these are unknown to you.

Some that came to mind: Risc Zero, Acurast, Cartesi, Phala

Also (some of these suggested by ChatGPT after providing it your whitepaper, some I had bookmarked): iExec, Golem, Akash, Flux, Secret, Holochain

I believe all of these are open source and that for the purposes of using SAFE, it could be significantly easier to integrate or fork one or more of these solutions - rather than building a new distributed computing platform from scratch.

I’m also aware of an Impossible Futures project (CanMan) which didn’t get enough traction, but I did talk to the developer on a video conference and was impressed by his experience and knowledge of containers.

Are there significant advantages that Marketplace would provide, compared to the existing solutions mentioned above?

2 Likes