Now that we've seen all these use cases, let's go ahead and finish off with some
generalizations.
These points can be used to understand and discuss any use case you come across or come
up with.
These points describe the properties of a good blockchain use case, along with the scenarios
in which a blockchain is not needed or inferior to a centralized solution.
We've talked about these generalizations a great deal in the previous course, but those
were in the context of smart contracts and applications of blockchain in general.
Now, it's time to consider use case generalizations in the context of enterprise blockchain use
cases.
Keep in mind everything you've learned up to this point, and see how they fit into the
generalizations.
To start off, let's talk about the scenarios where a blockchain will work, but is not necessary.
We often hear the term "efficiency" in the context of blockchain use cases, but this
isn't often applicable.
For example, let's take Bitcoin.
If I'm buying coffee, it's less efficient to send Bitcoin and wait 10 minutes for a
confirmation than to hand over a few dollars or use a credit card.
However, it is more efficient to send value overseas with Bitcoin, which takes a mere
ten minutes in comparison to the days that banks take to coordinate and the transaction
fees they levy for international transfers of value.
Hence, efficiency depends on context.
Additionally, characteristics of data storage such as data immutability, integrity, auditability,
and authenticity can be achieved at much lower costs without a blockchain.
Redundant, mission-critical, fault-tolerant systems have been around for decades, and
cryptography has been around for millenia.
All of these properties have been solved individually.
Blockchain simply ties them all together.
Each of these bullets can be achieved by using a subset of the technology that goes into
making a blockchain.
While blockchains will solve any of these individual requirements, they're over-engineered
solutions to these problems.
As mentioned in several of the use cases, blockchains allow us to solve coordination
failures.
We are able to implement arbitrary incentive schemes, allowing us to create a system which
incentivizes individuals to operate according to our expectations.
In addition, blockchain can be thought of as a "technological solution to a social
problem."
Theoretically, every blockchain protocol could be run by a single node.
However, you'll notice the issue that if only one person runs the protocol, then we
lose out on the guarantees of auditability and decentralized control, properties that
are meaningful only in a social setting.
When individuals don't trust each other, then the blockchain allows them to coordinate
between each other without relying on some trusted third party.
With this, blockchains can be used to make commitments, to fund public infrastructure
or do crowdfunding.
The network will force the actors to honor their commitments, as was the original intention
of smart contracts.
Instead of bringing in lawyers to settle matters when things don't according to plan, we're
now able to rely on a smart contract to execute as intended, giving us the ability to believe
in this code as law.
Blockchains create a standardized platform for access and interaction.
Because of this, we can combine the power of all users on a blockchain network to enhance
everyone's capabilities.
Given that all information in a blockchain is accessible to everyone, we are now able
to combine data silos between institutions.
Any information collected or functionality provided by an app on a blockchain network
is accessible to all other users on the blockchain, something which can't be said about the
Internet alone.
In addition, blockchains enforce a common standard.
As all users tap into the same single protocol, they must also adapt to that protocol's
specifications.
Granted, that requires everyone to go through the trouble of adapting.
However, once everyone's on the same platform, there are no longer issues of format or syntax.
Lastly, by combining resources and information from all parties, we can enhance everyone's
user experience.
Any app that exists on a smart contract platform has its data and functionality living in that
platform.
Any other app can leverage existing technologies on the same platform, creating a positive
feedback loop and benefiting all involved.
This is referred to as network effects, which is the increased value or potential of a product
with every additional user.
Similar to how more Facebook users makes the platform more worthwhile for all users, more
smart contract developers increases the value of a platform.
In this way, individuals are supporting the rest of the community while benefiting themselves
as well.
Finally, the most abstract yet fundamental property of a good blockchain use case is
pure decentralization.
What this means is decentralization for the sake of keeping it out of the hands of a central
authority.
This is what Bitcoin aimed to do with banks.
Although there was a working central solution, Bitcoin wanted decentralization nevertheless.
In countries with significant amounts of distrust in central authorities due to corruption or
inefficiency, as mentioned during the real estate section, blockchain might be useful.
Blockchain provides a system for users to produce guarantees that a central solution
cannot provide, such as censorship-resistance and disintermediation of power.
These properties are difficult to evaluate in terms of dollars and cents, but groups
like cypherpunks and crypto-anarchists ask about finances second.
For some individuals, self-governance and privacy are more important than any amount
of revenue, making decentralization for decentralization's sake worthwhile.
Perhaps the most astonishing property that a blockchain provides is globally recognized
proofs.
Cryptocurrencies aren't divided by lines or borders--they're guaranteed to be globally
accessible and unstoppable as long as there exists a community to support them, unlike
businesses or government projects.
Through blockchain, we can support globally recognized ownership, persisting across nations.
Now that we've finished talking about all the meaningful properties of decentralized
solutions, it wouldn't be complete if we didn't go over the caveats.
What are the costs of these properties of decentralization?
What do we achieve better with centralized solutions?
The overarching theme of centralized solutions is the benefit of independence.
There's no need for consensus when a single party has the power to make decisions.
Because of this, we get the following benefits:
First and foremost we have deep integration.
A central solution has full control over everything under its umbrella.
Apple is well known for taking advantage of this to control the user experience.
When a blockchain attempts to upgrade its protocol, all users have to voluntarily upgrade
or get left behind.
With a central solution, however, it's much easier to change individual components or
entire architectures of projects.
Because of this, it's much easier for a central system to patch up bugs, such as security
issues, than decentralized systems.
A central solution does what it needs to do, unrestricted, but a decentralized system needs
to come to consensus with thousands of different actors to change anything at the protocol
level.
Another huge advantage for central solutions is efficiency.
With centralized solutions, the cost of executing a program is about a million times less work
than decentralized solutions.
This is easy to see, as only one party is doing work, and it doesn't need to confirm
the result of its work with anyone else.
In addition, only one store of data is required.
The data doesn't be replicated across thousands of nodes .
In addition, access control is much more simple in a central solution, where it's much easier
to restrict read and write permissions.
In a decentralized solution with censorship-resistance, we give up that control.
Building off that, central solutions handle complexity well.
Imagine replicating Airbnb using smart contracts.
If a landlord finds their house destroyed, a blockchain can't handle that scenario.
How can an oracle accurately report whether a tenant damaged household possessions?
Who would report that information?
It's much easier to trust a single person to report on the state of the house than to
implement a complex and likely unreliable oracle system.
Finally, central solutions are adaptive.
When an Uber driver is having trouble with their passenger, or the other way around,
who do they call for customer support on a blockchain solution?
How do they get this issue resolved?
Centralized solutions have the advantage of handling messy situations with grace, since
you don't need every single entity to agree on every single outcome.
If you do integrate centralization with a blockchain solution, you lose out on most
of the benefits of decentralization.
The main takeaway is that there are advantages to both centralized and decentralized solutions.
Neither is universally better than the other; they each have their own use cases.
However, the best solutions are those that recognize when decentralization is critical
to accomplishing some goal and don't get distracted when a blockchain is viable but
really doesn't make sense.
A good blockchain use case is like an oasis in a desert.
Mirages pop up all the time, but that doesn't make them the real deal.
Be sure that you're able to justify why a blockchain works for your use case!
Không có nhận xét nào:
Đăng nhận xét