Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Do you really want to delete this prezi?
Neither you, nor the coeditors you shared it with will be able to recover it again.
Make your likes visible on Facebook?
You can change this under Settings & Account at any time.
Steve's Blockchain Adventure
Transcript of Steve's Blockchain Adventure
Excited yet?! Let's take a step back. To fully understand the use cases and implications of Blockchain Technology, we must first understand the Blockchain, its origins, and why Bitcoin introduced this revolutionary technological advancement. Come with me on a journey through time, space, and Prezi, to the land of the infamous Bitcoin.
Centralized Digital Currencies
The next evolution of transactions / currency was centralized digital currencies. Digital currencies remove the need for the movement/transacting of burdensome physical currencies, but centralized digital currencies still require a trusted third party to maintain a complete and accurate record of all transactions / account balances (i.e. online banking, PayPal, etc.).
Because digital currencies are much easier to counterfeit than physical currencies (numbers in a ledger vs. physical stores of value), and still place full trust in and reliance on third parties to act in a truthful and reliable manner, a logical improvement to digital currency would be a secure peer-to-peer digital currency which eliminates reliance on third parties for the transacting of value.
Decentralized Digital Currencies
To eliminate the required reliance on third-parties, a digital currency would have to exist on a distributed/decentralized network. This idea of a distributed/decentralized digital currency, however, was continually plagued by the Double Spend problem:
Say my account has 1 unit of digital currency, and I want to buy something from Steve that costs 1 unit, and also buy something from Sam that costs 1 unit. In a decentralized system without a trusted third party to process transactions sequentially, I would be able to "double spend" my 1 unit by simultaneously telling Steve that he would receive my 1 unit, and telling Sam that he would receive my 1 unit.
Bitcoin Saves the Day
Through Bitcoin, Satoshi Nakomoto introduced a technical, peer-to-peer solution to the double-spend problem. Known as the Blockchain, this technological advancement enables parties to establish trust over distributed networks/systems without the use of trusted third parties. Unknowingly or not, through his solving of the double-spend problem, Satoshi Nakomoto changed not only the world of currency, but the world beyond.
Traditional currency is a physical store of value which facilitates the transfer of value between parties. Traditional transactions are enabled by the movement of physical currency, and many times rely on trusted third parties to ensure the completion of transactions and the satisfaction of all parties involved. The reliance of traditional currencies on trusted third parties has turned the transfer of value into one of the largest industries in the world.
Traditional Transaction Example
Traditional transactions may be relatively easy and risk-free for end-users within America due to our thoroughly-established and exceedingly-convoluted infrastructure (which is a total mess behind the scenes and can be streamlined with blockchains), but things get a bit more complicated elsewhere. Suppose Sam currently lives in Nigeria and wants to buy an iPhone :) from America. Sam would be required to place trust in the following entities:
Nigeria's government, to maintain the value of the Nigerian Naira (currency) (if he is paid in this currency) (risk of hyperinflation, etc.)
A bank, to store his physical currency and maintain a complete and accurate ledger of all account balances
A bank or other intermediaries, to move the physical currency (or digital representations of that currency) to the vendor and to maintain a complete and accurate ledger of all transactions
Because at the time of the simultaneous transactions my account showed that I had ownership over this 1 unit, they would both believe they received my 1 unit, and ultimately, I would have duplicated this single unit of currency. This is made possible through the fact that no consensus existed as to which transaction occurred first.
Believing they had both received this unit of value, they would send me the items I bought.
However, if Steve and Sam were to transact with one another, they would both believe they have the single unit of currency that was previously under my control. Therefore, they would realize they each have a different version of the distributed ledger, and that the ledger was "forked".
To reiterate and dive deeper on some of the key points about Bitcoin & the blockchain, lets walk through a simple transaction.
Say I want to give Sam 1 bitcoin. Using my wallet software, I would write a contract that says "transfer ownership of 1 bitcoin from X address (my address) to Y address (Sam's address).
To control ownership over bitcoins, Bitcoin uses public-key crpytography; therefore, in order to be able to send the bitcoins from X address (my address) to Y address (Sam's address), I must be in possession of my address's private key (which signifies ownership over my address and allows me to spend bitcoin from that address), and Sam's public key (to designate the destination to which I would like to send my bitcoins). When writing the contract, the contract is digitally signed by my private key, so that the world cannot see the private key itself, but can see that the private key signed the contract, therefore verifying ownership over the associated address, and therefore verifying ownership over the bitcoins associated with that address. Sam's public key is associated with his address, and can receive but cannot send bitcoins; therefore, sharing the public key is completely safe.
In addition, I must prove that my address has ownership over 1 bitcoin; therefore, the contract will look more like this:
"My address X received .5 bitcoin at Time C from Party A, received .5 bitcoin at time D from Party B. I would now like to transfer the ownership of 1 bitcoin from my address, X, to address Y at time E "
This transaction is then broadcast to the entire Bitcoin network, which is a distributed system of computers which anyone can join. The network's "miners", or people who are running the computers which process transactions, take the broadcasted transactions and group them into time-stamped "blocks", creating a distributed computing network for the processing of transactions. As a reward for their efforts, each time a miner "creates" a block, they are rewarded with bitcoins (called a "block-reward"). This block reward is the only way in which new bitcoins can be created. The block reward halves every 210,000 blocks (roughly every 4 years), until the new supply of bitcoins is ~0. Therefore, because of the continual halving, new supply of bitcoins will cease, and the maximum number of bitcoins which will ever exist is 21M. At this point, miners will be incentivized via transaction fees (users can give transaction fees to the miners by stating that the input of a transaction is greater than the output (the miners get the difference)).
Once a block is created/"found", it is added to the sequential chain of blocks, or the "blockchain", which is the ledger of all transactions which have ever occurred on the Bitcoin network. Within the Bitcoin network, one new block is programmed to be found and added to the blockchain every 10 minutes. Once this block is found, it is propagated to the network, and all nodes (computers which store a copy of the blockchain) add the block to their ledgers, aka their copy of the blockchain, aka the record of all transactions which have ever occurred on the Bitcoin network.
A consensus system is used to achieve distributed consensus. Different consensus algorithms are currently being used by different blockchains (i.e. Ripple uses the Ripple Protocol Consensus Algorithm), but Bitcoin's blockchain's consensus works as follows:
All nodes on the network will accept the longest blockchain available.
All trustworthy miners will attempt to add blocks to the longest valid blockchain available.
To "solve" a block, miners group transactions into a block, and then attempt to solve a proof-of-work algorithm (verifying their computational power) which will in turn create a crpytographic hash. The difficulty in finding this cryptographic hash is instated by the nonce, whose length is determined by the network difficulty (which is continually re-calculated based on the computing power of the network, so as to keep the time at which a new block is found to ~10 minutes). However, once the problem is solved, it is relatively easy to verify that the cryptographic hash is valid (just like a Sudoku puzzle), and so the network will accept the block. This proof of work solves the Byzantine General's Problem.
Because miners receive a block reward for their efforts, miners are incentivized to act in a trustful manner and coordinate with the network - this is due to the fact that if they fork the network and create their own, disingenuous chain, as long as they do not control a majority (51%) of the network, the network will not follow their chain because the majority's chain will outpace / grow longer than this forked chain (because the bad, forked chain has less computing power (less than 51%) than the true chain), and the rest of the network will follow the longest blockchain. Therefore, no one will accept their chain, and their found "block" and the included block reward will not be recognized by the network; thus, it is in their best interest to contribute their processing power towards being a truthful actor in the system, so as to receive an incentive from the network for the dedication of processing power.
In order to change the history of this distributed ledger, a user would need to be able to go back to a block, start processing from there, and then somehow surpass the current network; an extremely costly (and difficult) endeavor, which grows exponentially more difficult the further embedded in the blockchain a block is.
So now that we have this blockchain technology, what if we implemented it inside of companies to track the movement of goods? To track the movement of traditional currency? To confirm the liquidity of financial institutions and satisfy regulatory requirements? What if we programmed applications on top of it? What if we built an AI on top of it that could not be shut down (Skynet)? What if we used it to allow machines to communicate with one another to create an autonomous Internet of Things? What if we created a voting system that was incorruptible? What if we created an incorruptible autonomous governing agent? What if we created contracts that were 100% guaranteed to be carried out under pre-programmed conditions?
Sam (or the third parties he is using) would also have to jump through all of the hoops associated with cross-border transactions, which utilize a system developed before the invention of the internet. It is currently faster/easier to ship packages across some borders than it is to transfer money... Pretty dumb.
Basics of a Transaction with Public Key Cryptography
Example of a Bitcoin Block
The transactions (Tx's below) are cryptographically hashed; the combination of these hashes + the previous block's hash + a nonce (talked about later) ultimately forms a bitcoin block.
Blocks are added to the blockchain in a sequential manner, as each new block must reference the previous block of the blockchain. The result is a ledger consisting of all transactions that have ever taken place within the network.
All nodes (which anyone can set up) in the Bitcoin network contain a copy of this digital ledger, aka blockchain. Thus, a completely trustless distributed database has been created.
Security & Blockchain Forking
The latter is how changes are made to the bitcoin protocol, as well as how attackers could attack the network; however, this forking requires 51%+ of the network to be adding blocks to the forked chain, otherwise the fork would never catch up to the main chain. Additionally, it is suggested that users wait for 6 confirmations before accepting a transaction as final; otherwise, there is a chance the transaction may be included on a chain that is not ultimately followed, and the transaction could be reversed if a user was attempting to double-spend their coins.
Ethereum is one of my favorite players in this space. Ethereum creates a platform for the development and hosting of any application of this revolutionary technology by implementing a Turing-complete programming language on top of a blockchain, creating a decentralized internet on which anyone can develop anything via the programming of smart contracts where applications run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.
There is a limitless number of applications of blockchain technology, most of which probably have not yet been thought of. Below are a few:
Implications / Applications
The Internet of Things
Decentralized Autonomous Organizations
Distributed Computing Infrastructures
Instantaneous and free cross-border transactions
Perfectly-auditable ledgers for reconciliation and audits of financial statements
Automated escrow via multi-signature transactions
Digital, permanent, and secure record systems for asset registry (such as land registry)
Cryptographically verified identities (eliminate need for paper identification)
And so much more!
Thorough dive into how Bitcoin & the blockchain work:
Not only does Sam have to trust these third parties, but they have to be willing to do business with him in the first place. 60 million Nigerians currently do not have bank accounts (at least they don't have to be stressed about their banks maintaining complete and accurate ledgers, or being trustworthy in general)
Building Cool Stuff
People continually try to build additional features both on top of Bitcoin and apart from Bitcoin by utilizing this new open-source technology. Some features which have been developed include multi-signature transactions, information registry, and networks which can process higher volumes of transactions using less computing power than Bitcoin. However, Bitcoin was not designed for this. Bitcoin was designed to be a currency. Because it was designed for a signle purpose, the addition of features to Bitcoin and creation of applications utilizing the Bitcoin protocol is a cumbersome process.
Thanks for making it this far.
Everything surrounding this technology is still in its infancy. 99% of the population still doesn't understand Bitcoin or distributed ledgers or digital currencies or blockchain technology. And, just like most of the world doesn't understand TCP/IP but still uses the internet everyday, they may never have to. But in the future, this technology will form the underlying infrastructure of many facets of the world.
This was just the tip of the iceberg and I hope your research continues.
Vitalik first introducing Ethereum
More recent Ethereum video
Links to Stuff
And it doesn't have to all be serious...
So, ultimately, the blockchain is a cryptographically-enforced, global, trustless, decentralized or distributed, sequential database. The processing and storage of data can now be performed by a decentralized/distributed network, and this processing and data storage can be trusted to occur exactly as programmed, without the possibility for change or corruption. All entries into this distributed database are tracked, all the way back to the first inception of the network.