Given you plan to use a private, permissioned, gas free network run (initially) by 1 entity, users have to trust that the developer won’t change the blockchain, you could potentially use a centralized database, especially if the blockchain is being abstracted for the user. I assume the reason for using a blockchain is the potentially for multiple entities to run it.
Correct, my ultimate aim is for the blockchain to be run by multiple entities, taking power away from me. However in reality it’s by no means an easy feat to get anyone to jump on board straight away. My plan is actually to create a centralised permission system using a conventiona/centralised database first and then “upgrade” to a decentralised solution. as creating Dapps require a different way of thinking i am trying to come up with a solution in solidity first, which will influence how i build my permission system in the conventional/centralised DB way. The idea being it will be able to easily “upgrade” when the time comes.
example simplistic thought process:
If i create a centralised/conventional permission system in a DB using Ethereum compatible public/private key pairs, permissions can simply be migrated into contracts. For example, in my conventional database public key X has permission to see public key Y’s resource. then when it comes to upgrading to a blockchain solution, these permissions (through public keys) can simply be passed into the constructor of the users permissions contract.
in theory the upgradable proxy method will be used. The users private key from the conventional solution is used to deploy a proxy contract making the user the owner and the existing permissions are passed in through the constructor. essentially “migrating” permissions from one solution to another.
Is there a reason why you couldn’t use a public blockchain?
I assume gas cost could be prohibitive on mainnet, depending on the number of transactions users would need to make and the number of contracts you would need to deploy. To get lower cost transactions you could look at POA Network or their xDai chain.
Pretty much what you said is the reason why i do not plan on using a public blockchain. The amount of contracts i will be deploying is high, i will also have a high amount of transactions.
Quick example: each “organisation” that wishes to use the network will have users under their organisations. there will then be general users. the organisational users will create and update “records” for general users regularly (records are hashed and the hash is stored on chain to ensure validity of the external data) as well as this there will be constant on chain permission changes. As well as the high throughput, the block-time on the mainnet is to high for my use-case. Also the blockchain will be abstracted ish. Idealistically id eventually want it to be a system where the user has a choice of “here are your keys you are free to interact as you want and be as secure as you want” or “Ill do less secure key management for you if you personally don’t really care about the tech or do not want to take the time to understand the tech”.
having to use Ether is a hinderance to the user and the organisations, who care about the features a blockchain brings, but do not care for using software where they have to pay on a transactional basis / keep accounts filled with gas (which is also highly volatile) / care for how to use the technology etc (i’m aware of using gas stations but i’m not rich). The user base is people that care about security, immutability and trustless systems but don’t care enough to pay for it or learn to properly use technology which benefits them (sadly). Sorry about the vagueness of my project i’m not really allowed talk about it in depth
I see blockchain technology the same as end-to-end encryption on messaging apps, its an amazing technology that is greatly needed. Most users don’t even know of / have heard of the technology or know why they need it but they do. imagine you have a hypothetical app “WhensApp” that uses RSA encryption to send messages. with all the government spying that is going on everyone needs this tech. but if you tell the user “this is a private key you must do X Y and Z with it, if you loose it you loose your messages, it will cost you X amount every time you send a message. so make sure you keep your ‘wallet’ topped up with this volatile token. oh and to get this token you must send GBP to company X then trade for the token on the open market, then send it here to use it” …etc the masses are not going to use it. Instead we need to come up with ways to abstract this from the user experience by making secure key stores, signing messages for users, coming up with ways to move keys seamlessly etc (you get the point).
This is a long convoluted way of me saying i’m trying to implement a technological solution that is greatly needed and the organisations using it know it is needed but they do not care to take extra steps / learn the technology or pay for a solution transactionally
i don’t necessarily fully agree with the solution i’m proposing but as we all know bridging the gap to mainstream is by no means easy. In a world where we are so used to free software or “buy it once use forever” software, combined with using a (necessary but) hard to understand technology. its a really hard sell to make Apps on a public blockchain and expect users to pay for executing functions.
sorry for the mini essay figured id just try explain my rational.