we can achieve network security and transaction processing by simply ensuring with infrastructure related measures that the trusted nodes or in fact any nodes which assist in transaction processing don't run a malicious software.
How does that work? I would like to believe there is other way to perform transactions than using PoW and PoS to check the account/address balance, but how does that work with "infrastructure related measures"?
Trust in the currencyYou quoted Armstrong in your above post. Armstrong stated in one of his interview that the trust in currency is nothing else but the trust in the government. The currency of the ancient Roman Empire was an universal medium of exchange as long as the symbol of the Roman government was on the coin. Similarly, the US dollar value is based on the trust in the US government and according to Armstrong that was the case even before 1971 when the gold standard was the monetary system. The strong governments ensures that the currency and its ecosystem, the banks, payment processors, credit card issuers are regulated and can be trusted.
We believe in digital currency the trust is pretty much based on similar factors. There are organizational and ecosystem components in the trust, though due to the decentralized manner of digital currencies the developers who governs the software have a less significant role than the government in FIAT. Still, trustworthy developers could establish and increase the trust in the currency (for instance Vitalik Buterin with Ethereum who is also mentioned in your post) in the sense that users will assume that trustworthy developers will release trustworthy sources and binaries for download. The ecosystem, namely the software is the most significant element in the digital currency trust. PoW system such as Bitcoin utilize miners to ensure the trust. Ironically, even if a trustworthy software in place - which is the case in Bitcoin - 51% of miners could compromise the trust. PoS systems rely on the staking, but the 51% attack is more or less an issue. Not to mention the politics, centralization of mining and large coin stack that are related to PoW and PoS systems respectively.
When we started to design GadgetCoin the basic assumption was: if the users execute a trustworthy software (which is clearly the case with Bitcoin), but some of the users can still compromise the system then there is surely a fundamental design flaw/weakness in the protocol. We thought it is reasonable to expect that if the users execute a trustworthy software then the system delivers the expected result. It is unfortunately not the case with Bitcoin nor with PoS coins. Despite the trustworthy software dishonest users can compromise the BTC and other PoS networks.
In our opinion, it is an impossible task to solve the trust issue on protocol level. The basic premise in GadgetNet security is that if the system is the composite of only trustworthy software then there cannot be bogus payments in the network. Therefore, we believe the most reliable method to guarantee security is to ensure that the software is indeed trustworthy.
The GadgetNet balance is based on accounts instead of addresses. Let say Alice has 100 coins, Bob has 50 coins, Bob send 10 coins to Alice and the new balances will be 110 and 40 coins.
Ab = Alice's original balance
Bb = Bob's original balance
Anb = Alice's new balance
Bnb = Bob's new balance
Ab = 100;
Bb = 50;
Anb = Ab + 10;
Bnb = Bnb - 10;In the GadgetNet system this four lines of code manages the transaction of Bob send 10 coins to Alice. There is no mining no staking required instead of the system must ensure that the simple tasks of
a) account balances are indeed what the nodes submit in the transaction data
b) account balances are correctly adjusted
If the software is trustworthy that populates the first two line of code (account balances) and perform the 3rd and 4th line of code (adjust balances), if the software does what it is intended to do then the network is safe. Therefore, we just need to guarantee that there is only trustworthy software perform transactions on the network.
Trustworthy software in this context that is
- open source
- written by the developers
- continuously reviewed by the users and peers
- ideally compiled by the end users
Extra safety and protocol level measures also exist in GadgetNet, for example there are minimum three trusted node signatures required to complete the transaction, but the basic premise is that the software is trustworthy (i.e. it is the original software that is written by the developers) then the network security is guaranteed.
Ensuring trust with infrastructure level measuresInfrastructure refers to software and system that are not part of the digital currency software, but suitable to ensure that the digital currency software is trustworthy and it is not altered by malicious users/processes. These are mostly operation system applications, but it could be third party as well.
Ensuring the trustworthiness of the software on infrastructure level means validating and monitoring the software (nodes) that performs the transactions.
- Ensure the binaries are compiled from the correct source by validating the hash of the software
- Ensure the process that executes the software is indeed start the correct binaries
- Ensure there is no malicious process compromise the trusted node process context
There are several other measures as well that performed and we will explain that.
The infrastructure level measures performed by automated processes, but any user any time can perform them manually.
The bottom line is, the trusted software node must reside on a system that provides read only write to anyone to review the logs of the infrastructure level measures. We think it is worth to sacrifice such security privilege and open up the system for read only visitors as this design substitutes PoW and PoS with a more robust and secure mechanism. At least, we think that's the case.