What problems do blockchains solve?
Cypherium | Comparing
Public Blockchains
The third generation of
blockchains is imminent, with a number of projects cropping up in recent years
to address the shortcomings of Bitcoin, Ethereum, and some of the other early
players in the crypto space. So what exactly are the major problems in the space,
and how do todays most prominent new projects intend to solve them? Here we
explain simply in the context of The Blockchain Trilemma.
The Blockchain Trilemma is an
overarching term that often gets tossed around as a description of the issues
facing our industry. Simply put, the trilemma refers to a trade-off that many
projects have had to make between three pillars of an idealized blockchain:
Decentralization, speed, and security. The popular wisdom holds that blockchain
technology cannot truly scale until a single distributed ledger technology
leverages all three of these characteristics a decentralized revolution that
doesnt appear to be fully achievable.
Certainly, this trade-off is
at the heart of todays scalability issue. Despite its reliability and clear
decentralization, Bitcoin can only process six transactions per second and
confirms transactions with a minimum waiting time of an hour, while other
competitors like EOS and Ripple are hardly decentralized at all. Meanwhile,
Ethereum, Ethereum Classic, and numerous other high profile coins have suffered
serious attacks on their systems security. In order for blockchain to scale,
we need an emergent protocol that has the decentralization of Nakamotos
consensus, while ensuring the speed and security that modern enterprises
require in order to utilize blockchain.
However, underneath the broad
banner of the Blockchain Trilemma, there is a series of more detailed,
technical issues that every new blockchain needs to address in order to achieve
true scalability. Weve outlined several of these important technical areas in
the table below, listing Cypherium side-by-side with a number of our peers in
order to show how our solutions are lasting, solid, and proven.
So, what do these categories
mean, why are they the significant factors in solving the overarching trilemma,
and why have these leading projects made the choices weve identified above?
Throughput: Often a complicated issue
touted as the be-all-end-all of new blockchain projects, Throughput is
generally the figure that refers to the processing rate of a network operating
at full capacity. However, many nascent companies take advantage of this by
posting a theoretical processing number rather than the rate of the full
throughput often a number that the network could never truly reach. For
example, Visa, which claims to be able to process upwards of 30,000
transactions per second, never realistically exceeds 1,500 TPS. Similarly, when
projects claim that they can process half a million transactions per second,
they are often referring to a mathematical aspiration for their design and not
a practical achievement. Some companies also do this on a smaller scale, either
citing blueprint theory or a soft test on a handful of centrally held practice
nodes. Ultimately, higher throughput does not mean faster transaction speed,
and a blockchain with high throughput could still take several minutes or
longer to process transactions due to the structure of its resolution finality.
Consensus: Consensus may be the single
most important aspect of any distributed ledger technology, given that it
remains at the heart of the blockchain trilemma. Most improvements made in the
space have attempted to advance Proof-of-Work (PoW) by improving transaction
speeds and its effectiveness. However, some of those replacements, such as
Proof-of-Stake (PoS) and Asynchronous Byzantine Fault Tolerance, ultimately
sacrifice decentralization. Similarly, unproven designs like Avalanches slush
have not been appropriately battle-tested, which scalable implementation
requires. Cypheriums hybrid consensus finds a way to maintain the innovative
decentralization of PoW by bringing it to scale with Practical Byzantine Fault
Tolerance consensus. Combining the initial designs of Bitcoin with those of
ByzCoin and Bitcoin-NG, Cypheriums dual chain structure puts the best
conceptions of consensus in conversation with one another.
Governance: A truly open, decentralized
network is governed by its users. In practice, governance is the process by
which users recognize a common set of rules for operating the network. This
puts the power of the network truly in the hands of its community, offering
them the opportunity to associate and organize freely into factions through a
process known as forking. New projects often seem to centralize their
governance in order to expedite the networks decision making. However, putting
power into the hands of a few administrators often lends itself to
centralization.
Finality: Finality is a large,
encompassing topic in blockchain technology. At a glance, finality represents
the time it takes for a transaction to be considered approved. Finality speed
generally refers to the time it takes for a transaction to be recorded,
validated, and accepted into the ledger. Although related in some ways to
throughput speed, finality has different implications for a networks trilemma
solution.
Following the lead of
Bitcoin, most blockchains operate with probabilistic finality, where
transactions are recorded into the ledger and are subject to forking. To avoid
the slog of probabilistic finality, many projects turn to centralization to
achieve instant and permanent finality. However, Cypheriums design deploys a
dual chain structure that allows for instant and absolute finality while
maintaining its decentralized block creation.
Turing Completeness: Some might say that
Turing-completeness is irrelevant to the blockchain space because it has not
yet been implemented by many third-generation smart contract protocols.
However, Turing completeness is a standard that indicates the power of a
programming language. The nature of tech, especially new technologies like
blockchain, artificial intelligence, or cloud, is to grow, innovate, and
change. Turing-completeness gives smart contract platforms the best opportunity
to flourish along those lines.
Total Ordering: Total ordering is a
natural feature of a blockchain. It refers to the fact that each block has a
single antecedent, which allows the ledger to be traced back in its entirety to
the very first transaction. Importantly, blockchains use total ordering for
more than good bookkeeping. Total-ordering is an important way that blockchains
solve the double spending problem, in which a single account uses the same funds
to pay two debts. Total ordering requires that one of these transactions be
validated before the other can be processed. However, in protocols like
Avalanche, which uses a Directed Acyclic Graph (DAG), there is no automatic
solution to double spending. Instead, DAGs, just permanently isolate and avoid
such instances, effectively losing the balance as a punishment for a perceived
attack on the network. However, this is an untenable solution especially
given the fact that not all double-spending originate with an individual
attempting fraud.
Incentive: In addition to being
ledgers, smart contract platforms, and app infrastructures, blockchains are
also economic ecosystems. Successful blockchains must be equipped with adequate
economic incentive structures that will make participation in the network
sustainable and profitable. Economic justification and planning bring
blockchain to scale by transforming it from an academic interest to a
professional industry with viable money solutions. Projects that lack incentive
structure will force themselves onto an academic bookshelf and hinder the
growth of our industry. When developing a project, consider the following: What
is the cost of running a node? Will the miners have to pay exorbitant prices
for expensive equipment? Will they need to incur high electricity costs? How do
the miners make money? How does the network sustain itself? These questions are
as important as any transaction or consensus issue.
Attack Vulnerabilities: With every decision a new
DLT project makes, it exposes itself to attackers who look to exploit its
designs, which we have already witnessed a number of times through critical
attacks on popular projects. As these technologies continue to develop, there
will inevitably be more of these kinds of attacks and it is critical in the
early stages of this industry that we solve these problems rather than abandon
them. New blockchain designs must not only keep tabs on the latest marketing
and enterprise trends, but also stay in touch with the designs, breakthroughs,
and false steps that have led us to the state of blockchain in 2019. This is
the ethos that has guided Cypheriums development and it will continue to
direct our networks progress beyond the aims of the current iteration of our
technology.
Blockchains are incredibly popular nowadays. But what is
a blockchain? How does a blockchain work, what problems do blockchains solve,
and how can blockchains be used? In this article, we explain the blockchain
architecture as well as types and components of blockchains.
Blockchain technology has been widely adopted for the
range of benefits it provides. Lets take a look at the main benefits of
blockchain technology:
1.
Since
theres no central authority to oversee operations, the blockchain is an ideal
register for joint business ventures.
2.
The digital
signature and verification process used in blockchains helps prevent fraudulent
activity.
3.
Information
isnt centralized, preventing it from being lost.
Like the name indicates, a blockchain is a chain of
blocks that contain information. This technology was originally described in
1991 by a group of researchers and was originally intended to timestamp digital
documents so it wouldnt be possible to backdate or tamper with them.
However, blockchain technology went mostly unused until
it was adapted by Satoshi Nakamoto in 2009 to create the digital cryptocurrency
Bitcoin.
A blockchain is a distributed ledger thats completely
open to anyone. Blockchains have an interesting property: once data has been
recorded inside a blockchain, its very difficult to change it. How does that
work? Lets take a close look at a block.
Each block in a blockchain contains some data, the hash
of the block itself, and the hash of the previous block. The data stored inside
a block depends on the type of blockchain. The Bitcoin blockchain, for example,
stores transaction details, such as the sender, receiver, and number of coins.
How to write acceptance criteria: examples and
best practices
Each block also has a hash, which you can compare to a
fingerprint. A hash identifies the block and all of its contents and is always
unique, just as a fingerprint is. Once a block is created, its hash is
calculated. Changing anything inside the block will cause the hash to change.
In other words, hashes are very useful when you want to detect changes to
blocks. If the hash of a block changes, its no longer the same block.
The third element inside each block is the hash of the
previous block. This effectively creates a chain of blocks, and its this
technique that makes a blockchain so secure. Lets look at an example.
Here, we have a chain of three blocks. As you can see,
each block contains its own hash and the hash of the previous block. So block
number 3 points to block number 2, and block number 2 points to block number 1.
Now, the first block is a bit special, as it cannot point to previous blocks
because its the first. This block is called the genesis block.
Now, lets say you tamper with the second block. This
causes the hash of that block to change. In turn, that will make block 3 and
all following blocks invalidbecause block 3 will no longer store a valid hash
of the previous block.
So changing a single block will make all the following
blocks invalid. But using hashes is not enough to prevent tampering. Modern
computers can calculate hundreds of thousands of hashes per second. This means
you can effectively tamper with a block and recalculate all the hashes of other
blocks to make your blockchain valid again.
To mitigate this possibility, blockchains implement
something called proof of work. This is a mechanism that slows down the
creation of new blocks. In the case of Bitcoin, it takes about 10 minutes to
calculate the required proof of work and add a new block to the chain. This
mechanism makes it hard to tamper with blocks because if you tamper with one
block, youll need to recalculate the proof of work for all the following
blocks.
The security of a blockchain comes from its creative use
of hashing and the proof of work mechanism. But theres one more way
blockchains secure themselves, and thats by being distributed. Instead of
having a central entity manage the chain, a blockchain uses a P2P network that
anyone is allowed to join (assuming the blockchain is public). When someone
joins this blockchain network, they become a node and get a full copy of the
blockchain. This node can then use the copy of the blockchain to verify that
everything is in order.
How to establish remote work for your
business: the experience of IT outsourcing company
Now lets see what happens when a blockchain participant
creates a new block. That new block is sent to all nodes on the network. Each
node then verifies the block to make sure it hasnt been tampered with. If
everything checks out, each node adds this block to its own blockchain. The
nodes in the network eventually arrive at a consensus: they agree on which
blocks are valid and which arent.
Blocks that have been tampered with will be rejected by
other nodes in the network. So to successfully tamper with a blockchain, you
need to tamper with all blocks on the chain, redo the proof of work for each
block following the block tampered with, and take control of more than 50% of
the P2P network. Only then will your tampered block be accepted by everyone
else. But this is almost impossible to do.
The blockchain architecture has many business benefits.
Here are some built-in characteristics:
Cryptography Blockchain transactions are verified and
trustworthy because of complex computations and cryptographic proof between the
parties.
Immutability Records in a blockchain cant be modified or
deleted.
Provenance Its possible to trace the origin of each
transaction in the blockchain ledger.
Decentralization Every member of the blockchain structure is able
to access the entire distributed database. Unlike in a centralized system, a
consensus algorithm is responsible for network management.
Anonymity Every member of the blockchain network has a
generated address, not a user ID. This preserves the anonymity of users,
especially in a public blockchain.
Transparency The blockchain system is unlikely to be damaged
as it takes enormous computing power to completely rewrite the blockchain
network.
A blockchain is an open financial ledger or record in
which every transaction is authenticated and authorized. A blockchain is
designed as a decentralized network of millions of computers, commonly referred
to as nodes. Its a distributed database architecture in which each node plays
the role of a network administrator who voluntarily joins the network. Since
theres no centralized information in a blockchain architecture, a blockchain
is literally impossible to hack.
The blockchain architecture supports a growing list of
ordered records known as blocks. Each block maintains a timestamp and a link to
the previous block.
Here are the main components of a blockchain
architecture:
Node a computer in the blockchain architecture (each
node has an independent copy of the entire blockchain ledger)
Transaction A data record verified by blockchain
participants that serves as an almost immutable confirmation of the
authenticity of a financial transaction or contract
Block A sealed data compartment that contains: 1) a
native hash code that identifies the block, 2) the hash code from the previous
block in the sequence of blocks, and 3) a set of timestamped transactions
Chain A ordered sequence of blocks
Miners Nodes that validate blocks before adding them to
the blockchain structure
Consensus (protocol) A set of rules and agreements for
performing blockchain operations
A public blockchain architecture operates on the basis
of proof of work (PoW) consensus algorithms and uses appropriate protocols. A
public blockchain doesnt need any permission, as its open-source. You can
define new blocks with their existing state, as this is open-source. You can
also download a blockchains code and check transactions on the network.
This makes transactions possible across the entire
network. A public blockchain architecture allows for transparent yet anonymous
or pseudonymous transactions. The Bitcoin, Ethereum, and Litecoin blockchains
are public.
A private blockchain architecture allows only a certain
group of participants (organizations or people) to access information. Such
blockchain architectures are built by organizations with the aim of increasing
the overall benefit or efficiency. Their reliability is ensured by the common
goals of the participants and proof of stake (PoS) and Byzantine fault
tolerance (BFT) consensus algorithms.
A private blockchain architecture decouples the main
blockchain protocol from the smart contract layer. Using a private blockchain,
you can open up a programmable transaction area commonly called a smart
contract as well as online markets.
Theres also a consortium, or public permissioned,
blockchain architecture. In this type of blockchain architecture, anyone can
connect to and view the blockchain, but a participant can add information or
connect a node only with the permission of other participants. Such blockchains
are built by organizations in order to increase trust among customers,
consumers or society as a whole. Here, reliability is also achieved by the
presence of trust between participants and the same PoS and BFT consensus
algorithms.
First Time Working With Outsourcing: How We
Built Communication With a Client Team
Depending on the type of blockchain structure and its
context, a blockchain system can be more centralized or decentralized. This
just refers to the design of the blockchain architecture and who controls the
ledger. A private blockchain is considered centralized, as its controlled by a
specific group with increased privacy. In contrast, a public blockchain is open
and therefore decentralized.
In a public blockchain, all records are publicly visible
and anyone can participate in the agreement process. But this type of
blockchain is less efficient, as it takes a significant amount of time for each
new record to be accepted in the blockchain architecture.
From an efficiency standpoint, the time required to
confirm each transaction on a public blockchain is also not environmentally
friendly, as it requires huge processing power compared to a private blockchain
architecture.
Now lets dive deeper and find out how to make a private
blockchain architecture. A decentralized blockchain application is made in the
same way as any other conventional software product. Development requires a
functional specification, a UI/UX design, and an architectural plan.
Its imperative to define the applications
functionality, establish user roles, and consider the system flow and
interactions between users.
To build your own blockchain architecture, you need to
consider:
the
infrastructure of an application hosted in a defined environment within one or
more organizations
the tasks
and purposes for which this blockchain solution is being designed
There are several open-source solutions you can use to
create a private blockchain architecture.
As soon as an organization or multiple organizations
decide to implement a blockchain solution, they already create a network. The
network can be viewed as a company with its own staff, or in terms of the
technical infrastructure within these companies.
Lets consider an example of a blockchain architecture
for the production and sale of gold jewelry.
The parties involved in this network include:
Gold mining
companies
Government
institutions
Gold
transporters
Gold sellers
Goldsmiths
A blockchain solution can bring together all these
parties in a peer-to-peer (P2P) network that eliminates all risks and builds a
transparent system. All network participants will have access to synchronized
data from the shared, immutable ledger and will be able to track the movement
of gold from its extraction to its sale to the end consumer in the form of
jewelry. The blockchain ledger will contain the sequence of all activities taking
place, for example, mining, processing, and distribution.
Usually, each party in the network keeps its own copy of
the blockchain, which is synchronized with the smart protocols and technical
layers of the blockchain network.
For multiple users, theres a membership service
provider (MSP) that allows access to specific users on the network.
All transactions along the way are stored in the general
ledger (for example, diamond images, data on a diamonds mining location,
color, and serial number, information on the location where a diamond was cut,
cleaned, sold, etc.).
Heres a high-level diagram of a hyperledger
architecture for building a blockchain solution.
Creating
blockchain code
After the blockchain network is set up, the next step is
to agree on the type of business transactions happening inside the blockchain
architecture.
Typically, these rules are written in legal agreements.
In the blockchain code, these agreements are written in the form of smart
contracts (also known as Chaincode or a Business Network Definition in
Hyperledger Composer). Just like a traditional contract, a blockchain contract
contains participants, assets, and transactions. For every transaction, a
transactional processor function is written (in JavaScript) that describes what
happens after the transaction is created.
Blockchain development requires profound technical
skills. A strong background in computer science or engineering is desirable to
work with blockchain architectures. In addition, knowledge of consensus
methods, data structures, decentralized ledgers, cryptography and
cryptocurrencies, and data security is in high demand.
In the last few years, the process of blockchain
development has been simplified by Ethereum and similar blockchain software.
Ethereum is an open-source software platform based on blockchain technology
that allows you to build and deploy decentralized applications (DApps).
In terms of the programming skills needed to develop
a blockchain solution, there are a number of programming languages you need to
be familiar with.
To implement a custom blockchain system, you can use
programming languages such as C ++, Python, C, Java, and Ruby. In addition, web
development skills such as knowledge of HTML, CSS, and Node.js can come in
handy.
If youre interested in writing smart contracts using
Ethereum, youll need to know Solidity. In addition to complex programming
skills, blockchain developers need to understand business requirements and
operations and have excellent collaboration and negotiation skills.
Smart contracts are a way of transparently exchanging
value without third parties being involved. A distributed ledger such as a
blockchain allows smart contracts to be executed when specified conditions are
met. Ethereum is an open-source public blockchain that can leverage smart
contracts. With current blockchain technology, smart contracts can be automated
using Bitcoin.
Thanks to their decentralized networks, blockchains
enable peer-to-peer payments, which can ultimately lead to a truly
decentralized sharing economy.
Crowdfunding is growing in popularity, and blockchain
technology is taking this interest to the next level, with the potential to
develop crowdsourced venture funds. The Ethereum-based DAO (Decentralized
Autonomous Organization) is one example of a crowdfunding project that raised
$200 million in two months. Not to mention it was just another form of smart
contract.
Transparency is essential when you operate a business,
and in this context, blockchain technology is changing the governance
landscape. As the blockchains distributed database technology enables
completely transparent and accessible contracts, organizations are on the verge
of making blockchain-based decisions. We can see Ethereum-based smart contracts
used to support digital assets or organizational information for data
management practices.
Managing Risk When Outsourcing Your Mobile
Development Project to a Contractor
Blockchains can allow for the standardization of the
secure electronic exchange of medical records between healthcare providers,
which would be less burdensome than current approaches. Blockchain technology
allows for a decentralized records management system that eliminates the need
for an organization to manage patients access to records. Blockchain-enabled
healthcare applications have potential benefits such as the ability to
instantly verify the authenticity of prescriptions and automatically detect the
possibility of harmful drug interactions.
When combined with properly validated business
practices, a blockchain can serve as a verifiable method for documenting supply
chains. For example, this technology can be used to ensure that diamonds are
not tied to conflict, to guard against counterfeiting of IoT devices, and to
reliably track materials and manufactured products from source to destination,
thus promoting ethical practices.
Know Your Customer (KYC) and Anti-Money Laundering (AML)
are two generally accepted practices that can benefit from blockchain
technology. Financial institutions currently need to complete an intensive
multi-step KYC/AML process for each client, which is costly. If the blockchain
were introduced into this process, it could reduce costs by running a KYC/AML
check on a given client once and making the results available to all financial
institutions while increasing the efficiency of analysis and monitoring.
This article has shed light on the blockchain
architecture. Here are the key takeaways:
A blockchain
is a distributed ledger thats completely open to anyone. Once data has been
recorded inside a blockchain, its very difficult to change it.
The
blockchain architecture supports a growing list of ordered records known as
blocks. Each block maintains a timestamp and a link to the previous block.
You can use
a blockchain architecture in smart contracts, crowdfunding, supply chain
management, KYC and AML processes, medical records, transparent management, and
decentralized sharing economy projects.
Blockchain
developers need a strong background in computer science or engineering to work
with blockchain architectures. In addition, knowledge of consensus methods,
data structures, decentralized ledgers, cryptography and cryptocurrencies, and
data security is in high demand.
Developing a
blockchain architecture requires a functional specification, UI/UX design, and
architecture plan. Its imperative to define the functionality of the application
and the roles of users as well as to consider the system flow and interactions
between users.