There is a substantial precedent for various marketplaces getting trashed by copycats who reproduce original works hundreds of times in order to capture the lion share of the benefit by diluting out original authors. Is there a threat that something similar could happen with Solana programs within the "marketplace" (metaphorically speaking) of the Solana blockchain? If so, what could help mitigate this?
-
1I would argue that obfuscation and intent to conceal goes against the idea of blockchain and development on web3. I also personally would never interact with a Solana program that isn't open source. Everyone who builds should aim to get Anchor-verified. With regards to copycats, anything open-source will always end up getting copied. It's just the way it is. Original projects will be king, and Jacob highlighted it well—getting traction on your program, especially if its a copycat of a known program, is a biggest problem.– verata-veritatisCommented Jul 24, 2022 at 5:26
-
Sugg: rather than just declaring a general fact, cite verification of the fact(s) cited (e.g. sentence 1). What has your research of Solana development shown to address sentences 2 and 3?– MmmHmmCommented Jul 26, 2022 at 0:34
4 Answers
While the binary code itself can easily be copied, I would say most real-world programs that solve any non-trivial problems will have sort of feautures built-in that gives the creators some form of authority.
As an example, let's look at a typical program.
There is an upgrade authority, and only that upgrade authority can upload new versions. The copycats would have to track that and then update theirs as well.
There are usually some privileged instructions in the program that only the admin can execute. The program checks if the the admin is a signer, and if not, rejects the execution of the privileged instruction. So any copycat wouldn't have access to my admin backend, which makes the program pretty much worthless to them.
People use Solana programs to sell things, generate rewards, etc., and the proceeds all go to a seller wallet. Any copycats would just help filling the seller's wallet, not theirs.
As mentioned before, any copycat would need to find people to use their copy instead of the original - which is a task that requires a lot of effort.
-
In light of OP’s question being about program copy, I think it’s important to point out that at least points number 1 and 2 refer to ways to make permissioned programs, i.e. the operation of which is tied to an authority of some sort (~admin), as opposed to permissionless programs which allow anyone to create and manage a certain resource (liquidity pool, market place, etc). This does nothing to protect said program from being copied, and re-deployed under the authority of the copycat.– man0sCommented Jul 24, 2022 at 18:01
When you deploy a solana program only the programs' bytecode is uploaded to the network. That itself can be rather obscure and difficult to make sense of.
I haven't heard of any solution to prevent people from cloning other peoples programs.
Programs can be "forked" and redeployed just fine. Ultimately the program that beats others is the one with the best features, UX, and speed to shipping.
You can dump a program and redeploy:
solana program dump -um <program_address> program.so
Solana program deploy -um program.so
You can copy all you want, but getting traction on your program takes a lot of effort.
Not sure I see a great difference with the original question, in light of the answer I gave there. Solana is a public blockchain => your binaries can be copied.
Whether or not your whole product will be copied is purely a game of incentives. If the reward for deploying a copy is greater than the cost of reverse-engineering / re-implementing / deploying, you're exposed and odds are copies will pop-up. As such it's a project's responsibility to find moats, i.e. ways to maintain a competitive edge in the face of jack and joe deploying a copy of your hard-built product.
In this context, being closed-source, having minimal docs, etc are just obstacles to throw in the way of copycats to increase the cost of copying. However using these tactics needs to be carefully considered, since they have an impact on your own product onboarding/traction.
Also if anything, it'd be interesting to have more concrete examples out of the "substantial precedent" you mention, to anchor the discussion.
-
Thank you for your good response. My kids play Roblox and their marketplace is trashed because of this, and given the size of Roblox, a fairly substantial precedent. None of the things that cause that might apply here, or it might not be relevant, which is why I ask in order to explore. Also, the question about where this question should be asked will be discussed in this meta question here: solana.meta.stackexchange.com/questions/13/…– OCDevCommented Jul 24, 2022 at 17:19
-
1Gotcha. Definitely don’t mean to discourage you from asking. We’re figuring out how to make this thing work best, every effort is appreciated 👍🏻– man0sCommented Jul 24, 2022 at 17:50
-
This community is excellent and it is a pleasure being among you all. I trust the wrinkles will get ironed out.– OCDevCommented Jul 24, 2022 at 19:08