Search code examples
blockchainhyperledger-fabrichyperledger

Hyperledger Fabric - Is it the right framework for asset transfer among users?


I would like to use Hyperledger Fabric to do asset transfers among millions of users.

What I had in mind :

  • single organization containing millions of users
  • smart contract that handles asset transfers (asset will be a custom data -like a token)
  • A DAPP will invoke smart contracts with user identity

I want a private blockchain because there is no gas fees for invoking smart contracts, writing to the ledger and users are known. I want a trusted ledger so users can check that the asset transfer has been done correctly and no token has been "stole".

Does that makes sense ?

Also who will be the peers ? Some random guys among the users ?


Solution

  • Hyperledger is a consortium blockchain, meaning that only pre-selected participants (organizations who run peers, orderers,...) are involved. This type of blockchain is not open to everyone, but semi-private. A private blockchain has one participant who has control over the rules of the blockchain. This kind of blockchain doesn't have a technically meaningful use case and one should re-thing if database makes more sense. Often an implementation happens either because of lack of knowledge or for marketing reasons (blockchain is a hype and not-knowledgeable users will fall for the buzz-word and trust the implementation).

    I've been working on several projects where managers wanted a blockchain for marketing reasons and through out the project we could never justify the use of this technology.

    In Hyperledger Fabric we have several roles (user, peer, orderer, ...). They all have identities. Peers are those who run the nodes (node can (doesn't have to) consists of the world state, smart contract,...). A user will have a differnet identity than the peer and will have to be enrolled separately. While it is possible for a user to set up a peer on a machine it isn't a common practice. It would be other organizations that will run peer nodes. For example if you're a bank and want to keep transactions private but still want to establish trust through the blockchain. In this case you would have a consortium blockchain where you could run one node and further ask an insurance company to run another node for you. This is a set-up I would recommend in your case as well.