Classical server-client architectures implement classical centralised access-control. The problem with that is that administrator with root access has full control over it what may represent unacceptable risk in some scenarios. There are multiple decentralised systems that do not have root administrators - like BitTorrent or Bitcoin (or Ethereum). However, none of them seem to have access control functionality in them. Are there systems that do (but are decentralised)?

  • You've named one example yourself. Bitcoin has access control. If it didn't anybody could access your wallet and take all your money. It's also decentralized in that you can create transactions from your wallet from anywhere in the world only by knowing your private key. Anybody you give your private key to also has access to the wallet. It's decentralized, because there is no key escrow service that holds all the private keys of all wallets. Does that make sense? What exactly do you understand by "decentralized access control"?
    – Artjom B.
    Commented Dec 25, 2017 at 10:29
  • Bitcoin is a distributed system, but its access control is not decentralized. There is still the "single" root of trust - owner of the wallet. That owner has unlimited access to what he can do with that. There is no separation of privilege. Decentralized access control would have multiple root of trusts - multiple separate server/admins/users that can grant the access. Commented Dec 25, 2017 at 11:05
  • Of course, there is separation of privilege. Anyone who has a wallet can send you some coins, but only the holder of the private key can send coins to others. Multiple admins makes only sense if you want to revoke access, but that is an issue with distributed systems that is not solved efficiently and likely not achievable for truly decentralized systems.
    – Artjom B.
    Commented Dec 25, 2017 at 11:21
  • Not only to revoke - but also to restore access. I see no fundamental reason why that can't be done - majority of nodes just need to agree on that. BitCoin can't do that of course - I was wondering about distributed systems that could.. Commented Dec 25, 2017 at 15:36

3 Answers 3


Use MFA and split the authentication pieces between separate parties or several pieces of information required to generate a hash used as a password.

Someone who wants access requires the two pieces much like two keys to open a single door.


Firstly, the (partial) answer to the admin problem is Privileged Access Management (PAM). This is typically a bolt-on system that uses higher level processes (perhaps with one or more humans giving authorisation for example) to give temporary privileged access. This is increasingly common and you will certainly find it in use in any global cloud provider.

I'm not so sure about your actual question. I can't think of anything off the top of my head, perhaps others know more.

However, a second possibility that is also increasingly common is to use federated identities. In the past, implementing identity federation was a horribly complex and expensive process. However, with the advent of things like Azure Active Directory and Azure B2B, this is becoming rapidly easier. In this case, you still have central control but of a much smaller "centre" - so, for example, organisations that want to collaborate and share services may confer some level of trust to another organisation.


What you ask can easily be implemented in Ethereum smart contracts, using modifiers. Basically you can build functions in such a way that they can only be called by given addresses. The allowed addresses could be a variable themselves, which may be changed by a user with even higher privileges (with another function with modifiers).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .