4

Since Solana programs can be updated without changing their program Ids, as mentioned in the below link: https://docs.solana.com/developing/on-chain-programs/deploying

End-user still remains on the goodwill of the protocol developers to work in good faith. But it's similar to trusting Twitter, which can take their blue ticks away overnight. Similar things can happen if the protocol is updated and the program id never changes.

Moreover, there is no way to always know the source code of the program deployed on the Solana blockchain. So, end-users will never have any clue what updates are happening in the protocol.

How is Solana fundamentally decentralized then, if developers can update the protocol without their users' consent and knowledge?

In Ethereum, every-time a smart contract is updated it gets deployed at a new address, therefore it is up to users to migrate to the new version or still keep using the older one.

Edit-1: Here, by protocol, I mean the set of programs(1 or many) that are deployed to fulfill a use case.

3 Answers 3

4

You can freeze the program after it's uploaded, or assign the upgrade authority to a multisig.

1
  • Still it is upto the program developers to freeze it or not. Magic Eden is one the biggest protocol in Solana, but still there program is upgradable. solana.fm/address/… Oct 26, 2022 at 19:25
2

Technically Solana is decentralized. You make request RPC servers, RPC servers do the first check and then pass it to the validator nodes which are the backbone of the solana blockchain. validator nodes are deployed around the world so that in case of natural disaster system will still run. (sometimes solana blockchain goes down that is mainly because of low fees that encourage bots and hackers to attack. It has no effect on the term decentralization but it makes Solana an unreliable system.) The more validators solana has and the more they spread out, the more decentralized Solana is. (Imagine all the validators are in the same apartment, how decentralized will the network be)

To run a validator node, you need staking. Validators vote on proposals and if it is accepted their validating rules changes. the meaning of decentralizations is "the transfer of control of an activity or organization to several local offices or authorities rather than one single one.". Based on this dictionary meaning, validators make the Solana decentralized.

Even though technically (by definition) Solana is decentralized, in order to bring investment from big corporates, they have to work together with the authorities (this is true for Ethereum also). For example, in the USA, trillion dollars worth of funds cannot invest because those funds have to follow the rules of the Securities and Exchange Commission (SEC). Authorities will not let a parallel financial system, they want to control the entire system.

Solana has a headquarter and CEO. How come it can be fully decentralized? I think we are in the transition mode from a centralized to a decentralized system and it will take more time to reach fully decentralized systems as part of our life.

There is a great article related to solana upgrade authority.

Let's talk about the basic solutions for how the upgrade authority of a program might be controlled. Each is on a spectrum of the trade-off between decentralization and ease of upgrade; if you have more of one, you have less of the other.

So What Should You Do? ¶

Always make sure that you know the risks before putting your money into a DeFi protocol. Part of this is the risks that come from poorly managed upgrade authorities. Always consider who has access to your funds via the upgrade authority and how well they protect their keys. Is there a multisig to ensure that no single party can make off with the funds? Is whoever holds the keys doxxed? Do they keep their keys in a hot wallet or a cold wallet?

Unfortunately, there is no documentation on managing your upgrade authority properly, so we can forgive projects if they don't follow best practices. This results in the unfortunate reality that most Solana programs have a single hot wallet upgrade authority. We hope this blog post doesn't just serve as a guideline for users but also for devs in their considerations on managing their upgrade authority.

3
  • Agreed, the way Solana works is decentralized, depending on the number of validator nodes. But here the question is does Solana Ecosystem foster true decentralization where the end users have control or knowledge instead of program developers, asking users to trust them blindly? IMO this is no better than trusting banks/youtube to update their policies internally overnight, code in this case, and their users have no option but to agree with them and keep using them or leave the platform, and loose faith. Oct 27, 2022 at 4:35
  • The blog that you shared also says: Each solution for how the upgrade authority of a program might be controlled is on a spectrum of the trade-off between decentralization and ease of upgrade; if you have more of one, you have less of the other. Oct 27, 2022 at 4:36
  • @ZeroGravity Looks like you got your answer then :)
    – Yilmaz
    Oct 28, 2022 at 18:58
1

You're confusing programs with protocols.

Solana the protocol, and its level of decentralization, is a different proposition from any given program deployed to the network.

There are any number of designs and approaches to writing software that lives on Solana. And yes, some of these involve a great deal of trust in the authors of the code. This post discusses the issue in detail: What can I change in a Solana smart contract after deployment

As for not knowing the source code you are incorrect here. There are in fact ways to do this (that's what the whole "verified" bubble means when you look up programs in explorer.solana.com). Look into anchor verify. There's even a good website for looking programs up, but I apologize I can't find it at the moment.

2
  • Questioning on the way Solana is designed. All programs do not have verified bubble. E.g. M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K, this is magic Eden V2 program, which is the biggest NFT marketplace in Solana, but it's anchor unverfied, upgradable, & no security.txt. There is no way one can read the deployed source code of their program. Instead of trusting evolving tech, and anonymous programmers to keep their user's best interests at heart, why not just trust Banks/governments who have 100 years of good track record behind them & are bound to legal consequences? Oct 27, 2022 at 4:48
  • This is not about Solana's design, anyone can ship a program non-upgradeable. This is about user choices. Everyone gets to make a choice as to what code they write and deploy, and what code they touch. When it comes to balancing the risks of non-upgradeable vs upgradeable programs, you have your opinion, others have theirs. You seem to want there to be no choice to upgrade by design, other people think that's actually less secure and a worse design. Or to quote The Big Lebowski, "yeah, well, that's just like uh, your opinion, man."
    – HelmetFace
    Oct 28, 2022 at 15:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.