Permissioned blockchain with Algorand

Hi, I would like to have an opinion about permissioned blockchain with Algorand.

I followed the guide to create a private network Create A Private Network | Algorand Developer Portal and I still don’t understand at all if Algorand Permissioned could be a good competitor of Corda or Fabric.

Maybe with the future co-chain’s release It will be more competitive?

Thank you!

Hi, i dont understand your question. Can you please describe more in depth what features are you looking for? In your link on how to run your own custom algorand network i have not seen a word about the permissions…

On algorand you have permission to make transactions only in 3 cases as far as i understand:

  1. if you have private key to the account
  2. with multisig signature (more accounts with parity is hashed and public account addres created)
  3. with smart contracts (at stateless contracts the account address is basically the hash of the application, if you validate with the application you basically sign transaction with it)

I dont think that co-chain is meant to make cochains with private networks, but time will show.

Algorand is a permission less blockchain network. So anyone with token can join the network. If you would like to limit who can validate, then you would need to strictly control who will have your network tokens. Same for sending transactions. Other solutions:

  • limiting on a network level (very fragile)
  • changing the consensus algorithm (you need to check the license first).

Hi @AndreaReguzzoni,

Note that potentially you can also build permissioned dApp or permissioned ASA on the Algorand public and permissionless network.

By properly managing ASA or Smart Contract you can have permissioned applications that restrict the interaction to a specific subset of users, according your requirements, like: KYC, membership, etc.

very helpful thread i must say

Yeah sorry, i have to be more clear with the question!
I’m comparing Corda and Fabric with Algorand private network cause you’re building a permissioned blockchain If you build a private network Algorand with only Relay nodes!

I was trying to realize how implement components logic like ordered nodes or channel with Algorand!

Thank you for the answer. What do you think about to build a permissioned ASA on Algorand blockchain public?

Thank you for the answer.
Have you got any example of a permissioned ASA? I didn’t find any guide or github example

Hi @AndreaReguzzoni

Creating a permissioned ASA is really easy: you just need to specify the DefaultFrozen property as True on asset create.

Once the Frozen ASA is on the ledger you can give “permissions” to specific accounts to enable them in transacting (both sending and receiving) that ASA.

You can follow this example to learn how to manage Freeze/Unfreeze operation through SDKs.

On the other topic: permissioning on Smart Contract is something you have to define with your custom rules/policies by leveraging users’ local states in the Smart Contract, for example: you can have a key/value pair KYC local variable that is initialised as False on users’ opt-in. This key/value pair could maybe updated just by a specific account (the KYC provider) or another Smart Contract (acting like a decentralised credential verifier).


@AndreaReguzzoni, notice also that the FreezeAddress of an ASA could be any type of Algorand account. It means that the ASA permission distribution could be done by a single human being (with a regular account), by a group of people (with a multisig account) or even by a program (by assigning the FreezeAddress to a Smart Contract).

This is very needed, most notably for securities. We implemented a template for this: