Ethereum architecture for humanity


An important function is be able to respond to Commit. Ideally, ethereum should not build its own blockchain but should rather just provide a database layer and leave the blockchain to tendermint.

However it seems that in the current implementation of go-ethereum the state is tightly coupled to it being a blockchain state. This logic is not too different from what we currently have. The ethereum object implements BaseService and can be started and stopped properly. The rpc package has an RPC server as its main type. It is a wrapper around the RPC package from go-ethereum. It provides the same functionality as ethereum, but adapts it to fit the needs of ethermint.

It takes a reference to an ethereum object in order to answer questions about the state. It takes a reference to a rpcClient object in order to proxy ethereum transaction to Tendermint core. It takes a reference to an account object in order to provide functionality related to accounts. Accounts wraps a go-ethereum account manager and provides that functionality. Accounts cannot be unlocked by default when starting ethermint as that is a security risk.

They have to be unlocked through some GUI. It stores the keys the same way that go-ethereum deals with it inside the ethermint directory. The reward strategy defines how to distribute rewards.

It holds the address that should receive the rewards coinbase and decides how much and when that address should be rewarded. It is passed in by the user of the library. See inter-blockchain-communication for details on IBC. Since we are implementing our own RPC package which wraps go-ethereum RPC to expose the correct web3 endpoints that are needed for ethermint, we can implement a very efficient tendermint light client. The LC connects to the underlying tendermint instance to keep up with the validator set changes as well as with recent block hashes.

This part is exactly the same as in basecoin. When a light client wants to query the state though, it uses the Web3 endpoints of the full node and does the data verification by looking at tendermint block which contains the relevant app hash.

It checks that the block is validly signed by a majority of the current validators. This way developers can write fully secure ethermint wallets that build on top of our RPC package so that it offers exactly the same web3 endpoints that they would normally work with.

For example, you can write a phone wallet, which uses our light client package to securely keep up with the state of the ethermint chain. We need to write a light-client package that unifies the tendermint and web3 connections and does the proving for you.

It should expose a web3 RPC interface or C functions so that other languages can easily build on top of it. Every file has an associated test file that verifies the assumptions and invariants that are implicit to the program and are not expressed by the type system. Every package has an associated test suite that uses the public API like an ordinary developer would. This package not only ensures that the exposed API is reasonable, but it also ensures that the package works in its entirety.

The entire application has tests at the top level in order to ensure that all components work together as expected. Integration tests for all RPC endpoints are run against a live network that is setup with docker containers. Implement the new CLI and logging in order to provide a similar experience as Tendermint. Implement the RPC package in order to provide a better user experience. The solution that is optimal for a particular industry depends very heavily on what your exact industry is.

In some cases, public is clearly better; in others, some degree of private control is simply necessary. As is often the case in the real world, it depends. None of this explains how a private blockchain can emulate the greatest asset of the Blockchain, that of immutability.

With a consortium chain you have a number of entities whereby you trust the nature of consensus even if you think that maybe that one company are a little dodgy. The advantages over a regular public chain are stated by Vitalik — cost, privacy, additional technical options.

On top of that, consensus can allow transactions to be reversed where a fraudulent action occurred — not a technical violation but the vastly more common action of routine fraud involving human beings. Similarly, court cases often move property — a court could require the consensus network to move an asset from Alice to Bob, whether or not Alice agrees.

Also consider that a blockchain, even with limited data, is an open protocol among the participants at least meaning that they can keep their existing IT infrastructure and make minimal changes. This will allow them to interact with other parties or their data on the blockchain, whether they know or trust them or not. The exception may be if the chain is handled by a single third party who contractually will not reverse transactions therefore the time stamped nature is conserved.

As an internal company auditing device, the third party could be the IT division. Consortium blockchains can bring with them countless uses and also avoid potential legal pitfalls regarding data privacy. Additionally, who manages the IT aspect, where are the chains hosted, who pays — is this a trade body project?

I wonder though, if atomic cross chain transfers of the kind being developed by both Ciyam and Blocknet may end up mitigating some of the network effect mentioned in the final point? I supposed you are more intelligent than that. As you say, if your problem is an inherent distrust of banks or govs then a private blockchain is, at most, of limited use not no use since the chain be read-only for the public.

A private chain confers many advantages, some of which may even be a legal requirement due to privacy or data protection regulations.

In computer security, the reality is that the strength of your encryption is highly unlikely to be your real problem as the best way to defeat encryption is to bypass it altogether.

Similarly with blockchains, they can do something very powerful in a censorship resistant manner, but human beings and hackers are still everywhere, doing whatever they wish.

The real progress is a slow process, sad but true. We have to devolve user states function more effectively to just dream about what would come up next. This makes no sense. The use case for private blockchains is hardly currency issuance.

The point is precisely that blockchains have explicit rules that cannot be changed at will and that this sort of thing has utility in all kinds of contexts, some warranting public blockchains and some warranting private blockchains. Do not agree with your statement that private blockchains are completely useless. Obviously, this comes with a lot of challenges for each of the financial institutions.

One of them is how to manage and distribute access rights to those TTPs. Using a private blockchain would definitely be beneficial in that case as it not only guarantees that all participants are known higher trust but also creates and audit trail.

Also, it would secure information through multi signature addresses. What I am saying is that there are indeed many use cases where a private blockchain is the preferred and more suitable solution. As this cryptocash can be traded outside of the banking realm, it does allow for clearance and movement of cash in almost an instant as well as creating the potential for micro- and even nano-currency.

Like or or not, quick and radical change is not likely to happen in the global finance system and currently, like it or not, banks are still considered trust agents by a large part of the population. If we are going to change the system we have to use baby steps to avoid anarchy and change it from within. I wrote about a Polish company here is working this angle that is EU compliant and backed by two banks. I agree that there are multiple use cases for each scenario. The challenge is to determine what kind of blockchain best suits a business case that requires a level of decentralization.

With regard to internal auditing, the case for a blockchain has to stack up against a regular database and cryptography, and the overall internal mechanisms already in place.

This relates to a case where the customer specifically rejected existing database approaches. Blockchains only solve one problem. They are instruments of regulatory arbitrage.

His age is correct. Most Bitcoiners are Banks wrote the book on it and also on regulatory capture look it up. Banks are the masters of regulatory arbitrage, which is how I know they will end up back at BTC, because it is the only Blockchain that does regulatory arbitrage.

They will learn this very quickly. That said, regulatory capture is not regulatory arbitrage. Capture has with it a high degree of risk. The closest we have seen are AirBnB and Uber. One can not simply declare that their blockchain is immutable or that it solves the BG problem. These problems are problems solved through hard fighting. It was done by a man who likely dedicated his life to understanding it, and then humbly pushing out a bit of code that he thought might work.

The hubris in declaring that your code does work is a great indication of where the Ethereum is intellectually. Everyone agrees with you. In my humble opinion, Ethereum is far a better way to spend it. First of all, let me tell me you something. All the people that want to change the world for the better deserve respect. If you love the conventional wisdom, cool good for you, but we make the case to change the conventional wisdom and is pretty tough to fight bignumberlaw. That said, I appreciate the empty assertion that Bitcoin is a double spend playground.

Have you evidence for that? Such systems have been a primary focus of interest from financial institutions, and have in part led to a backlash from those who see such developments as either compromising the whole point of decentralization or being a desperate act of dinosaurish middlemen trying to stay relevant or simply committing the crime of using a blockchain other than Bitcoin. However, for those who are in this fight simply because they want to figure out how to best serve humanity, or even pursue the more modest goal of serving their customers, what are the practical differences between the two styles?

First, what exactly are the options at hand? To summarize, there are generally three categories of blockchain-like database applications:. In general, so far there has been little emphasis on the distinction between consortium blockchains and fully private blockchains, although it is important: However, to some degree there is good reason for the focus on consortium over private: In general, I would even argue that generalized zero-knowledge-proofs are, in the corporate financial world, greatly underhyped compared to private blockchains.

Given all of this, it may seem like private blockchains are unquestionably a better choice for institutions. However, even in an institutional context, public blockchains still have a lot of value, and in fact this value lies to a substantial degree in the philosophical virtues that advocates of public blockchains have been promoting all along, among the chief of which are freedom, neutrality and openness.

The advantages of public blockchains generally fall into two major categories:. Note that by creating privately administered smart contracts on public blockchains, or cross-chain exchange layers between public and private blockchains, one can achieve many kinds of hybrid combinations of these properties.

The solution that is optimal for a particular industry depends very heavily on what your exact industry is. In some cases, public is clearly better; in others, some degree of private control is simply necessary. As is often the case in the real world, it depends. Toggle navigation Ethereum Blog.