-
-Part II will cover Bitcoin transactions, scripting, and integrating payments. Blockchain Institute will also be offering courses covering Scaling and the Lightning Network!
-
-Let’s get started!
-
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson02 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson02 2.md
deleted file mode 100644
index baed56c27..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson02 2.md
+++ /dev/null
@@ -1,68 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 1
-title: A Bitcoin History Lesson
-permalink: /courses/bitcoin-for-developers/1/bitcoin-history-lesson
----
-
-
-
-This course was designed for developers with no prior blockchain experience, so we’ll start right at the beginning by answering the question, what problem was the first blockchain, Bitcoin, built to solve?
-
-The quick answer here is the Double-Spend Problem or the Byzantine Generals Problem, which we’ll discuss more below.
-
-We think of Bitcoin and cryptocurrency as a rather new technology, and it is, but the vision of cash for the Internet is nearly as old as the Internet.
-
-When HTTP error codes were being created, code 402 Payment Required, was held for future use.
-
-
-
-Subsequently, there were many digital currency experiments prior to Bitcoin. Here’s a list of some fairly successful ones:
-
-DigiCash was founded by cryptographer David Chaum in 1989. The company developed a number of privacy protecting cryptographic protocols and saw some success with the companies product eCash which was trialed by two Australian banks in the ’90s.
-
-Other notable projects include E-Gold, Liberty Reserve , and Gold Money. Most of these systems sought to instill confidence by owning gold to back their currency and give it value. These currencies were essentially online tokens representing gold owned by the company.
-
-{% include callouts/note.html
- bodyText="Some understanding of monetary theory is helpful here to properly grasp the functioning of these currencies and modern cryptocurrencies. When a currency is not “backed” by a commodity, such a gold, and controlled by a nation state there needs to be another means of giving it value. Generally, this is done through scarcity either by limiting the supply, via cryptography and a blockchain network or by tying it to a limited physical commodity such as gold."
-%}
-
-While these systems worked, they had a serious drawback that was lamented by many in the digital currency community, they were centralized services. This centralization ran counter to the peer-to-peer dream of many digital pioneers, like the renowned “cypherpunks,” introducing security and privacy risks. However, this centralization existed for one very good reason, the Double-Spend Problem.
-
-Digital goods are very easy to copy. As in copy/paste easy to copy.
-
-
-
-When you have a string of data that represents a digital coin, you can use cryptography to prove origin, but you can’t prevent duplication.
-
-For example, let’s imagine that Alice has only one coin and yet she owes both Bob and Charlie one coin each. Alice can attempt to pay both of them using the same coin. She can take her coin, cryptographically sign it to prove that it is hers and then send it along to Bob. However, she can them take that same string of data that represents her coin, sign it again and send it along to Charlie. She is spending the same coin twice (double spending), and it’s not hard to see how this leads very quickly to massive inflation and destroys the currency.
-
-A central server can be used to prevent double spends--but is there another way?
-
-
-
-In the server-client model, payments can’t go directly from Alice to Bob, instead they first need to go through the central server which does the work of debiting Alice’s account and crediting Bob’s account.
-
-Many digital currency pioneers worked hard on solutions to this technological centralization issue and created federated systems, etc. But the peer-to-peer dream wasn’t realized until the development of Bitcoin, which solved the pesky problem of digital uniqueness.
-
-The Bitcoin Whitepaper was published by Satoshi Nakamoto in October 2008. Although not directly called so in the paper, this was the invention of what we now call the Blockchain.
-
-The whitepaper should certainly be read by anyone looking to understand this technology and its origins. But to summarized, Satoshi wanted to replace the centralized server with a peer-to-peer network which would then do the work of keeping track of who has what and when.
-
-{% include callouts/imageWithCaption.html
- image="courses/bitcoin-for-developers/ByzantineGenerals2-01.jpg"
- title="The Byzantine Generals Problem"
- bodyText="General;B:Traitor. Byzantine Generals problem is an old fashioned analogy for a modern computing problem. The analogy is an army of generals encircling an enemy city. To defeat the enemy the generals must attack at the same time. However, there may be traitors amongst them. How do they coordinate this data and agree upon an attack time in hostile territory with the possibility of traitors?"
-%}
-
-In the computer science world, this phrase refers to the possibility of having to cope with the failure of some of the components in the system.
-
-This term is used frequently in the blockchain world as it refers to the problem of reaching consensus in an open system where not all parties can be assumed to be trustworthy.
-
-The dream for this network is that is would be open to anyone. This brings us to the question of how do you coordinate data with people, around the world, who you don’t know or trust?
-
-{% include callouts/note.html
- bodyText="Satoshi Nakamoto is a pseudonym. It is still not clear who the creators of Bitcoin are or were."
-%}
-
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson03 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson03 2.md
deleted file mode 100644
index 0e64ecb14..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson03 2.md
+++ /dev/null
@@ -1,137 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 1
-title: Enter the Blockchain - Part I
-permalink: /courses/bitcoin-for-developers/1/enter-the-blockchain-part-i
----
-
-
-The Bitcoin blockchain was created to allow a network to coordinate and reach “consensus,” or agreement on shared data. Blockchains were created to solve the problem of how do users coordinate data with people, around the world, who they don’t know or trust?
-
-In this lesson and the next, we’ll walk through how the Bitcoin network comes to agreement on transaction data.
-
-But first, lets cover hashing as it is an integral part of the Bitcoin “Proof-of-Work consensus mechanism.”
-
-A hash function takes an input value and creates an output value deterministic of the input value. For any input value X, you will always receive the same output value Y whenever the hash function is run. In this way, every input has a determined output.
-
-
-
Properties of hashes:
-
-
-
Fixed length
-
No matter the size of the input, the output will be a uniform size
-
Easy to verify, infeasible to reverse
-
Any change in the input, no matter how small, will result in a different output
-
The output can be called the hash value, digest, or simply hash
-
-This is very useful in a number of ways. It allows you to use a hash as a nearly unforgeable identifier of data which can then be used to validate that data. The hash of data can also be used in a table to facilitate the quick lookup of that data.
-
-Bitcoin uses hash in many ways. For example, they are used to create transaction ID’s and to summarize and secure the data in a “block” of transaction data via Merkle trees.
-{% include callouts/definition.html
- title="MERKLE TREE"
- bodyText="A tree constructed by hashing paired data (the leaves), then pairing and hashing the results until a single hash remains, the Merkle root."
-%}
-
-{% include callouts/note.html
- bodyText='The SHA-256 hash algorithm is used extensively in bitcoin.'
-%}
-
-And now that hashes are out of the way, let's get back to understanding how the Bitcoin network makes decisions on which data is correct, and which is not.
-
-The first thing to keep in mind here is that this is a truly peer-to-peer network. There is no Bitcoin corporation, nor is there any one entity in control.
-
-When trying to visualize this process, it is helpful to keep the picture of nodes (computers) on a distributed network in your head. Remember, bitcoin is not a business or corporation, there is no CEO, no one entity is in control of it. Bitcoin is simply a network of computers all running the same, or compatible, software.
-
-
-
-
-Let’s walk through the Bitcoin blockchain proof-of-work consensus process with an example:
-
-You have one bitcoin that you are trying to double spend. You create a perfectly valid bitcoin transaction sending your 1 BTC (the abbreviation for the currency unit of Bitcoin) to Alice. You sign that transaction and broadcast it to the Bitcoin peer-to-peer (P2P) network. However, at the same time, you create an also perfectly valid transaction sending that 1 BTC to Bob, sign and broadcast it. How will the network decide which transaction is valid and which transaction is to be rejected as a double spend?
-
-
-
-Every node on the Bitcoin network contributes to “consensus,” the process by which the data is agreed upon and becomes the ‘truth’ on the network. However, certain nodes, called miners, play a very important role in this process.
-
-The Bitcoin software creates a competition between mining nodes who do the work of gathering transaction data into “blocks.” In this competition, the winning miner receives a reward for their work and their block of data becomes a part of the blockchain.
-
-The mining reward plays a very important role in providing economic incentives to do the work of maintaining the network. Miners, who are simply people running computers with a lot of processing power, are competing with each other to create a valid block of Bitcoin transaction data that will be accepted by the network. When a miners block of data is accepted by the network, they are given some bitcoin as a “mining reward” or “block reward” This happens in a special transaction called a coinbase transaction (not to be confused with Coinbase the company).
-
-
-
-When the Bitcoin network was launched in 2009, the reward was 50 BTC per block. This reward halves (called halving) every 4 years (or 210,000 mined blocks) until it reaches an amount too small to transfer on the Bitcoin network. This was originally scheduled for the year 2140, but due to variations in difficulty adjustments, will likely occur before then.
-
-To create a valid block and win the competition, a miner needs to validate all the transactions in the block and then find a hash for the block that meets with the current network requirements.
-
-The Bitcoin software is designed to self adjust it’s settings so that a block is found roughly every ten minutes. This is done via a network difficulty setting. Roughly every two weeks, every 2016 blocks, all the nodes on the network calculate how quickly valid blocks were “found” or “mined” on the network. If valid blocks of transaction data were mined more frequently than every 10 min, the difficulty requirement will go up. If blocks were minded less often than every 10 min, the difficulty requirement will do down.
-
-The difficulty requirement is simply the format of the hash of the block data.
-
-When the difficulty requirement goes up, then the network will only accept hashes that start with a greater number of zeros.
-
-For example, the first hash below might not be ‘difficult’ enough to meet current network standards, while the second hash might be satisfactory.
-
-{% include callouts/codeSnippet.html
- title="A low-difficulty hash"
- bodyText="00000000000008a3a41b85b8b29ad444def299fee21793cd8b9e567eab02cd81"
-%}
-
-{% include callouts/codeSnippet.html
- title="A higher difficulty hash"
- bodyText="0000000000000000000085b8b29ad444def299fee21793cd8b9e567eab02cd81"
-%}
-
-This involves some luck as a miner will not be able to determine what the hash will look like prior to running the data through the hashing function. However, we call it difficulty rather than luckiness as the more computing power miners put into the process(relative to the rest of the network) the more likely they are to be lucky enough to find an acceptable hash.
-
-A miner attempts to find an acceptable hash simply by hashing the block data together with a random number called a “nonce.”
-
-{% include callouts/definition.html
- title="NONCE"
- bodyText="An arbitrary number that can be used just once in cryptographic communication. In the case of bitcoin mining, a nonce is added to the block data to produce variation in hashing output."
-%}
-
-A miner will hash the block data, again and again, each time trying a different nonce until they are successful in finding a valid block hash, or until another miner has done so.
-
-Because of the way hash functions work, finding a compatible hash is a matter of trial and error that can take a considerable amount of computing power. Yet, verifying that a hash is valid is very quick and easy.
-
-This hashing is intentional busy work called “proof-of-work,” a concept first developed as a method to combat spam emails in 1993.
-
-This competition plays out with a miner winning the competition and receiving a reward roughly every 10min.
-
-In the next lesson, we’ll see how this competition determines which transaction in a double spend is valid and which is rejected. But first, here are some Mining Terms to get familiar with:
-
-{% include callouts/definition.html
- title="DIFFICULTY"
- bodyText="The number of leading zeros that a block hash should have."
-%}
-
-{% include callouts/definition.html
- title="BLOCK REWARD"
- bodyText="The amount of BTC given to a miner when their block is accepted by the network."
-%}
-
-{% include callouts/definition.html
- title="BLOCK TIME"
- bodyText="A measure of how long it will take the hashing power of the network to find a solution to the block hash, on average."
-%}
-
-{% include callouts/definition.html
- title="HASH RATE"
- bodyText="The estimated number of terahash per second the Bitcoin network is performing."
-%}
-
-{% include callouts/definition.html
- title="HASHING POWER"
- bodyText="The hash rate of a particular mining computer."
-%}
-
-{% include callouts/definition.html
- title="APPLICATION SPECIFIC INTEGRATED CIRCUIT (ASIC)"
- bodyText="A computer chip built to be heavily optimized for a particular computational process, such as hashing SHA256."
-%}
-
-{% include callouts/definition.html
- title="HALVING"
- bodyText="The date, roughly every four years, when the block reward is reduced by half."
-%}
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson04 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson04 2.md
deleted file mode 100644
index f764f0123..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson04 2.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 1
-title: Enter the Blockchain - Part II
-permalink: /courses/bitcoin-for-developers/1/enter-the-blockchain-part-ii/
----
-
-
-
-So let’s head back to our example where you are attempting a double spend on the Bitcoin network. You have broadcast two valid transactions for 1 BTC each, one to Alice and one to Bob in an attempt to spend the same bitcoin twice.
-
-
-
-Which transaction “wins” and becomes valid depends upon which miner wins the mining race! If miner Ayat received the transaction to Alice first, her mining software will then reject the transaction to Bob as an invalid double spend. She will create a block that includes the transaction to Alice, not Bob. If the miner Han receives the transaction to Bob first, his software will reject the transaction to Alice as an invalid double spend. He will create a block that includes the transaction to Bob, not Alice. Though both valid, one of these will lose as an “orphaned block.”
-
-{% include callouts/definition.html
- title="ORPHANED BLOCKS"
- bodyText="These are blocks which are entirely valid but did not become part of the main chain. They can occur naturally when two miners produce blocks at similar times."
-%}
-
-If Ayat, or any miner who received Alice’s transaction first, wins this round of the mining race, then Alice receives the transaction. If Han, or any miner who received Bob’s transaction first, wins this round of the mining race, then Bob receives the transaction.
-
-
-
-Let’s assume that Han “wins” this round of the mining race by being the first to find a hash for his block of transaction data that meets with the current network standards. His block of data contains the transaction sending the funds to Bob. He quickly transmits his winning block to the rest of the network. The funds in question are transferred to Bob and the duplicate transaction going to Alice is rejected as an invalid.
-
While it was quite difficult for Han’s computer to find the winning hash, it is trivial for other computers on the network to verify that he has indeed won. Once other nodes have verified that Han did indeed win, they will accept Han’s block, approving of the coinbase transaction that rewards him for his work, and then carry on trying to find a valid hash for the next block.
-
-{% include callouts/note.html
- bodyText='There will only ever be 21 Million bitcoins. Bitcoins are created in the coinbase transaction and given to the winning miner as the block or mining reward. When the network launched in 2009 the mining reward was 50BTC. This reward halves roughly every 4 years, specifically every 210,000 blocks. "Halvings” have taken place in 2012 and 2016, leaving the current block reward at 12.5BTC. The next halving is estimated to take place in 2020. This will continue until the block reward is too small of an amount to be tracked on the Bitcoin network which is estimated to happen ~2140 leaving a total of 21 million BTC.'
-%}
-
-This is how Blockchain gets it's name. Each new block of data is cryptographically linked to the last block by including the hash of the previous block in the new block. In this way, blocks are linked together in a sort of cryptographic chain, hence the name blockchain.
-
-{% include callouts/definition.html
- title="BLOCK TIME AND DIFFICULTY ADJUSTMENTS"
- bodyText="When new mining computers join the network there is an increase to the total hashing power of the network, which means that blocks are likely to be found sooner. This situation likely means that the difficulty will be adjusted upwards. And the reverse is true as well. When miners leave the network, the difficulty will be adjusted downwards."
-%}
-
-{% include callouts/definition.html
- title="CONFIRMATIONS"
- bodyText="When a transaction has been included in a block it is said to have one 'confirmation'. When a second block is mined ‘on top’ of that block, we say that the transaction now has 2 confirmations, etc, etc. The more confirmations, or blocks added to that chain, the greater the certainty for that transaction. This is important as in a decentralized network like Bitcoin, confirming a transaction is not as simple as a database entry."
-%}
-
-The above is the way in which the Bitcoin network agrees upon data and achieves “consensus.” While this whole process is managed by the Bitcoin software, it would be incorrect to think of this system as only computer science. Open, public blockchains like Bitcoin, are entire economic systems that rely heavily on monetary theory, economics, incentive structures, and game theory to function and thrive.
-
-{% include callouts/definition.html
- title="CONSENSUS ALGORITHM"
- bodyText="This is the method by which a network achieves agreement on data. Bitcoin’s consensus algorithm is often referred to as a proof-of-work algorithm due to its heavy reliance on proof-of-work hashing done by miners. Bitcoin’s consensus essentially creates a proof-of-work race between miner nodes in order to determine who gets to add data to the blockchain."
-%}
-
-{% include callouts/note.html
- bodyText="There are many other consensus algorithms that have been developed since Bitcoin, such as proof-of-stake."
-%}
-
-
-{% include callouts/callout.html
- title="INCENTIVES AND GAME THEORY"
- bodyText='Bitcoin and other open blockchain systems cannot function without economic incentives. Understanding the system and trying to predict how an open blockchain will behave cannot be done without considering the game theory.'
-%}
-
-What are the Implications? While outside the scope of this course, it is very interesting to consider the implications of this technology. What might be the impact of money that exists outside the nation-state? What might be the impact of a technology that changes who and how we trust?
-
-Now that was a lot of information to absorb! While that information settles in your head, let’s cover some cryptography basics.
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson05 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson05 2.md
deleted file mode 100644
index 89b1b96f9..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson05 2.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 2
-title: Asymmetric Cryptography
-permalink: /courses/bitcoin-for-developers/2/asymmetric-cryptography
----
-
-
-
-Cryptocurrencies are called so because cryptography is the material they are built with. Having a basic understanding of asymmetric cryptography is a prerequisite for comprehending how cryptocurrencies work.
-
-Asymmetric or public/private key cryptography was developed in the 1970s. Prior to then, the only cryptography available was symmetric. Let’s take a look at how symmetric cryptography works to gain some insight into why asymmetric cryptography was developed and the advantages it has.
-
-{% include callouts/bigQuote.html
- body="Public-key cryptography, or asymmetric cryptography, is a cryptographic system that uses pairs of keys: public keys which may be disseminated widely, and private keys which are known only to the owner. The generation of such keys depends on cryptographic algorithms based on mathematical problems to produce one-way functions. Effective security only requires keeping the private key private; the public key can be openly distributed without compromising security."
- sourceName="Wikipedia"
- sourceUrl="https://en.wikipedia.org/wiki/Public-key_cryptography"
-%}
-
-Alice and Bob want to communicate securely with one another.
-
-
-
-To do this Alice creates a message to Bob and scrambles it using a specific formula also called an encryption algorithm. This is done using a secret, or a key.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/SharedKey-01.jpg"
- title="Encryption Process"
- bodyText="A:Plain text;B:Encryption Algorithm;C:Cypher text;D:Shared Key."
-%}
-
-Let’s look at a much more simplified example of this…
-
-Alice wants to encrypt the word “Hello” to send to Bob. She uses the very simple formula of taking each letter in the word and changing it to the letter two spaces over in the alphabet. This formula is the algorithm or key.
-
-{% include callouts/callout.html
- title="Simple Cypher Encryption"
- bodyText="Hello → [ move over two spaces in the alphabet ] → Kgnnq"
-%}
-
-{% include callouts/callout.html
- title="Simple Cypher Decryption"
- bodyText="Kgnnq → Key → Hello"
-%}
-
-If Bob knows this formula, then Alice can securely transmit this message to Bob, and it will look like gibberish to anyone who intercepts the message.
-
-This works just fine; the problem is with transmitting the key to Bob. How do you securely transfer the key? Anyone who intercepts it will be able to read all the communication between Alice and Bob.
-
-
-
-This is a fundamental weakness in symmetric cryptography that was solved by asymmetric cryptography. Lets see how it's done in the next lesson!
-
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson06 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson06 2.md
deleted file mode 100644
index 5169134c7..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson06 2.md
+++ /dev/null
@@ -1,126 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 2
-title: Public and Private Keys
-permalink: /courses/bitcoin-for-developers/2/public-and-private-keys
----
-
-
-Asymmetric cryptographic algorithms were first developed in the 1970s and are fundamental to so many of the technologies we use today. It’s used on any secured page on the internet, on your cell phone, at your bank, etc.
-
-The first asymmetric algorithms:
-
-
-
Diffie–Hellman key exchange
-
-
1976
-
-
-
RSA (Rivest–Shamir–Adleman)
-
-
1978
-
-
-
-With asymmetric cryptography, instead of having one key, each party has two keys: a public key and a private key.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/AliceBobKeys-01.jpg"
- title=""
- bodyText="A:Alice Private Key;B:Alice Public Key;C:Bob Private Key;D:Bob Public Key."
-%}
-
-
-How this works is quite interesting. Alice and Bob can exchange public keys with each other in the open. It does not matter if Charlie obtains a copy of the public keys; all he can do with those keys is encrypted a message to Alice or Bob.
-
-With Bob’s public key, Alice can encrypt her message to him and transmit it. Charlie, even having both public keys, cannot decipher the message. The only person who can decipher the message is someone in possession of Bob’s private key, in this case, only Bob can do this.
-
-{% include callouts/callout.html
- title="Public Keys"
- bodyText="
Can be shared publicly.
Can be used to encrypt a message to another party.
Bob’s public key can be used to encrypt a message to Bob that only he can decipher.
It is infeasible to reverse engineer a private key from a public key.
-
Are the only keys that can be used to decrypt a message.
-
Need to be kept strictly private.
-
"
-%}
-
-Bob can also use Alice’s public key to encrypt a message to Alice.
-
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/TextandKeys-01.jpg"
- title=""
- bodyText="A:Plain text;B:Alice public key;C:Cipher text;D:Alice private key."
-%}
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/AlicePublicKey-01-2.jpg"
- title=""
- bodyText="A:Alice public key."
-%}
-
-Public keys and encrypted messages can now be transmitted in the open and our key thief here, Charlie, will still be unable to read the contents of the message.
-
-Asymmetric cryptography is an incredibly powerful tool that can be used for a wide variety of applications.
-
-The first use case is using this technology to encrypt and decrypt messages! However, the bitcoin software makes use of this technology to sign and verify messages, or more specifically, transactions.
-
-
-
ENCRYPTING VS. SIGNING VS. HASHING
-
-
-
-Bitcoin, and other cryptocurrencies, are built on cryptography, but actually very little “encryption” is done in the Bitcoin protocol while signing and hashing is used extensively. Let’s be sure we understand the difference. Below are rough explanations of these three related yet different functions.
-
-{% include callouts/definition.html
- title="ENCRYPTION"
- bodyText="Scrambling data so that only entities with access to the keys will be able to decipher the message."
-%}
-
-{% include callouts/definition.html
- title="SIGNING"
- bodyText="Taking data and producing from it a “signature,” another piece of data, that could have only have come from the entity controlling a certain private key."
-%}
-
-{% include callouts/definition.html
- title="HASHING"
- bodyText="Creating a unique identifier for a specific piece of data."
-%}
-
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/EncryptSignHash-01.jpg"
- title=""
- bodyText="A:The quick brown fox jumps over the lazy dog;B:Encrypt;C:Sign;D:Hash."
-%}
-
-Let’s take just a quick look at how the signing, and the verifying of those signatures works on the Bitcoin network.
-
-Bitcoin uses elliptic curve cryptography, ECDSA, or more specifically the SECP256k1 curve.
-
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/BitcoinSigs-01.jpg"
- title=""
- bodyText="BITCOIN USES SECP256k1 SIGNATURESElliptic curve cryptography"
-%}
-
-Alice’s wallet will produce a transaction sending funds from an address she controls to an address Bob controls. This transaction data is signed with Alice’s private key. This produces a signature that proves Alice, or anyone in possession of her private key, has authorized the transfer.
-
-To sign a transaction in Bitcoin, the data is first hashed (which we discussed in Enter the Blockchain Part I) then ran through the an algorithm which uses the private key to produce a signature.
-
-When trying to verify that signature, you’ll need the transaction data that was signed (in the case of Bitcoin, that would be the transaction hash) the signature, and the public key. That data is then run through a validation algorithm which generally returns a true or false response.
-
-Cryptography is very much a skill all its own separate from software development. There is a saying in the crypto world, “don’t roll your own crypto.” This phrase expresses the idea that it is very risky to attempt to build your own cryptography tools. There are many tried and tested libraries out there for signing and verifying signatures.
-
-And now that we’ve covered some basics, we’ll be diving into decentralization and the functioning of decentralized networks in the next lesson.
-
-
-
-Further reading: A (relatively easy to understand) primer on elliptic curve cryptography.
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson07 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson07 2.md
deleted file mode 100644
index 870758e4b..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson07 2.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 2
-title: Decentralization and Consensus
-permalink: /courses/bitcoin-for-developers/2/decentralization-consensus
----
-
-
-
-
-Bitcoin was built to enable decentralized agreement, or consensus, on data. Bitcoin’s Proof-of-Work, a mining consensus algorithm, was built to achieve this goal and maintaining this decentralization is fundamental to the systems structure and security model. However, this is a very different structure than most of us are used to working with. Interacting with a blockchain is not like querying a database; it is much more complex.
-
-Let’s start by taking a look at the beginning of digital, decentralized networks in an effort to gain some insight into this structure.
-
-
-
-These networks began with the internet. While the internet itself soon developed a client-server model, many networks online developed a truly decentralized, peer-to-peer structure. Some examples being:
-
-
IRC/Usenet (federated)
-
Napster/eDonkey/Limewire
-
Kademlia -> BitTorrent
-
-The decentralized network that is most commonly known is likely BitTorrent which is used for peer-to-peer (P2P) file sharing. It might be helpful to keep this architecture in your head when visualizing the bitcoin network.
-
-
-
-Bitcoin is a decentralized, P2P network in a very similar fashion to a file sharing network. (Learn about decentralized file storage here.)
-
-When you download the Bitcoin client software, it generally comes with the IP address of a few well-known nodes. When the software runs, it queries those nodes to find it’s connections continues like a ripple effect. Bitcoin main net connections happen on port 8333, and the program looks for connections there.
-
-The software is constantly connecting with peers to receive network data and transaction data. A full node will keep a full copy of the blockchain, check the validity of the data it is receiving, and then pass it along to peers. In this way nodes on the network play an important role in maintaining network consensus.
-
FULL NODE VS. LIGHT CLIENT
-
-
-
-A “full node” is a computer that is running bitcoin software and maintaining a complete copy of the bitcoin blockchain. In contrast, a “light client” is a computer, or sometimes a mobile phone, that is running bitcoin software, but that does not maintain a complete copy of the blockchain. This is often done to save space on a machine or mobile phone. For example, a bitcoin wallet running on a smartphone. In this scenario incoming transactions are validated via a process called SPV, or Simplified Payment Verification.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/FullNodeLightClient-01.jpg"
- title="Full Node or Light Client"
- bodyText='WHY RUN A FULL NODE:Running a full node provides a greater level of autonomy, influence in network decisions (seeUASF) and increased privacy and security. Light clients rely on other full nodes on the network to provide them with data. A light client has to query another node to find data on a transaction that it is interested in. This can reveal the financial interests of the light client operator.'
-%}
-
-We briefly covered the mining process in lesson two, Enter the Blockchain Part I, and here we’ll dive a bit deeper into consensus algorithms and maintaining consensus long term with governance systems.
-
-{% include callouts/bigQuote.html body="A consensus algorithm is a process in computer science used to achieve agreement on a single data value among distributed processes or systems. Consensus algorithms are designed to achieve reliability in a network involving multiple unreliable nodes. Solving that issue — known as the consensus problem — is important in distributed computing and multi-agent systems." sourceName="Whatis.com" sourceUrl="https://whatis.techtarget.com/definition/consensus-algorithm" %}
-
-It’s rather remarkable that a collection of computers, with no central authority, can come to an agreement on the state of the network. This process is called emergent consensus. We call it emergent because it is not brought about explicitly but through the interplay of four processes which happen independently on nodes throughout the network.
-
-
Validation of transactions
-
The mining of blocks
-
Validation of blocks
-
Selection of the chain with the most cumulative proof-of-work
-
-The longest, valid chain with the most accumulated proof-of-work is the chain that a node is programmed to follow. Accumulated proof-of-work can be thought of as a measure of the amount of hashing power or computing power that went into making that chain of blocks.
-
-Proof-of-Work, discussed in our second lesson, is only one step in this process and can be replaced with other consensus mechanisms such as Proof-of-Stake.
-
PUBLIC NETWORK CONSENSUS ALGORITHMS
-
-
-
-
-
PoW -> Proof of Work
-
PoS -> Proof of Stake
-
DPoS -> Delegated Proof of Stake
-
-
There are many variations on PoS
-
-
-
PoA -> Proof of Activity
-
-
A hybrid between PoW & PoS
-
-
-
-While we won’t dive into differing consensus algorithms here, it is important to note that many options have been developed since the invention of Nakamoto proof-of-work consensus in 2008.
-
-
INCENTIVES AND GAME THEORY
-
While Bitcoin is a software project, the network that it creates is sustained and managed with incentives and game theory. Let’s take a look at how that protects the network in the below video:
-'
-
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson08 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson08 2.md
deleted file mode 100644
index 1cf9b29e6..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson08 2.md
+++ /dev/null
@@ -1,135 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 2
-title: Governance
-permalink: /courses/bitcoin-for-developers/2/governance
----
-
-
-
-
-So, we have a decentralized network, that no one entity can control. How do we make changes and upgrades to that network?
-
-How are changes made on a network that no one controls? This dilemma we call governance.
-
-While governance solutions have been built into some blockchain protocols, Bitcoin is fairly simple in this regard. There are only a few built-in methods for decisions making. Let’s take a look at how things get done.
-
THE BIP PROCESS
-
-
-
-BIP stands for Bitcoin Improvement Proposal. This is a process for submitting changes to the repo.
-
-A description of the process and a complete list of BIP’s can be found here.
-
-Proposed changes should first be discussed on the mailing list, then a pull request submitted.
-
-Once a proposed change becomes a BIP it goes through peer review and the below process.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/Process-01.jpg"
- title=""
- bodyText="A:Draft;B:Deferred;C:Accepted;D:Rejected;E:Withdrawn;F:Final;G:Replaced;H:Active."
-%}
-
-After a BIP is accepted, then the real fun of network implementation begins.
-
HOW A BIP BECOMES NETWORK PROTOCOL
-
-
-
-How difficult the process is depends a lot on the type of change or BIP that is being implemented.
-
Types of BIP’s or Tracks.
-
-
Standards
-
-
Changes that affect network protocol
-
Changes in block or transaction validity rules
-
Changes or additions that affect the interoperability of applications using Bitcoin
-
Requires community consensus
-
-
-
Informational
-
-
Changes in general guidelines or information to the Bitcoin community
-
Does not require community consensus
-
-
-
Process
-
-
Proposes a change to a process
-
Usually requires community consensus
-
-
-
-It’s very important to note the difference between a simple code change and a consensus change. Any change affecting the consensus rules on the network will require either a soft fork or a hard fork.
-
-{% include callouts/note.html
- bodyText="In this context “fork” has a different meaning from software fork or a fork in a repo. Here we mean a chain split or a network partition that can result in separate networks."
-%}
-
-
HARD FORKS VS. SOFT FORKS
-
-
-
-A soft fork is a network upgrade which can be thought of a non-mandatory. Nodes running old versions of the software will still be able to interact with and maintain consensus on the network.
-
-A hard fork is a network upgrade or change that either forces nodes on the network to upgrade or results in a permanent split in the network.
-
-{% include callouts/definition.html
- title="TEMPORARY FORKS"
- bodyText="The most common way in which a fork occurs is when there are separate groups of nodes that have different copies of the blockchain ledger. This can happen when there’s a high transaction volume, and nodes find multiple new blocks which can be confirmed within the rules of the system. In Proof of Work models, the longest chain will always win, so the network will ultimately return to a global consensus quite quickly."
-%}
-
-{% include callouts/definition.html
- title="BALANCE OF POWER"
- bodyText="There are many different groups in the bitcoin ecosystem that have influence. Miners, developers, wallets and users, exchanges, and merchants. It’s important to remember that while bitcoin core developers can release changes to the protocol, no one has to upgrade to run the new software. That is a choice made by every individual who has a machine running bitcoin."
-%}
-
-The process of transitioning to new consensus rules is called activation.
-
-There have been a number of methods used in Bitcoin to activate a change:
-
-{% include callouts/definition.html
- title="FLAG DATE"
- bodyText="This is a very simple activation method where a new rule becomes active on a specific date."
-%}
-
-{% include callouts/definition.html
- title="ISM ISSUPERMAJORITY"
- bodyText="This uses miner signaling and was the first version of MASF(described below). This bit of code activates changes once 950 of the last 1000 blocks have signaled for activating the new change."
-%}
-
-{% include callouts/definition.html
- title="BIP9 - VERSION BITS"
- bodyText="Miner signalling, a way for miners to signal readiness for a soft fork by setting bits in the block header nVersion field."
-%}
-
-{% include callouts/definition.html
- title="MASF - MINER ACTIVATED SOFT FORK"
- bodyText="In this scenario blocks signal a version and a soft fork is activated through this signaling."
-%}
-
-{% include callouts/definition.html
- title="UASF - USER ACTIVATED SOFT FORK"
- bodyText="This scenario involves non-mining full nodes updating their software to a version that requires certain rules on the network, perhaps beginning at a flag date after which blocks that do not meet those requirements are not propagated on the network."
-%}
-
-The above is a rough summary as this is a rather complicated situation. Other networks employ more sophisticated methods for determining consensus and activating changes. The Decred project has an interesting model which you can read about here.
-
-There has been an evolution of methods used to bring about change in Bitcoin. The well-distributed balance of power in the ecosystem has done a good job of preventing any hostile takeovers, it has also made the system very conservative with only the most tried and test and overwhelmingly approved of changes making it to activation.
-
-The activation process on the bitcoin network is a complicated and constantly evolving process.
-
-
-
-Further reading can be found here:
-
-Forks, Signaling, and Activation
-
-Version bits FAQ for miners
-
-UASF: User Driven Protocol Development
-
-
-
-In the next section we’ll get into technical specifics starting with setting up a node.
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson09 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson09 2.md
deleted file mode 100644
index f51b665cd..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson09 2.md
+++ /dev/null
@@ -1,183 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 3
-title: Bitcoin Nodes
-permalink: /courses/bitcoin-for-developers/3/bitcoin-nodes
----
-
-
-Now that we’ve covered the history behind Bitcoin and have a theoretical understanding of how blockchains function, let’s see it in action.
-
-Thus far when we have said “node” we meant “full node”. As mentioned, full nodes keeps a complete copy of the Bitcoin blockchain and participates in network consensus by checking and forwarding valid transactions. They download every block and transaction and check them against Bitcoin’s consensus rules.
-
-
THINGS A "FULL NODE" DOES
-
-
-
-
-
Keep a complete copy of the blockchain
-
Maintain connections to peers
-
Validate incoming data (transactions and blocks)
-
Distribute valid data
-
-In these ways, a full node contributes to network “consensus”.
-
-{% include callouts/note.html title="SPV nodes reminder:" bodyText='Lightweight or thin clients are nodes that use Simplified Payment Verification. SPV is a method for verifying that particular transactions were included in a block without downloading the entire blockchain. This allows you to run software that interacts with the bitcoin network on low resource machines, such as running a wallet on a smartphone. However, using SPV instead of full nodes means the loss of some privacy and security.' %}
-
-Before we can set up a node there are two more things to consider. Do we want to run on mainnet, testnet or regtest? And which Bitcoin implementation do we want to use?
-{% include callouts/definition.html
- title="Mainnet"
- bodyText="Mainnet is the live Bitcoin network. To fully participate in the Bitcoin ecosystem you’ll want to be running a mainnet node. However, when starting out and testing new applications mainnet is likely not the best option as it comes with the risk of losing coins which have real value. To run a mainnet full node you will need to download the entire ~200GB blockchain."
-%}
-
-{% include callouts/definition.html
- title="Testnet"
- bodyText="Testnet is a public bitcoin network that is used by developers around the world to test Bitcoin applications. You can find and use Bitcoin testnet coins and exchange them with others on the testnet. These coins very intentionally have no exchange value; they are used simply for testing. To run a testnet node you will need to download the testnet blockchain which is significantly smaller than mainnet at only ~20GB."
-%}
-
-{% include callouts/definition.html
- title="Regtest"
- bodyText="Regtest allows you to set up your own local blockchain. When you start a node in regtest mode there is no blockchain data to download. You need to create all the blockchain data yourself!"
-%}
-
-Once you know what network you want to run on, you’ll need to choose a client or implementation. Bitcoin core (formerly Bitcoin-Qt), is the reference implementation and is still the most commonly used bitcoin implementation. It is written in C++. However, there are now a number of other options such as Bitcore witch is written in Node.js or btcd which is written in GoLang.
-
-Here we will walk through instructions for both Bitcoin’s testnet and running in regtest mode using the reference implementation Bitcoin Core, or more specifically the bitcoind daemon.
-
-{% include callouts/note.html
- bodyText='The below instructions are for Ubuntu machines. Mac OS and Windows instructions can be found here.'
-%}
-
-
-Once you have the software installed, we’ll need to configure it.
-
TESTNET INSTRUCTIONS
-
-
-
-{% include callouts/terminal.html
- title="Install the Bitcoin Daemon"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="apt-add-repository ppa:bitcoin/bitcoin, apt-get update, apt-get install bitcoind"
-%}
-
-
-{% include callouts/terminal.html
- title="Start bitcoind"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="bitcoind -testnet -printtoconsole -daemon -server"
-%}
-
-{% include callouts/terminal.html
- title="View the debug log in a separate console window"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="tail -f .bitcoin/testnet/debug.log"
-%}
-
-{% include callouts/terminal.html
- title="Create a config file in .bitcoin"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="touch bitcoin.conf"
-%}
-
-
THE BITCOIN.CONF FILE
-
-
-
-{% include callouts/codeSnippet.html
- title="Bitcoin.conf Configured for RPC"
- bodyText='# Set up RPC, server=1, rpcuser=test, rpcpassword=test, rpchost=127.0.0.1, rpcport=6163, # Run on the testnet, testnet=1, # Specify a directory for testnet data, #datadir=/home/bitcoin/.bitcoin/testnet'
-%}
-
-
REGTEST MODE INSTRUCTIONS
-
-
-
-{% include callouts/note.html
- bodyText='Learn more about regtest.'
-%}
-
-{% include callouts/terminal.html
- title="Start bitcoind in regtest mode"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="bitcoind -regtest -printtoconsole -daemon -server"
-%}
-
-{% include callouts/terminal.html
- title="View the debug log in a separate console window"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="tail -f .bitcoin/regtest/debug.log"
-%}
-
-{% include callouts/terminal.html
- title="Create a config file in .bitcoin/regtest"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="touch bitcoin.conf"
-%}
-
-
THE BITCOIN.CONF FILE
-
-
-{% include callouts/codeSnippet.html
- title="Bitcoin.conf Configured for RPC"
- bodyText="# Set up RPC, server=1, rpcuser=test, rpcpassword=test, rpchost=127.0.0.1, rpcport=6163, # Run on a regtest network, regtest=1, # Connect only to the specified node, connect=[your local IP]"
-%}
-
-
TRY OUT SOME COMMANDS
-
-
-{% include callouts/terminal.html
- title="Kill bitcoind and restart"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="pkill -9 -f bitcoind, bitcoind [-regtest or -testnet] -printtoconsole -daemon -server"
-%}
-
-{% include callouts/terminal.html
- title="Use bitcoin-cli to view your connection to peers"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="bitcoin-cli [-regtest or -testnet] -getinfo"
-%}
-
-{% include callouts/terminal.html
- title="Generate a new address to receive coins"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="bitcoin-cli [-regtest or -testnet] getnewaddress"
-%}
-
-{% include callouts/terminal.html
- title="Check your balance"
- user="hannah@ubuntu"
- directory="~/"
- bodyText="bitcoin-cli [-regtest or -testnet] getbalance"
-%}
-
-Now that we’ve had a chance to experience bitcoin on the command line, let’s take a step back in our next lesson and be sure we understand in more depth what a bitcoin is.
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson10 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson10 2.md
deleted file mode 100644
index caead7265..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson10 2.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 3
-title: What is a Bitcoin?
-permalink: /courses/bitcoin-for-developers/3/what-is-a-bitcoin
----
-
-
-
-We’ll dive into bitcoin wallets in the next few lessons, but, in order to understand what a wallet is doing, you need to understand what a bitcoin actually is.
-
-{% include callouts/note.html
- bodyText='Have you read the Bitcoin whitepaper yet? If not you really should! Check it out here:https://bitcoin.org/bitcoin.pdf'
-%}
-
-From the bitcoin whitepaper, “We define an electronic coin as a chain of digital signatures.” Bitcoins are not really digital “coins”. They don’t have serial numbers or a set unit; they don’t "live" in a wallet. Bitcoin’s are just divisible and joinable ledger entries that "live" on the bitcoin blockchain.
-
-Here we’ll introduce you to the concept of UTXO’s or unspent transaction outputs. Every transaction has inputs and outputs. To understand this let’s walk through an example.
-
-When a bitcoin is first created, it is given to a miner as a mining reward. Currently, the mining reward for a block is 12.5 bitcoin or BTC. The transaction that gives the miner these funds is called a coinbase transaction. The 12.5 BTC is sent to the address that the miner has specified. That 12.5 BTC is now an unspent transaction output that can be used in another transaction.
-
-
-
-Let’s imagine that our miner, Alice, now wants to pay for some server space using BTC. She purchases 0.05 worth of hosting from Bob. In that transaction, she uses the only UTXO that she has which is worth 12.5 BTC.
-
-The transaction breaks up the input worth 12.5 BTC, sending 0.05 to Bob, and 12.449 going back to Alice with the remainder of 0.001 being offered as a transaction fee for the miner who mines the block the transaction is in.
-
-{% include callouts/callout.html
- title="BITCOIN TRANSACTION FEES"
- bodyText="Transaction fees on the bitcoin network are not specified but implied in the remainder of any UTXO that is not sent back to the sender as change. Also, fees are generally not calculated base on the value of the transaction but instead based on the size of the transaction data."
-%}
-
-After the transaction is mined, Alice now has a UTXO worth 12.449 and Bob has a UTXO worth 0.05.
-
-
-
-We’ll cover bitcoin transactions in some detail in Part II. The important takeaway for the moment is that bitcoin’s are UTXO’s, which are ledger entries, that live on the bitcoin blockchain. Holding bitcoins means holding, managing and securing the private keys that control those UTXO’s that live on the shared network ledger.
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson11 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson11 2.md
deleted file mode 100644
index 20b977e20..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson11 2.md
+++ /dev/null
@@ -1,101 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 3
-title: Introduction to Wallets and Addresses
-permalink: /courses/bitcoin-for-developers/3/intro-to-wallets-and-addresses
----
-
-
-
-In bitcoin, a wallet is a bit of an abstract. The bitcoin protocol doesn’t contain the notion of wallets. This concept is created by user interfaces for user comfort.
-
-Wallets are built for two primary functions:
-
-
They are a user interface for scanning the blockchain and checking the balance of the users addresses.
-
They are systems for managing a users private keys and for signing and sending transactions.
-
-Here we will focus primarily on the second function and look at how wallets store private keys, interact with the blockchain and construct, sign and transmit transactions. Primarily we’ll focus on a wallets roll as a keychain for the private keys that control a users funds on the blockchain.
-
-
-
-First, let’s take a step back and learn the relationship between public/private key pairs and bitcoin addresses.
-
-Again, bitcoin uses Elliptic curve cryptography. A generation point on an elliptic curve is used to produce a public key once a private key has been chosen. More information about this process can be found here.
-
-However, for this lesson we will summarize the process of generating a public key by saying that public keys are derived from private keys and we’ll look at the process of generating bitcoin addresses from public keys.
-
-Bitcoin makes extensive use of hashing functions. To derive an address from a public key two hashing functions are used, SHA256 and RIPEMD160.
-
-{% include callouts/codeSnippet.html
- title="Address Generation Formula"
- bodyText="Address = RIPEMD160(SHA256(Public Key))"
-%}
-
-This results in a 160-bit, 20-byte string that is then base58 encoded the result of which looks like this:
-
-{% include callouts/codeSnippet.html
- title="Address Generation Output"
- bodyText="1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZ"
-%}
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/PKtoBA-01.jpg"
- title=""
- bodyText="A:Public Key;B:SHA256;C:RIPEMD160;D:'Double Hash' or HASH160;E:Public Key Hash (20 bytes/160 bits);F:Base58Check Encode with 0x00 version prefix;G:Bitcoin Address (Base58Check Encoded Public Key Hash)."
-%}
-
-{% include callouts/note.html
- bodyText="Bitcoin addresses are usually encoded as base58 which is similar to Base64 but has been modified to avoid both non-alphanumeric characters and letters which might look ambiguous when printed. This was done to help prevent human error when copying the data. In base58 the following similar-looking letters have been removed such as 0 (zero), O (capital o), I (capital i) and l (lower case L) and the symbols '+' & '/'. The remaining characters are, 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz."
-%}
-
-
ADDRESS TYPES AND CHECK ENCODING
-
-
-In bitcoin, most data presented to the user is not just base58 encoded, but base58check encoded to help prevent errors.
-
-This adds prefix data to addresses that can be used to help verify the accuracy of the following data. Here is how this is done.
-
-A version prefix is added to the address and an additional four bytes are added to the end of the data as a checksum called Base58Check and is used as built-in error-checking to protect against typos.
-
-
-{% include callouts/codeSnippet.html
- title="This checksum is created from the hashing the encoded data as follows:"
- bodyText="Checksum = SHA256(SHA256(prefix+base58 address))"
-%}
-
-The first 4 bytes of this are then added to the end of the address.
-
-When an address is typed into a wallet Base58Check code, the decoding software will calculate the checksum of the address on it’s own and compare it to the checksum included in the address. If the two do not match, the address entered is invalid.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/WalletsandAddresses-01-1.jpg"
- title="BASE58CHECK ENCODING"
- bodyText="1:Add Version Prefix;2:Hash (Version Prefix + Payload);3:Add First 4 Bytes as Checksum;4:Encode in Base-58.A:Payload;B:Version;C:SHA256;D:First 4 Bytes;E:Checksum;F:Base58 Encode;G:Base58Check Encoded Payload."
-%}
-
-In January of 2012, with BIP16, a new type of bitcoin address was introduced, Pay to Script Hash or P2SH. This type of address is not based on a public key but instead on the hash of a script. Bitcoin scripting is a topic that we’ll cover in depth in Part II of this series. For the moment let’s think of a bitcoin script as a bit of code that needs to return true when run in order for a transaction to be considered valid. It’s an unlocking script.
-
-A common use case for P2SH addresses is a multi-signature address or multi-sig for short. Any funds sent to this address can only be spent by a transaction that is signed by m of n signatures, 2 of 3 being a very common setup.
-
-To create a 2 of 3 multi-sig P2SH address a script requiring a valid signature from any 2 of 3 keys is created and then hashed in the same fashion as described above.
-
-{% include callouts/codeSnippet.html
- title="Hash generation for BTC Script"
- bodyText="Script hash = RIPEMD160(SHA256(the script))"
-%}
-
-The version prefix that is used depends on which network the address is intended for and whether it is a P2SH (Pay to Script Hash) or P2PKH (Pay to Public Key Hash) address.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/WalletsandAddresses-02.jpg"
- title=" "
- bodyText="A:Type;B:Version Prefix (Hex);C:Base58 Result Prefix;D:Bitcoin Address;E:Pay-To-Script-Hash Address;F:Bitcoin Testnet Address."
-%}
-
-{% include callouts/definition.html
- title="CONCEPTUALIZE"
- bodyText="Bitcoin’s, or UTXO’s, 'live' at bitcoin addresses. In order to transfer those funds the owner of the funds, who is presumably the owner of the private keys the address was derived from, has to sign the transferring transaction with their private key. In this way users don’t really hold bitcoin's, but rather control them with their private keys."
-%}
-
-And now that we have a base for understanding bitcoin addresses, let’s head back to wallets!
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson12 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson12 2.md
deleted file mode 100644
index 4787320fa..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson12 2.md
+++ /dev/null
@@ -1,114 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 3
-title: Wallet History and Mnemonic Seeds
-permalink: /courses/bitcoin-for-developers/3/wallet-history-mnemonic-seeds
----
-
-
-
-The following two lessons were written with the goal of providing a good foundation for building or working with Bitcoin wallets. As such we’ll cover a bit of history and then the current de facto standard for Bitcoin wallets which consists of four BIPS, 39, 32, 43 & 44.
-
-These BIP’s cover mnemonic seeds and hierarchical deterministic(HD) wallets.
-
-
HISTORY
-
-Cryptocurrency wallets have evolved substantially since the first wallet which was included in the original version of the Bitcoin core client. Let’s first discuss some of the history of Bitcoin wallets to understand why these improvements came about.
-
-
JBOK, OR JUST A BUNCH OF KEYS WALLETS
-
-
-
-This type of wallet is simply a collection of randomly generated private keys with no particular relation to one another.
-
-While these wallets worked, there was an issue with backing up the wallet data. For greater privacy, addresses were not reused. This means new addresses, and thus new keys, were generated regularly. New addresses were created on each receive transaction, with a cap of 100 addresses/key kept at any time.
-
-{% include callouts/note.html
- bodyText="This includes change transactions. When a UTXO that is larger than the amount being spent is used, the UTXO is split and the remaining balance is returned to the sender as change."
-%}
-
-An early method for backing up a wallet was simply to copy the wallet.dat file that contained the private keys and then store this file in a secure location. However, if regular backups were not taken then they would quickly become outdated.
-
-If a user attempted to restore a heavily used JBOK wallet, they may find that the keys in their backed up wallet.dat file no longer control any value on the blockchain. Essentially, a backup could quickly become useless.
-
-Also, backing up a wallet meant storying what was essentially a database file. This made backups not at all user-friendly.
-
-To solve these problems mnemonic seeds and HD wallets were created.
-
MNEMONIC SEEDS
-
-The process outlined in BIP 39 is the current best practice for creating wallets with mnemonic seeds.
-
-So, what is a mnemonic seed?
-
-It is a set of data encoded as a series of words, usually 12 or 24, which can be used to restore an entire wallet.
-
-{% include callouts/definition.html
- title="MNEMONIC"
- bodyText="A device such as a pattern of letters, ideas, or associations that assists in remembering something."
-%}
-
-HD wallets, which we will cover in depth in the next lesson, have a parent private key which can be used to derive many child keys. In this way, one set of data, which is called the “seed”, can be used to migrate or restore a wallet with many keys and addressed.
-
-It is, however, important to note that the “seed” is more than just the parent private key. The seed also contains the “chain code”. This is a bit of data which is necessary for the derivation of the child keys, which we’ll discuss in the next lesson.
-
-
HOW THIS WORKS
-
-This is a simplified version of the process which is meant simply to give you a starting point. For a more in-depth explanation please see the BIP 39 repo, and chapter 5 of Master Bitcoin 2nd Edition.
-
-First, the wallet should have some source of entropy which is used to generate 128-256 bits of data.
-
-This data is then mapped to a predefined dictionary of 2048 words. This is how those 12-24 words that make up the seed are selected.
-
-Once the seed words have been selected, a “salt” and optionally a password are selected. In BIP39 compatible wallets, the salt is automatically set to “mnemonic” plus the password if one was added.
-
-{% include callouts/note.html
- bodyText="The addition of a password will change the resulting 512-bit seed. This provides an extra security feature. Even if an attacker was able to acquire a wallet mnemonic phrase they would be unable to recreate the necessary seed data without the addition of the password. Also, a wallet can be created that has two passwords, one for normal use and another “duress password” that results in the recreation of a wallet with only a small amount of funds to fool an attacker."
-%}
-
-Once the mnemonic phrase and salt has been selected, they are run through a “key stretching function”. This function hashes the data 2048 times! Which produces the 512-bit wallet seed.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/Mnemonicseeds-01-1.jpg"
- title="MNEMONIC TO SEED"
- bodyText="A:Mnemonic Code Words;B:Salt;C:Key Stretching Function;A:M512-Bit Seed."
-%}
-
-
TAKEAWAYS
-
-The mnemonic phrase, the parent private key and the seed are not the same things.
-
-The seed is built from the mnemonic phrase + salt and contains both the parent private key and the chain code.
-
-The seed contains all the components necessary to migrate or restore an HD wallet.
-
-Before we move on let's take a quick look at wallets in the context of internet security and usage. Often, when wallet types are being discussed the speaker is referring to what device the wallet seed is stored on or accessed from. This is important from the context of accessing funds and keeping them safe from theft.
-
-{% include callouts/definition.html
- title="HOT WALLETS"
- bodyText="A wallet that exists on an internet connected device. In this situation the users private keys are stored on this internet connected device which can make them susceptible to theft. It is recommended to only store a small amount of funds for immediate use on hot wallets."
-%}
-
-{% include callouts/definition.html
- title="COLD/HARDWARE WALLETS"
- bodyText='This is a wallet that is stored on a device that is "air gapped", has no internet connect. This is often done in the form of a small hardware device. Wallets such as this are recommended for longer term storage.'
-%}
-
-{% include callouts/definition.html
- title="CUSTODIAL WALLETS"
- bodyText="These are wallets provided by services that hold key on behalf of the user. While this can provide some convenience it is important to note that it involves trusting a third party to store your funds honestly and competently."
-%}
-
-{% include callouts/definition.html
- title="PAPER WALLETS"
- bodyText="A paper wallet is a common type of 'cold storage'. It’s a method of storing keys offline. This can be done by writing out your wallet seed or private keys on a piece of paper and storing it somewhere safe such as a home fire safe. There are stainless steel versions of these types of wallets that allow you to etch your wallet seeds into a steel plate which provides improved durability."
-%}
-
-Further Reading:
-
We’ll have a look at chain codes and HD wallets in the next lesson.
diff --git a/all_collections/_lessons/bitcoin-for-devs_lesson13 2.md b/all_collections/_lessons/bitcoin-for-devs_lesson13 2.md
deleted file mode 100644
index 52b4dfe9f..000000000
--- a/all_collections/_lessons/bitcoin-for-devs_lesson13 2.md
+++ /dev/null
@@ -1,115 +0,0 @@
----
-layout: lesson
-course: bitcoin-for-developers
-module: 3
-title: HD Wallets
-permalink: /courses/bitcoin-for-developers/3/hd-wallets
----
-
-
-
-
-The methods explained in BIP’s 32, 43 & 44 are best practice for Bitcoin wallets, and necessary for interoperability with other Bitcoin wallets.
-
-
WHAT IS AN HD WALLET?
-
-There are two types of deterministic wallets, sequential and hierarchical. Here we’ll focus on the industry standard, hierarchical.
-
-Hierarchical deterministic wallets make managing a wallet and it’s keys dramatically easier than the JBOK’s wallets discussed in lesson 8. These wallets create a tree like structure of a master key, parent keys and children keys.
-
-
-
-These wallets are created using a “seed” as discussed in lesson 8. This way an entire wallet, containing many addresses/key, can be migrated or restored using just the mnemonic phrase (and optionally a password). Also in lesson 8 we covered how the mnemonic seed functions. In this lesson we will focus on the functionality of HD wallets and how keys are derived from the master key.
-
-First let’s introduce this thing called a “chain code”. A chain code is 256 bits of entropy, essentially, a random number. This extra bit of of randomness makes it not possible to determine sibling keys even if one child key is known. It adds security.
-
-The root of the chain code is derived from the wallet seed. As the wallet key tree is expanded parent chain codes are derived from the root and child chain codes are derived from parent chain codes, etc.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/HashFunctions-01.jpg"
- title=""
- bodyText="A:Mnemonic Phrase;B:Seed;C:One-Way Hash Function;D:Left;E:Right;F:Master Private Key;G:Master Public Key;H:Master Chain Code."
-%}
-
-To create a wallet key tree you need the master or parent private key and corresponding public key, the root or parent chain code, and and index number (which we’ll discuss shortly). All of this is run through a hashing function and split into a child private key a corresponding public key and a child chain code.
-
-The below image is helpful in visualizing this process.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/HashFunctions-02.jpg"
- title=""
- bodyText="A:Parent Private Key;B:Parent Public Key;C:Parent Chain Code;D:Index Number;E:One-Way Hash Function;F:Left;G:Right;H:Child Private Key;I:Child Public Key;J:Child Chain Code."
-%}
-
-This process has some really neat features. Child keys and subsequent addresses derived in this fashion are indistinguishable from nondeterministic keys and address. They function entirely as “normal” keys. And child key can not be used to find a parent or sibling keys. You would need both the child private key and the child chain code to derive more children.
-
-A key, public or private concatenated with the chain code is called an extended key. A key of this type is encoded using Base58Check and uses a special version number that results in the prefix “xprv” for private keys and “xpub” for public keys. While these keys are called “extended” they are extensible and can be used to generate children and entire branches of the wallet tree.
-
-An extended public key has some very useful features. It can be placed on a public server and used to generate more public keys and addresses, that can be controlled with the wallet seed, all while the private key can remain safely offline.
-
-This is particularly useful in an e-commerce scenario. Image an online retailer who does a lot of business in bitcoin. It is advantageous to have each order that comes in be paid to a new address. This allows the store managers to associate payment address with specific orders. Without HD wallets and public key derivation, show in the image below, private keys would have to be stored on a public server or publics keys would have to be generated before hand and preloaded on the server. However, with HD wallets, one extended public key from the wallet can be stored on the server and then used to derive new public keys and address for each new order that comes in.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/HashFunctions-03.jpg"
- title=""
- bodyText="A:Parent Public Key;B:Parent Chain Code;C:Index Number;D:One-Way Hash Function;E:Left;F:Right;G:Child Public Key;;H:Child Chain Code."
-%}
-
-While an extended public key, or xpub, is very useful it comes with some potential risks. An xpub key contains the chain code, which, if the xpub private key were somehow also know could be used to derive all other child private keys.
-
-A solution to this problem is a “hardened key”. This is an alternative derivation function which discontinues the relationship between the parent public key and the child chain code. This “hardened” derivation function uses the parent private key, rather than the parent public key, to derive the child chain code.
-
-{% include callouts/imageWithCaption.html
- image="/courses/bitcoin-for-developers/HashFunctions-04.jpg"
- title=""
- bodyText="A:Parent Private Key;B:Parent Chain Code;C:Index Number;D:One-Way Hash Function;E:Left;F:Right;G:Child Private Key;H:Child Public Key;I:Child Chain Code."
-%}
-
-Using the hardened key derivation function the resulting child private key and chain code are completely different from what would have existed using the standard key derivation function. The new, hardened, branch of keys can be used to produce extended public keys that are not vulnerable to a chain code leak as the chain code they contain cannot be exploited to reveal any private keys.
-
-In an e-commerce setting, it is best for any xpub keys used on the server to have been derived from a hardened parent.
-
-In part two of Bitcoin for Developers we’ll take a deep dive into Bitcoin transactions and cover how to integrate bitcoin payments into an e-commerce shop.
-
INDEX AND PATH
-
-
-As you may have noticed mentioned when describing key derivation, an index identifier is used.
-
-The index is a 32-bit integer that is used to distinguish between normal vs hardened keys. The index is split into two ranges, the first portion is reserved for normal derivation and the second portion reserved for hardened derivation.
-
THE PATH
-
-Keys in an HD wallet are identified using a path naming convention. Here each level of the tree is separated by a slash.
-
-
-
-For example, private keys that are derived from the master private key start with “m” while public keys that were derived from the master public key start with “M”. These are listed in the index as m/0 or M/0. Their children keys will be shown as m/0/0 or M/0/2, etc.
-
-Keep in mind that this path is read from right to left. So the path M/0/2 is read as the third grandchild of key M/0 which is the is the first child of the master key.
-
-These paths are very helpful for navigating the key tree created by an HD wallet. Each parent extended key can have 4 billion children, 2 billion “normal” and 2 billion “hardened”. All of those children can have 4 billion grandchildren, etc, without any set limits.
-
-BIPS 43 and 44 address this complexity issue with some proposed standards.
-
-The BIP 43 standard uses the first hardened child as as an identifier of the purpose of the tree.
-
-BIP 44 specifies a structure consisting of five predefined tree levels. Specifically, purpose, coin type, account, change and address index as illustrated below…
-
-In the BIP 44 standard, the purpose is always set to 44. The coin type specifies which coin this branch of the wallet is for (HD wallets can be used with many cryptocurrencies with a similar structure to Bitcoin). For example Bitcoin is 0 and Litecoin is 2.
-
-The account level allows the user to divide their wallet for organizational purposes. Perhaps one branch for different divisions of an organization.
-
-The “change” level has two subtrees, one for creating receiving addresses and one for creating change addresses.
-
-And lastly, the fifth level is the address index as describes as above.
-
-So, the third child of the master public key on the Bitcoin network might look something like this… M/44/0/0/0/2.
-
-Further reading:
-
YOU'VE COMPLETED PART ONE OF OUR BITCOIN FOR DEVELOPERS COURSE!
-
-
-
-This completes part I of our Bitcoin for Developers course! We hope that you now have a foundational understanding of the problems Bitcoin was built to solve, through to cryptography and decentralized network basics and on to what a bitcoin actually is and how it’s stored.
-
-Congrats on finish Part I of this course, we'd really love to hear what you thought of it! You can send us an email at info@weteachblockchain.org or type us a message via our contact form. Your feedback is very valuable as we work on part II.
-
-In the next part of the course we’ll take a deep dive into Bitcoin transactions and cover how to integrate bitcoin payments into an e-commerce shop. Until then, check out the many other course the Institute offers.
-
-{% include courseEndButtons.html %}
diff --git a/all_collections/_lessons/blockchain-101_lesson_01 2.md b/all_collections/_lessons/blockchain-101_lesson_01 2.md
deleted file mode 100644
index 760c0f405..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_01 2.md
+++ /dev/null
@@ -1,20 +0,0 @@
-
----
-layout: lesson
-course: blockchain-101
-module: 1
-title: Introduction to the Blockchain
-permalink: /courses/blockchain-101/01/introduction-to-the-blockchain
----
-
-
-
-To understand the potential of blockchain technology, it’s helpful to understand the context of this wave of innovation by looking at the first blockchain, Bitcoin, and its first use-case, digital money.
-
-The concepts and ideas that would lead to blockchain and cryptocurrency date back to the early 1980s. The next 25 years saw the rise and fall of many digital cash projects and culminated in Satoshi Nakamoto creating Bitcoin, the first blockchain. Nakamoto solved the problems faced by previous failed digital cash projects, including maintaining a reliable peer-to-peer network and preventing against counterfeit. Satoshi Nakamoto’s creation was a transparent, secure ledger that could not be compromised; once any information is added to the chain, it cannot be removed.
-
-
-
-The architecture of a blockchain allows peers to interact in a trustless system without the aid of an intermediary. Blockchains are able to do this by having the network members reach consensus, a computationally-intensive process secured by cryptography. While there are many apparent benefits to blockchains, the technology is still relatively young and is yet to meet the full demand faced by networks today. Despite these unknowns, there is still a lot of intrigue over the potential impact of blockchain technologies.
-
----
diff --git a/all_collections/_lessons/blockchain-101_lesson_02 2.md b/all_collections/_lessons/blockchain-101_lesson_02 2.md
deleted file mode 100644
index b5d7851b2..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_02 2.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 1
-title: The Birth of Digital Money
-permalink: /courses/blockchain-101/01/the-birth-of-digital-money
----
-
-
-
-The creation of Bitcoin combined several technologies in order to solve problems that other digital currencies were not able to address.
-
-Ever hear of Error 402? It’s an HTTP error message for not enough funds or when payment is required, and it has been there since the inception of the World Wide Web. This is proof that the internet was built with a native currency in mind. This was first addressed by David Chaum, a "cypherpunk" dedicated to creating anonymous electronic money.
-
-
-
-
-
A HISTORY OF BITCOIN
-
-
-
-{% include callouts/callout.html
- title="Why Digital Cash"
- bodyText='The advent of high-quality color copiers threatens the security of paper money. The demands of guarding it make paper money expensive. The hassles of handling it (such as vending machines) make paper money undesirable. The use of credit cards and ATM cards is becoming increasingly popular, but those systems lack adequate privacy.'
-%}
-
-
-
-{% include callouts/bigQuote.html
- body="Bitcoin was the beginning for cryptocurrency, however, it was 25 years in the making!"
-
-%}
diff --git a/all_collections/_lessons/blockchain-101_lesson_03 2.md b/all_collections/_lessons/blockchain-101_lesson_03 2.md
deleted file mode 100644
index ed6ab0371..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_03 2.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 1
-title: The Enigma - Satoshi Nakamoto
-permalink: /courses/blockchain-101/01/the-enigma-satoshi-nakamoto
----
-
-
-
-Despite Bitcoin's open nature, we still know very little about its creator. Satoshi Nakamoto is the name used by the person or people that created Bitcoin and wrote the Bitcoin whitepaper.
-
-
WHO IS SATOSHI NAKAMOTO?
-
-
-
-Who is the mysterious creator behind Bitcoin? We don’t know much more than the name, Satoshi Nakamoto, which first appeared on the paper “Bitcoin: A Peer-to-Peer Electronic Cash” which was distributed by a cryptography mailing list in 2008. While there are a few suspects, Nakamoto’s identity remains a mystery.
-
-What we do know of Satoshi comes from his posts on the P2P Foundation and the code behind Bitcoin. This line of text was embedded in the bitcoin genesis block, mined on January 3rd, 2009:
-
-{% include callouts/bigQuote.html
- body="03/Jan/2009 Chancellor on brink of second bailout for banks."
- sourceName="The Times"
- sourceUrl="https://www.thetimes.co.uk/article/chancellor-alistair-darling-on-brink-of-second-bailout-for-banks-n9l382mn62h"
-%}
-
-This line references a Times of London article that discussed an additional bailout for the banks after the 2008 financial crisis.
-
-
-
-
-{% include callouts/bigQuote.html
- body="The root problem with conventional currency is all the trust that's required to make it work. The central bank must be trusted not to debase the currency, but the history of fiat currencies is full of breaches of that trust. Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve. We have to trust them with our privacy, trust them not to let identity thieves drain our accounts."
- sourceName= "Satoshi Nakamoto"
- sourceUrl="http://p2pfoundation.ning.com/forum/topics/bitcoin-open-source"
-%}
-
-Satoshi's thoughts on the banking system give us some clues as to why he built a monetary alternative that is decentralized and trustless.
-
-{% include callouts/imageWithTextCallout.html
- image="courses/blockchain-101/Hal_Finney_computer_scientist.jpg"
- title="Hal Finney"
- bodyText="The very first Bitcoin transaction took place between Satoshi and Hal Finney, a cypherpunk and programmer. While some suspect that Hal Finney may be the person behind the Satoshi pseudonym, this was never proven. After a five year battle with ALS, Hal Finney passed away in 2014."
-%}
-
-In 2010, Satoshi Nakamoto handed over control of Bitcoin to the community members and stopped working on it himself. Until that point, all of Bitcoin's code had been written by Nakamoto.
-
- But what problems did Bitcoin solve that were the demise of many digital cash projects? Check out our next lesson to find out!
-
-
diff --git a/all_collections/_lessons/blockchain-101_lesson_04 2.md b/all_collections/_lessons/blockchain-101_lesson_04 2.md
deleted file mode 100644
index 970a69376..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_04 2.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 1
-title: From Digital Currency to Cryptocurrency
-permalink: /courses/blockchain-101/01/from-digital-currency-to-cryptocurrency
----
-
-
-
-
-All the digital currencies that existed prior to Bitcoin had one feature in common, a central server or authority. While these systems worked, they had a serious drawback that was lamented by many in the digital currency community; they were centralized services.
-
- This centralization ran counter to the peer-to-peer dream of many digital pioneers, like the renown “cypherpunks,” and introduced security and privacy risks. However, this centralization existed for one very good reason, the “Double-Spend Problem.” This term, “Double Spend Problem”, refers to the fact that digital goods are very easy to copy. Someone in possession of a digital token, even one that is managed with cryptography, can still copy that token rapidly and repeatedly. It doesn’t take long to realize that a currency who anyone holder can easily make copies of won’t hold it’s value for long.
-
-
-
-Making a copy of a digital token and attempting to spend it more than once is called double spending. It was this possibility that forced early digital currency systems to implement central servers that functioned as a clearinghouse.
-
-In this centralized system, if Alice wants to send one coin to Bob she can’t do so directly. Her transaction needs to be sent to the central server which can effectively deduct one coin from her account and credit one coin to Bob. The transaction relies on the central server for processing.
-
-While many in the digital currency cypherpunk world attempted to address this issue, Satoshi Nakamoto was the first to find success.
-
-The concept behind Nakamoto’s solution is simple, instead of one server or entity keeping track of who has what coin at what time, the entire network does this work. Bitcoin software creates a ledger of transactions which is copied and shared among all the nodes on the network.
-
-
-
-
DEFINING CRYPTOCURRENCY
-
-
-
-Cryptocurrencies are a digital store of monetary value the primary use of which is for buying and selling goods, services, or property. Cryptocurrencies are cryptographically secured against counterfeit and often are not issued or controlled by any centralized authority. Cryptocurrencies can be referred to as tokens or coins. We'll cover the difference between the two in an upcoming lesson. The most popular cryptocurrency is bitcoin, though there are currently thousands of different cryptocurrency options.
-
-A key aspect of cryptocurrency is that it is decentralized. There is no central authority with the ability to control your cryptocurrency. There is no one entity that controls the monetary policy of a cryptocurrency. Decentralization is enabled by solving the Byzantine Generals’ Problem. This ensures that the system will continue to function even if a user tries to pass along invalid data. We’ll explore this problem in the next lesson.
diff --git a/all_collections/_lessons/blockchain-101_lesson_05 2.md b/all_collections/_lessons/blockchain-101_lesson_05 2.md
deleted file mode 100644
index ab3ba6653..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_05 2.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 1
-title: The Byzantine Generals Problem
-permalink: /courses/blockchain-101/01/the-byzantine-generals-problem
----
-
-
-
-
-The Byzantine Generals’ Problem is a classic problem faced by any distributed computer system network. It addresses the question of how a distributed computer network can reach a reliable consensus even when some of the nodes (computers) on the network may attempt to pass along fraudulent information. The internet has opened up many new avenues for commerce and education, but how can we trust a random person across the world?
-
-
THE SCENARIO:
-
-Imagine that the powerful Byzantine Empire has decided to capture a city. Of course, there is fierce resistance from within the city. The Byzantine Army has completely encircled the city. A good strategy, however, this has separated the Byzantine army into separate encampments. In order to ensure that the army can surround the city, the army has to split up into groups led by different generals. It now has many divisions with each division being commanded by its own general. The generals communicate between each as well as between all under their command within their division only through messengers. How can the generals efficiently and accurately communicate without fear of their message or plans being compromised?
-
-{% include callouts/imageWithCaption.html
- image="/courses/blockchain-101/ByzantineGenerals-01.jpg"
- title=""
- bodyText="All of the commanding generals have to agree upon one of the two plans of action: All attack at one particular time, or if faced by fierce resistance, conduct a full-on retreat. The army cannot hold on forever in this separated state; a decision must be made. If the attack or retreat is without full strength (consensus), then the Byzantine army will experience massive casualties"
-%}
-
-
-{% include callouts/imageWithCaption.html
- image="/courses/blockchain-101/ByzantineGenerals-02.jpg"
- title=""
- bodyText="If all generals and messengers were trustworthy then there is no problem, a consensus is absolute. However, some of the messengers and even a few generals/commanders could be traitors. If they are spies or enemy soldiers, there is a very high chance that they will not follow orders; they will pass on the incorrect message. There has to be some form of verification in order to make sure that the information has not been compromised by enemies."
-%}
-
-
-{% include callouts/imageWithCaption.html
- image="/courses/blockchain-101/ByzantineGenerals-03.jpg"
- title=""
- bodyText="The network of generals is able to communicate with each other in order to verify the messages being transmitted. If there is a discrepancy, it is easy to identify who is the traitor. Bitcoin uses the same exact method of checking transactions. Instead of decision-making generals communicating a plan of attack, Bitcoin nodes communicate the validity of transactions. Nodes make up a peer-to-peer network that checks the validity of the messages that other nodes are sending; the nodes that make up the Bitcoin network are constantly double checking other nodes."
-%}
-
-
-In the computer science world, this problem refers to the possibility of having to cope with the failure of some of the components (nodes/the generals) in the system. If a problem with a node arises, the whole network will NOT grind to a halt. Rather, blocks will continue to be produced as normal. This term is used frequently in the blockchain world as it refers to the problem of reaching consensus in a public blockchain, where not all parties can be assumed to be trustworthy.
-
diff --git a/all_collections/_lessons/blockchain-101_lesson_06 2.md b/all_collections/_lessons/blockchain-101_lesson_06 2.md
deleted file mode 100644
index f99dba57d..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_06 2.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 1
-title: Properties of a Blockchain
-permalink: /courses/blockchain-101/01/properties-of-a-blockchain
----
-
-
-
-
-A blockchain is a decentralized ledger that records all transactions that are visible on a public network. Blockchain's architecture allows these transactions to be autonomous and immutable while using cryptography and network architecture for security. Every transaction is permanently recorded to the blockchain and cannot be altered in any way.
-
-
-The name blockchain largely refers to the structure of the technology. Blocks contain data that represents transactions, and when a block is created or "mined," all the data contained in the block is added to the chain. Permanently. All ledgers are updated to recognize this new consensus. Blocks are then linked together to form a chain and can be referred back to at any time, hence the name blockchain. We'll go over the mining process in an upcoming lesson.
-
-The Bitcoin blockchain was created to allow a network to coordinate and reach “consensus” on shared data. Blockchains were created to solve the problem of coordinating data with people around the world, who don’t know or trust each other.
-
-
-
-The first thing to keep in mind here is that Bitcoin, and any other public blockchain, is a truly peer-to-peer network. There is no Bitcoin Corporation; there is no one entity in control. When trying to visualize this process, it is helpful to keep the picture of nodes (computers) on a shared network, all running the same or compatible software, in your head.
-
-Because a blockchain is designed as a distributed ledger, many computers (nodes) are connected to form a network. As previously mentioned, this structure is referred to as a decentralized or a peer-to-peer (P2P) network. If someone wants to hack the network, they must get into all of these connection points at the same time. The chances of this occurring are extremely low, which is a testament to the security used in blockchain technology.
-
-
-
-
-
-
WHAT MAKES A BLOCKCHAIN?
-
-
-{% include callouts/definition.html title="Security" bodyText="Blockchains have two primary security mechanisms: network structure and cryptography. In blockchain technology, cryptography is used extensively to sign data to prove that a transaction was approved by the owner of the funds. The decentralized structure of network eliminates any central points of failure. To compromise an open blockchain network a hacker would have to control a majority of the nodes at the same time. This makes a network attack very expensive and impractical." %}
-
-{% include callouts/definition.html title="Transparency" bodyText="All transactions on a public blockchain, like Bitcoin, are viewable to anyone with an internet connection. Each transaction is assigned its own unique ID known as a hash. These identifiers can be used to look up a public record of the transaction, also known as transaction receipt. Details included in a transaction receipt include the addresses involved, the amount transferred, a timestamp, transfer fees, and more. All computers on the network have access to all the transactions records, creating a high level of transparency. Because of the transparency provided, many institutions, including nonprofits, use blockchains to instill confidence in their financial practices." %}
-
-{% include callouts/definition.html title="Immutability" bodyText="Once a block is confirmed, the data recorded to the blockchain cannot be removed or edited. Each block is stacked upon the previous block. The next block must have the preceding block’s hash in order to be added to the chain. This assures that the blockchain stays in chronological order, effectively making it tamper-proof." %}
-
-{% include callouts/definition.html title="Distributed" bodyText="Each computer running the blockchain’s software has a copy of all the information contained in that blockchain. Information isn’t processed through a central server but is transmitted and verified by nodes in parts of the network. The network functions based on a set of rules that every client must follow exactly; if blocks are broadcast to the network and do not follow the validity rules, the block will be rejected. A blockchain's network is distributed, allowing for an egalitarian, peer-based network." %}
-
-{% include callouts/definition.html title="Consensus" bodyText="Every node on the Bitcoin network contributes to consensus, the process by which the data is agreed upon and becomes the truth on the network. However, certain nodes called miners play a very important role in this process. Nodes work together to verify the information being transmitted by other nodes without relying on a central bookkeeper. Each consensus mechanism has its own set of rules; it might help to think of them like sealing an envelope. Once all the messages (transactions) are inside, there is a set of rules that dictate who may seal the envelope (block) and under what conditions." %}
-
-
-
diff --git a/all_collections/_lessons/blockchain-101_lesson_07 2.md b/all_collections/_lessons/blockchain-101_lesson_07 2.md
deleted file mode 100644
index 1f90e202f..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_07 2.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 2
-title: Centralization vs Decentralization
-permalink: /courses/blockchain-101/02/centralization-vs-decentralization
----
-
-
-
-Decentralized networks give users much more control over the rules and maintenance of that network. Let’s explore how information is confirmed, or mined, and added to the blockchain. But first, we’ll examine the differences between centralized and decentralized networks.
-
-
-
WHAT IS CENTRALIZATION?
-
-In order to understand the goals and benefits of decentralized technology, we must first examine the problems created by centralized systems. While efficient, centralized servers or data repositories are an easy target for those looking to exploit your personal information. Constant hacks make it impossible to have confidence that your personal data will be kept safe by the third parties we use to conduct business. This leads to an inefficient system with the huge hidden cost of sacrificing your privacy. Not only are centralized servers more attractive targets to attack, but the data obtained by “trusted” parties is also often monetized without user knowledge. Of course, the user never sees any of this financial gain. Data privacy does not exist on the centralized internet we have built. By decentralizing the storage and processing of data, we would no longer have to rely on the websites and service providers that willingly collect and sell customers data for a premium.
-
-Generally speaking, centralization of power can result in companies like Facebook, Amazon, and Google finding ways to monetize user data and habits in ways that the users may not like and may not even be aware of. Users of popular free online services may think of themselves as the customer, while the service that they’re using the product. But that’s actually backward. Instead, the user's information is the product that is being sold. It’s their data that is valuable, yet most users of these services don’t yet realize this fact. If it’s your data, why are other people profiting off of it? Another of the benefits of decentralization is that it can put that value back in the hands of the user.
-
-
-
-
BLOCKCHAINS ARE DECENTRALIZED
-
-
-Within a decentralized network, information is distributed amongst nodes, so that each node has an updated copy of the recorded data (ledger). Simply put, a node is a computer that is running the blockchain’s software. Decentralized networks can also transfer data that can be validated without that information being transferred to a third party. Data is validated with the utilization of an agreed upon consensus mechanism, which checks the validity of the data before it becomes permanently imprinted onto a blockchain. Simply put, a consensus mechanism is a way for validators to come to an agreement about the integrity of data before it becomes part of a blockchain. Once the block contains this data, it is distributed amongst nodes, making it very difficult to change data that has already been recorded to the ledger.
-
-
Instead of changing the source in one centralized database, to change a decentralized network (blockchain), a majority of nodes would have to be updated to reflect fraudulent information within a short amount of time. Otherwise, such information will be rejected by validating nodes.
-
Nodes interact on a peer-to-peer basis without the need for third-party facilitators, reducing the friction associated with these transactions.
-
Decentralization is fundamentally about shifting power and authority in a community away from one central entity and making that power available to the members themselves, making community members self-sovereign.
-
-
-{% include callouts/imageWithTextCallout.html
- title="Napster"
- image="courses/blockchain-101/napster_logo-1.jpg"
- bodyText="A good example of a peer-to-peer network was Napster. Napster was a semi-centralized website that utilized a file sharing protocol that doesn't rely on any one server, company, or entity to function. Bitcoin works in somewhat the same way; it doesn't require a bank to act as a central arbiter between two people who want to exchange value. The protocol empowers them to do it themselves. Fun Fact: At the height of its popularity Napster had nearly 80 million users!"
-%}
-
-
-
-Decentralized networks open many possibilities for users of the internet. In the next lesson, we'll explore the issues with centralized servers and the benefits that peer-to-peer networks can offer.
diff --git a/all_collections/_lessons/blockchain-101_lesson_08 2.md b/all_collections/_lessons/blockchain-101_lesson_08 2.md
deleted file mode 100644
index 162ed3552..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_08 2.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 2
-title: Peer-to-Peer Networks
-permalink: /courses/blockchain-101/02/peer-to-peer-networks
----
-
-
-
-
-As discussed before, decentralized networks give users greater control over their information. This is largely achieved through peer-to-peer networks.
-
-
-Peer-to-peer networks, often shortened as P2P, offer an essential component to blockchains because the core values of the network design allow for decentralization. Rather than a typical client-server model in which individual clients request services or information from a central server, a peer-to-peer network is more resilient and allows peers on the network to directly interact with other peers. Peer-to-peer networks are self-organizing and therefore can be self-sustaining. This is a significant component of decentralized systems that allow blockchains to do what they are purposed for.
-
-
-
-
WHY USE PEER-TO-PEER NETWORKS?
-
-The client-server model has failed users of the internet. The price to be connected via this necessary global internet is giving up your personal data. Your information is compiled into these central servers and sold without your knowledge. With many popular search engines and social media sites, you're not the consumer, you're the product. A shift away from the client-server model is a shift away from large data repositories that are ripe targets for attack.
-
-Additionally, P2P networks help to ensure resiliency in the network. As more nodes arrive in the system, and the Hashrate of the blockchain increases, making the chain more secure.
-
-As this happens, the likelihood of failure in the system decreases because of the growth in peers on the network; these nodes support the system through their contributions to the network and by sharing resources. More peers mean more resources on the network which allows for greater security overall. To put it simply, there is power in the number of nodes when it comes to the security of a decentralized network. If one peer on the network fails, the system still survives because all the other peers are still properly functioning, communicating, and providing resources to the network. The redundancy in information between nodes makes sure that if one node goes offline, there is another available node with a copy of that information. Peer-to-peer networks significantly decrease the chance of a network failure simply by the nature of the system being decentralized throughout nodes, and this creates a network of great fault-tolerance, the ability for a network to function if a node does not behave properly. Our next lesson explores how blockchains stay secure.
diff --git a/all_collections/_lessons/blockchain-101_lesson_09 2.md b/all_collections/_lessons/blockchain-101_lesson_09 2.md
deleted file mode 100644
index ec2aaf498..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_09 2.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 2
-title: How are Blockchains Secure?
-permalink: /courses/blockchain-101/02/how-are-blockchains-secure
----
-
-
-
-
We've gone over the architecture of decentralized networks, but how do they stay secure? This is a much more difficult problem than addressing the security concerns of a client-server model, as only one server has to be secure. Decentralized networks have to get more creative in order to maintain security, as you have many nodes with equal power trying to coordinate information; there are more actors and more potential for security flaws.
-
-
-
Records on a blockchain are secured through cryptography. Each participant has issued a unique private key which can be used to "sign" transactions; they act as a personal digital signature. A digital signature is a message signed with the sender’s private key, and it can be verified by anyone who has access to the sender’s public key. This verifies that the sender has access to the private key, and is therefore likely to be associated with the public key as well. This ensures that the originator of the message can be verified.
-
-
-
-
Blockchains are decentralized and distributed across peer-to-peer networks that are continually updated to reflect every transaction. Because they are not contained in a central location, blockchains do not have a single point of failure and cannot be changed by hacking a single computer. It would require massive amounts of computing power to control a 51% majority of all nodes on the blockchain. We'll go over 51% attacks in an upcoming lesson within this section of the course.
-
-
-
Decentralized networks offer users an opportunity to preserve their digital identities. In order for decentralized networks to get to this point of viability, they had to address the security concerns presented by these networks. There are several technical components of a blockchain and the information contained in each block that is crucial to its functionality.
-
-
COMPONENTS OF A BLOCK
-
-
-
-
Each block is limited by the amount of information it can hold. Blocks vary in size depending on the chain, as does each network’s time to completely validate the block, also known as a “block time.” Bitcoin’s blocks are 1MB and take about 8 minutes to validate. Blocks are designed to hold confirmed transactions. They provide a record that is then added to the chain permanently and can be referenced at a later time. The key components of a block both help identify and secure the blockchain.
-
-
-
Since a copy of the blockchain is stored on each computer on the network, that requested data can be retrieved easily and quickly. Additionally, this architecture allows nodes to act as reliable validators. The further the chain progresses, the harder it is to alter data, as each subsequent block would have to be changed as well. This process would easily alert other nodes to any malicious action. Essentially, to change historical data that has been added to the chain, it would have to be rewound, appending one block at a time. Additionally, blocks are transparent. Data is compiled into each block when it is created, and any attempt to alter confirmed data results in a completely different hash, easily alerting other nodes that invalid information is trying to be added to the blockchain. We’ll go into more detail about hashing in the next lesson.
diff --git a/all_collections/_lessons/blockchain-101_lesson_10 2.md b/all_collections/_lessons/blockchain-101_lesson_10 2.md
deleted file mode 100644
index 8f520f534..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_10 2.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 2
-title: Asymmetric Encryption
-permalink: /courses/blockchain-101/02/asymmetric-encryption
----
-
-
-
-
-We've gone over the security features of blockchains, but let's look at security on an individual level. What aspects of blockchains ensure personal security?
-
-
-Asymmetric encryption is a cryptographic system that uses both public keys and private keys.
-
-
Public-key encryption is when a message is encrypted with a recipient’s public key. The message can only be decrypted with the corresponding private key. The public-key encryption system attempts to provide confidentiality while providing an avenue to communicate.
-
-
-
A digital signature is a message or transaction signed with the sender’s private key, and it can be verified by anyone who has access to the sender’s public key. This process verifies that the sender has access to the needed corresponding private key, and is therefore likely to be associated with public key as well. This encryption ensures that the message is unchanged between the sender and the receiver.
-
-
-
PUBLIC AND PRIVATE KEYS
-
-Communication between nodes is a key part of decentralized networks. Nodes use a method known as asymmetric encryption in order to sign transactions to prove where they came from. Within this method, public and private keys are absolutely essential for the encryption and decryption of messages. Public keys can be dispersed widely, whereas private keys are only known to the owner.
-
-In this type of cryptographic system, public keys can be used by anyone to encrypt or verify a message for a particular receiver; they function as addresses. For asymmetric encryption to work, the user must be able to securely generate and store a private key that acts as a password. From this private key, a public key is also generated. Security relies upon the private key staying private, while the public key can be published without compromising the security of the private key.
-
-
-
-
-
-
HASHING
-
-Hashing is the process of creating an irreversible “digest” as a means to organize data. The hash function takes an input of any length (a message, for example), and returns a fixed-length string of seemingly random numbers and letters, which is called the hash value (also known as a message digest, digital fingerprint, or digest). Simply put, hashing is a more efficient way to identify long strings of data.
-
-
-Try it yourself! Try typing your name in the window below to see the hash digest!
-
-
-By now, you should understand that blockchains are a combination of existing technologies like cryptography and peer-to-peer networking, combined with an incentive layer to power a globally uncensorable network. By overlaying these technologies onto our existing processes, we can build new ways of working digitally.
-
-Encryption and decryption can be represented by keys and lockboxes, allowing the passing of secure messages. These methods have been in use since the time of Caesar. These encryption technologies are integrated into many experiences on the internet and have become more prevalent with the introduction of e-commerce.
-
-
-
-Cryptographic signing and verification is a digital representation of signatures that can ultimately replace handwritten signatures. The country of Estonia has transitioned to conducting much of their governance with Smart Chip ID cards, allowing non-residents to establish businesses remotely with their E-Residency program. Without ever visiting Europe, an individual can register a business, establish a bank account, and pay taxes from the comfort of any computer in the world!
-
-How does cryptocurrency relate to blockchains? We'll cover that in our next lesson.
-
diff --git a/all_collections/_lessons/blockchain-101_lesson_11 2.md b/all_collections/_lessons/blockchain-101_lesson_11 2.md
deleted file mode 100644
index 907cb0477..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_11 2.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 2
-title: Blockchains vs Cryptocurrency
-permalink: /courses/blockchain-101/02/blockchains-vs-cryptocurrency
----
-
-
-
-
-
-
-
WHAT IS THE DIFFERENCE BETWEEN BLOCKCHAIN AND CRYPTOCURRENCY?
-
-
The blockchain is the technology that serves as the distributed ledger that forms the network. This network creates a means for transacting and enables the transfer of value and information. A blockchain is a platform which allows cryptocurrencies to exist. Cryptocurrencies are coins or tokens used within these networks to send value and pay for these transactions. Furthermore, you can see them as a tool on the blockchain, in some cases serving as a resource or utility function. Other times they are used to digitize the value of an asset.
-
-{% include callouts/note.html
- bodyText='When you are ready, learn how to buy bitcoin or another cryptocurrency.'
-%}
-
-
In other words, blockchains serve as the base technology, in which cryptocurrencies are a part of the ecosystem. They go hand in hand, and a cryptocurrency is often necessary to transact on a blockchain. Without the blockchain, we would not have a way for these transactions to be recorded and transferred in a transparent way. A blockchain is a technical design pattern which allows networks to exist without relying on a central authority for network management and maintenance. A cryptocurrency is usually (but not always) a required part of a blockchain ecosystem, and is used to incentivize users to secure the network.
-
-
-
-
-
-
WHAT IS THE DIFFERENCE BETWEEN A COIN AND A TOKEN?
-
-
-
Most people use these terms interchangeably. However, this is not exactly correct. Both are types of cryptocurrencies, but each has slightly different characteristics. Coins are usually created on their own native network. Their job is to act as a means of transferring value. They are basically digital cash. Tokens are slightly different. Like their name may suggest, tokens specifically give rights to holders, such as voting or the ability to use a platform.
-
-
-
-
To better understand the difference between coins and tokens, let's use an arcade as an example. Some arcades have games that will only operate on tokens, you cannot put change straight into the machine. You need to transfer your money to that token to play all of these fun games. Essentially, a token is required for participation in the ecosystem. An example of this is Ethereum. Ethereum has its own native cryptocurrency, a coin known as ether. The main purpose of Ethereum is to act as a blockchain foundation for other dApps or projects to develop upon. And many of these projects have created a token as a utility. It's considered a token because they represent an asset or the right to use a platform.
-
-
Still confused? Just think of a coin as money, while a token represents everything else.
-
-
Many coins and tokens can be mined. Let's go over that process in our next lesson.
Now that we know a little bit about the structure of a blockchain and its components, we can explore how a blockchain is managed and maintained. How is data checked for reliability and then put into blocks? What keeps the network running? The answer to these questions is a process known as “mining”.
-
-
-
Since a copy of the blockchain is stored on each computer on the network, data can be retrieved relatively easily and quickly. This allows nodes on the network to act as reliable validators. These nodes are tasked with checking the reliability of information when a new block is being compiled by a block producer, the node selected to compile the next block. This process is also known as reaching consensus or mining.
-
-
PROOF-OF-WORK
-
-
-
-
The first blockchains used Proof-of-Work as a way to achieve consensus. Blocks go through a complex, energy consuming process of trial and error when they are trying to create a new, sufficiently random hash. In order to do this, nodes try to be the first to guess a value that meets specific criteria. The time and effort expended by these computers act as proof that they put in sufficient work needed to help maintain the network, and is appropriately known as Proof-of-Work. The miner that solves the equation that results in the creation of a block receives a reward in the form of a coin or coins, creating an economic incentive for users to mine blocks. Block rewards also act as an incentive for miners to contribute to the security of the system. The higher the blockchain’s hash rate, the more secure the chain will be. The more processing power a miner has, the more likely they are to solve the next block and receive the block reward as they are able to attempt to guess the most variables in the least amount of time.
-
-
While Proof-of-Work was the first consensus mechanism used by a blockchain, many have criticized its main feature as a downfall. Massive amounts of energy are consumed in order to secure a blockchain, so others have explored ways to have a secure blockchain without expending massive amounts of energy. New coins are constantly being mined, the number depending on the specific blockchain’s rules or protocols.
-
-
PROOF-OF-STAKE
-
-
-
-
Proof-of-Stake (PoS) has gained popularity as a potential alternative to Proof-of-Work by completely disregarding the “race” to find a specific variable. Instead, a node is selected to write the next block. There are different ways of selecting validators within Proof-of-Stake models, but the most common selection method is proportional to the amount of cryptocurrency staked. In other words, the more cryptocurrency that is staked by a node, the more likely that node is to be selected as the next block’s writer.
-
-
The theory behind Proof-of-Stake is that the more cryptocurrency one is willing to stake, the more stake that an individual has in the success of the network. If that individual is found to be sabotaging the consensus process, their stake is taken by the network, giving block producers great incentive to correctly validate the next block. Validators essentially bet cryptocurrency for the right to write a block. In return, they collect either a block reward or transaction fees. The collection of fees are an incentive for validators to stake their own currency, making sure validators have “skin in the game”, or money to lose if they are found to be acting maliciously. This threat of losing your cryptocurrency helps ensure the security of the network, as it highly discourages actions that might compromise the blockchain. However, it is not always possible to tell if a user is acting maliciously or a validator is not participating when they are supposed to. Sabotaging the blockchain is very different than not being able to validate a node because of a lost internet connection. As a result, those who commit these non-malicious errors are often given warnings or “fined” instead of having their entire stake taken on the first transgression.v
-
-
Proof-of-Work has its advantages over Proof-of-Stake. Proof-of-Work consensus mechanisms are completely trustless, as adding to the blockchain does not require a single validator to write the next block. Additionally, trust is amplified by each node’s ability to monitor the others, constantly monitoring the network for inconsistencies. No one individual has to be trusted for a block to be confirmed since all nodes are double checking the validity of a block’s data when it has been formed.
-
-
Proof-of-Stake also has its criticisms. Validators are arbitrarily selected, and a certain degree of trust must be assumed in order for the network to run. In order to gain a stake in the network, a potential participant has to obtain the required coins or tokens in order to be eligible to be selected as a validator. Additionally, if validators are selected by the size of their stake, the ecosystem puts itself in a situation where the rich have the disproportionate opportunity to be selected as a validator and collect rewards, allowing them to stake even more, repeating the process. Essentially, the rich get richer over time.
-
-{% include callouts/definition.html title="Incentives, Block Rewards, and Mining Difficulty" bodyText="As mentioned before, a key part of a blockchain’s architecture is decentralization. In order to maintain and add to this unique network construction, incentives must be provided to make sure nodes participate in the network, as to continue the building of the blockchain. The main incentive for mining is the block reward that goes to the node that writes the next block, encouraging more competition on the network and contributing to the security of the chain. Additionally, mechanisms are installed to control the amount awarded as block rewards to create an economically viable network.
-
-
-We already touched on two of the primary consensus mechanisms: Proof-of-Work and Proof-of-Stake. While many protocols use these popular consensus mechanisms, there are a few networks that use rather unique methods of achieving consensus. Proof-of-Activity, used by Decred, combines traits of Proof-of-Work with Proof-of-Stake to create a hybrid consensus mechanism. Some consensus mechanisms give advantages to those who transact their coins or tokens frequently, while others incentivize the holding of tokens. Additionally, there are many subsets of Proof-of-Stake, each having a different way of determining which node gets to write the next block. These consensus mechanisms are different, but they all aim to achieve the same goal; incentivize behaviors that will maintain the security and integrity of their respective blockchains" %}
-
-
-
To summarize, mining is the process of creating blocks made up of valid transactions. Essentially, it is the process in which nodes come to a consensus on what transactions are to be accepted.
-
-
The process of creating a block differs with each blockchain, but the most common mechanisms to achieve consensus are Proof-of-Work and Proof-of-Stake. Proof-of-Work pits miners against each other in a race to see who can find a compatible variable the fastest, creating a competitive and secure network. Proof-of-Stake selects between users who have “staked” cryptocurrency; if the user acts maliciously, they are warned and their stake is taken. If the selected validator writes a reliable block, they obtain the block reward. There are multiple ways of blockchains in which blockchains reach consensus and both existing and new projects are inventing unique incentive mechanisms.
-
-
Now that we know how cryptocurrency is mined, let's look at some potential attacks methods that could disrupt this process and how blockchains look to mitigate these attacks.
While double spending and the Byzantine Generals’ problem were addressed in order to make blockchain technology viable, there is still a potential vulnerability in blockchains. The most widely cited example is what is known as a 51% attack. To understand this concept, let’s look at an example. Suppose there are two neighborhoods with 100 houses each. Neighborhood A has one house with 99% of the neighborhood’s gold or money. The houses of Neighborhood B each have an equal amount of wealth.
-
-
-
-
-
Now let’s say a thief is looking to rob one of these communities. You need to get a certain amount of the neighborhood’s wealth for any robbery to be worth the risk. Do you target Neighborhood A, where all of the wealth is in one house? Or do you target Neighborhood B, where you would have to rob multiple houses? Of course, any smart thief goes for Neighborhood A, where less effort would amount to the greater amount gained in the heist.v
-
-
In this scenario, houses are nodes, and the money they possess is information. Neighborhood A represents a centralized network, with one server containing all the information. Neighborhood B represents a decentralized network; there is an equal amount of information in each node within the decentralized network.
-
-
So how does this relate to decentralized networks? Blockchains work off of a majority consensus. One possible way to attack a blockchain is to hijack a majority of the nodes in order to gain a majority of the hashing power of a network, thus allowing the hackers to write and confirm their own blocks. This is known as a 51% attack. However, Proof-of-Work consensus algorithms make any attempt at a 51% attack very costly. It would take a great amount of energy in order to attempt to hijack the majority of the blockchain’s nodes. In our example, this would be the same as robbing 51% of the houses in Neighborhood B, all within the same night.
-
-
-
-
You've completed the second module of this course! By now you've learned about the architecture or blockchains, how they stay secure, and how cryptocurrency is mined. Head over to our next module to see the potential impact that blockchain technology may offer.
Blockchains are expected to be integrated into many different industries, potentially creating great disruption. In some cases, blockchain based projects are already making their way into development. There are many applicable use cases for blockchain technology, and more are being discussed, researched, and developed at an increasing rate! In this lesson, we explore the development of blockchain technology and impacts on various industries.
-
-
-{% include callouts/callout.html title="Academics" bodyText="Blockchain technology offers many interesting solutions to problems or challenges in education. Blockchain in education touches on topics of identity and reputation, as well as privacy and security. Blockchains can enable us to completely rework our education and credibility systems, as well as verify credentials. They also enable a more secure way to hold student data, begging the question of how rights over student data will change in the coming years as blockchain technology is integrated." %}
-
-{% include callouts/callout.html title="Automotive" bodyText="Blockchain technology offers a great way to securely store vehicle data and keep the rights to that data with its rightful owner. Reputation ratings can be built for taxi or ride-sharing drivers, as well as drivers looking to rent a car. Smart contract integration can also influence the automotive field. Topics of privacy, identity, and reputation all play into the automotive industries disruption due to the introduction of blockchain technology." %}
-
-{% include callouts/callout.html title="Energy" bodyText="The energy industry’s potential to adopt blockchain technology offers the ability for people to sell excess energy through a peer-to-peer network, instead of selling it back to regional authorities. Blockchains provide a way of reliably tracking the production and use of energy while offering a straightforward and reliable way to process payments. As the energy sector becomes more decentralized, blockchain technology could be the key to ensuring fairness opportunity for everyone. Additionally, blockchain technology allows for an evener distribution and delivery of energy, ultimately making those systems more efficient.
-
-
-These plans are already being put into action. ConsenSys, an organization dedicated to the advancement of Ethereum based projects, is using the Ethereum network to supply electricity to parts of Texas. This has already cut down on the cost of supplying energy while minimizing energy waste. ConsenSys and Grid+ have incorporated Ethereum’s Raiden Network, used to the transfer of smaller amounts of currency which allows for users to receive micropayments if they have excess energy to sell." %}
-
-{% include callouts/callout.html title="Enterprise" bodyText="Enterprise can be greatly impacted by blockchains by providing secure and transparent ways for tracking transactions within and between businesses, whether that be financial records, customer records, receipts, orders, etc. Blockchains can also change the way contracts are implemented between employees and partners.
-
-
-Food fraud is a major problem for grocers, with some extreme cases leading to the deaths of consumers. Previously, it took weeks to identify the source of food contamination. Walmart is using Hyperledger Fabric in order to bring transparency to the food supply chain. Instead of outright rejecting a product that may or may not be harmful, the source of contamination can be much more easily pinpointed, minimizing any disruption to the food supply chain. Walmart currently tracks 25 products using a system built upon Hyperledger Fabric." %}
-
-{% include callouts/callout.html title="Finance" bodyText="The finance industry is quite aware of blockchain technology disrupting their field, especially considering that blockchains have their own cryptocurrency integrated into their systems. Many financial institutions have shown their interest by advocating for researching and developing blockchain technology.
-
-
-Blockchains can be utilized to influence any system dedicated to tracking transactions and the flow of money. Financial operations are traditionally done in a very opaque manner, but these open blockchains may challenge the status quo, allowing for greater trust between business partners. These institutions may be more open to using private blockchains, as this could better protect their organization’s interests." %}
-
-{% include callouts/callout.html title="Government" bodyText="Blockchains may challenge some of the current practices we have in place that help with governance. Voting is one system that blockchains can help secure and make fairer. Blockchains can also allow us, as smaller and larger communities, to govern ourselves or at least make decisions regarding our communities.
-
-
-The City of Denver is partnering up with Voatz, a decentralized platform that allows those overseas to reliably cast their vote. Voters use a secure application to cast their ballots." %}
-
-{% include callouts/callout.html title="Healthcare" bodyText="The healthcare industry in encumbered with an immense amount of paper records. Additionally, these medical records contain personal information that should only be available to the patient and their doctors. Forward Blockchain is a medical IT system that is currently being developed. Their goal is to secure medical systems by using blockchain technology." %}
-
diff --git a/all_collections/_lessons/blockchain-101_lesson_15 2.md b/all_collections/_lessons/blockchain-101_lesson_15 2.md
deleted file mode 100644
index 8a71b717f..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_15 2.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 3
-title: What is Ethereum?
-permalink: /courses/blockchain-101/03/what-is-ethereum
----
-
-
-
-
Bitcoin has seen success as it has settled as the most popular cryptocurrency. However, others believed they could implement blockchain technology to do more, possibly even to act as a “World Computer”. The Ethereum project was launched in 2015 with this explicit goal. They sought to create a decentralized network complete with smart contracts, programmable agreements that could be used to create decentralized applications (dApps).
-
-
-
-
-
-
WHAT PROBLEM WAS ETHEREUM BUILT TO SOLVE?
-
Bitcoin set out to be a store of value and medium of exchange, and arguably, it has achieved that goal. While it’s price has fluctuated greatly, the lifetime of bitcoin has shown significant net price gains. Bitcoin has proven to be a reliable, relatively cheap, and secure way to transfer value. While Ethereum functions on a blockchain and has its own native currency, ether, the project goal differs greatly from Satoshi Nakamoto's vision for bitcoin and blockchains.
-
-
WHAT ARE SMART CONTRACTS?
-
Smart contracts are computer protocols that facilitate, verify, or enforce the negotiation or performance of a contract. They are essentially self-executing programmable contracts. The idea was originally described by Nick Szabo in 1994 with the aim of eliminating economic friction by reducing the need for third parties. Smart contracts are irreversible and transparent and could prove to be a large part of the next iteration of the web. They have the potential to completely change how we interact with untrusted parties.
-
-
DECENTRALIZED APPLICATIONS
-
The internet has largely been built on centralized servers. Applications are dependent on these central points of failure, giving these third parties great control over the internet and digital identity. However, Ethereum’s Turing completeness allows for the creation of decentralized applications, or dApps for short. These are applications that are run on a decentralized network. They don’t require servers to run, rather, they utilize programmed smart contracts to function.
-
-
These smart contracts can be programmed so they execute an action under a certain set of conditions. They act completely autonomously and are can self-execute on chain transactions.
-
-
So what is needed to create a smart contract?
-
-
A subject of the contract
-
Digital signatures - all parties must sign the contract with their private keys.
-
Contract terms - After the trigger happens, the contract is performed in accordance with the contract terms. An oracle can be used to feed a smart contract real-world information.
-
Decentralized platform- this is where the contract is deployed on the Blockchain and is distributed to the nodes of the platform.
-
-
-{% include callouts/definition.html title="What industries could benefit from using smart contracts?" bodyText="Crowdfunding websites are a platform where the use of third parties helps facilitate donations or refunds if the terms are not completed. A smart contract can eliminate the need for this third party. You could even set up a few contracts for portions of the donations to be drawn at different stages of completion of the project. However, smart contracts are limited to on-chain activity. They cannot find the external information that may be crucial to the execution of a contract, like a deadline being missed. Oracles are tools used by some smart contracts in order to obtain the real world information needed for smart contracts to function.
-
-
-Real estate construction could work the same way. The general contractor would have to sign off that he paid his subcontractors, preventing a mechanics lien being placed on the property if he doesn’t pay them and tries to run off with the money. This is a great thing for those inexperienced in the industry who may now ask for this feature to be included in contracts. If subcontractors don’t have an experienced lawyer to know to include those contract terms, this mistake could be very costly because they wouldn’t be able to sell the property until the liens are paid in full.
-
-
-Some of the benefits of using smart contracts are reducing fees by cutting out middlemen, efficiency, encrypted/hashed security. However, the benefits do come with some downsides, as any new technology does. Currently, smart contracts still have to take into effect human error when programming the contract. Programming is expensive and there can be issues with legality. Smart contracts also cannot be used without some aspect of human interaction either entering or double-checking the information." %}
-
-
-
-
diff --git a/all_collections/_lessons/blockchain-101_lesson_16 2.md b/all_collections/_lessons/blockchain-101_lesson_16 2.md
deleted file mode 100644
index 6b0572f15..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_16 2.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 3
-title: Applications of Smart Contracts
-permalink: /courses/blockchain-101/03/applications-of-smart-contracts
----
-
-
-
-
APPLICATIONS OF SMART CONTRACTS
-
-
-
-{% include callouts/imageWithTextCallout.html
- title="CryptoKitties"
- image="/courses/blockchain-101/cryptokitties.jpg"
- bodyText="A popular collectible dApp released in 2017. Users could bid on digital cats in the form of ERC-721 tokens. This proved to be one of the first “viral” dApps which rapidly gained popularity. As a result, the Ethereum network quickly became overloaded, as it could not process the transactions that were being conducted, resulting in a backlog and very high fees. This incident displayed the limitations of the Ethereum blockchain and showed that the network would have to scale to meet real-world demand."
-%}
-{% include callouts/imageWithTextCallout.html
- title="Uport"
- image="/courses/blockchain-101/uport.jpg"
- bodyText="Large internet based entities, such as Google and Facebook, offer identity management features. This requires users to submit personal data, the likes of which are often targeted in hacks. If any of these services were to experience a catastrophic failure, it would be very difficult to use any applications that used these third parties as a means of verification. Uport acts as a platform for decentralized verification of identity."
-%}
-{% include callouts/imageWithTextCallout.html
- title="Augur"
- image="/courses/blockchain-101/Augur.jpg"
- bodyText="A decentralized peer-to-peer prediction market platform. People can use the platform to place bets on anything. From sports, crypto markets, election results, scientific or medical discoveries, to something as simple as guessing what tomorrow’s weather will be. Anyone can create a market for propositional betting on Augur’s platform by staking the augur cryptocurrency. Once a market is created people can buy shares in the outcome of that event. If you correctly predict an event you are monetarily rewarded. There is also an advanced dispute resolution system to solve any problems that may arise."
-%}
-{% include callouts/imageWithTextCallout.html
- title="Maker"
- image="/courses/blockchain-101/maker.jpg"
- bodyText="Maker is a decentralized autonomous organization (DAO) that developed the Dai Stablecoin to deal with the problem of volatility that popular coins such as bitcoin and ether experience. The large fluctuations that these coins can go through make them ineffective as an everyday currency. This led to the creation of stablecoins like Dai. They are designed to keep their value relativity stable compared to the US dollar or whatever currency they are pegged to. Dai’s value is stabilized by a dynamic system of collateralized debt positions on Makers' smart contract platform. Anyone can create Dai by leveraging 1.5 times worth of Ethereum. MKR is a volatile token that is used to govern the Maker DAO, and it is used as a utility token for Dai. Anyone can be a part of Maker simply by holding the MKR token. Holders of MKR govern the network. Through a continuous approval process, each holder of MKR votes for protocol changes concerning risk management and logic of the Maker system. "
-%}
-
-While Bitcoin paved the way, both as decentralized networks and cryptocurrencies, Ethereum set out to add an extra layer of functionality to blockchains. Building upon the example of a blockchain introduced by Satoshi, this additional layer allows for Turing-completeness and the development of decentralized applications via the creation and deployment of smart contracts. These autonomous and self-executing programs make up the infrastructure of these decentralized applications or dApps for short. The utilization of smart contracts allows blockchains to have applications beyond the financial use illustrated by Bitcoin. Whether executing contractual payments, to giving individuals control of their own identity, blockchains may lead to solutions to the problems long plaguing several industries.
diff --git a/all_collections/_lessons/blockchain-101_lesson_17 2.md b/all_collections/_lessons/blockchain-101_lesson_17 2.md
deleted file mode 100644
index ac77f37f4..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_17 2.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 3
-title: Limitations of Blockchains
-permalink: /courses/blockchain-101/03/limitations-of-blockchains
----
-
-
-
-
-
THE SCALING PROBLEM
-
-While blockchains are a very intriguing technology, they still have their limitations. As blockchains are a relatively new technology, there is a lot of uncertainty surrounding them. Regulators have yet to clarify the status of cryptocurrencies and are just learning about blockchain technology. Additionally, blockchains have not reached a sufficient level of scalability. Scalability describes the ability for a network to meet increased, real-world demand by being able to process transactions at a fast enough pace as to not create a backlog.
-
-There are many projects working to solve the scalability issue, and many are examining different approaches to address the technological limitations of a blockchain. Centralized services such as Visa can process thousands of transactions a second. It is currently very difficult for a decentralized network to achieve this type of efficiency.
-
diff --git a/all_collections/_lessons/blockchain-101_lesson_18 2.md b/all_collections/_lessons/blockchain-101_lesson_18 2.md
deleted file mode 100644
index 65c4faffc..000000000
--- a/all_collections/_lessons/blockchain-101_lesson_18 2.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: lesson
-course: blockchain-101
-module: 3
-title: Conclusion
-permalink: /courses/blockchain-101/03/conclusion
----
-
-
-
-
YOU'VE COMPLETED OUR BLOCKCHAIN 101 COURSE!
-
-
-
-At this point, you are now proficient in basic blockchain knowledge and how its potential impacts. You have now learned about blockchains, decentralization, and the applications offered by the technology. Don't stop now! Continue to learn by taking our Blockchain Security course or head to our courses page to see what else we have to offer.
-
-{% include courseEndButtons.html %}
diff --git a/all_collections/_lessons/blockchain_security_lesson01 2.md b/all_collections/_lessons/blockchain_security_lesson01 2.md
deleted file mode 100644
index 814f94480..000000000
--- a/all_collections/_lessons/blockchain_security_lesson01 2.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 1
-title: Primer & Introduction
-permalink: /courses/blockchain-security/1/primer-introduction/
----
-
-
-Getting started on your journey to safe crypto use
-What this course aims to teach is some prevalent issues common to users and developers of decentralized systems. As there are many technologies involved in the use of blockchains, each with its own area of concern, we cannot address all of them in detail. However, if you want to know what practical steps can be taken to secure yourself or the system you work on, this course is for you!
-
-Blockchain (or Distributed Ledger) technology provides a unique system of trust within a network. The ledger tracks the data generated within a system and is distributed amongst a network of peers. This ensures that no one can tamper with the information, which enables a range of new possibilities.
-
-It is highly recommended you finish the Blockchain 101 course before starting Blockchain Security as it expands on topics introduced there.
-
-{% include callouts/callout.html
- title="Disclaimer"
- bodyText="Security is complicated. We cannot possibly cover everything here, but we'll help you get enough to get started."
-%}
-
-
-
-This course was written for beginners, or as a refresher for anyone already familiar with the concepts.
-
-If you're looking for something more developer oriented, please RSVP for our Developer Bootcamp here.
diff --git a/all_collections/_lessons/blockchain_security_lesson02 2.md b/all_collections/_lessons/blockchain_security_lesson02 2.md
deleted file mode 100644
index a093f5a0b..000000000
--- a/all_collections/_lessons/blockchain_security_lesson02 2.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 1
-title: Protecting Digital Keys
-permalink: /courses/blockchain-security/1/protecting-digital-keys/
----
-
-
-While blockchain technology originally emerged as a solution to provide distributed trust within the Bitcoin network, the technology has progressed a long way since 2008.
-While this new architecture has many advantages, the implementation of a blockchain-based system is complex and requires a thorough review to ensure appropriate security.
-
-
-
-Regardless of which blockchain you use, there's no way to avoid key management concerns. The distributed ledger ecosystem requires each user to store and manage their own cryptographic keys. All on-chain interactions are tied to identities using signatures with private keys. In fact, a Bitcoin is nothing more than an IOU, passed from one digital key to another. Everything in a blockchain depends on the keys that are used to sign it, so it is extremely important to keep them secured.
-
-{% include callouts/bigQuote.html
- body="Your keys, your bitcoin. Not your keys, not your bitcoin."
- sourceName="Andreas M. Antonopoulos"
- sourceUrl="https://www.youtube.com/watch?v=dnC5mFaIW3Q"
-%}
-
-{% include callouts/callout.html
- title="CRYPTOGRAPHY REVIEW"
- bodyText='Remember that private keys are little more than randomly generated numbers that serve a master key to your wallet or profile. Since they are private and thus never to be shared, public keys are generated from the private key. In this way, the numbers are "linked" since one is born from the other. Your Public Key supports certain operations:
Allows others to encrypt a message specifically for you from them
Verify a cryptographic signature without knowledge of the private key
Your Private Key supports other operations:
Encrypt messages to another Public Key
Generate a cryptographic signature for which others can verify using only your Public Key
'
-%}
-
-This may seem complicated, but don't worry. In the following lessons, we'll expand on how wallet systems can be used to store your keys, and how you can stay safe while using these emerging technologies.
-
-More information is available about Public Key Cryptography in the Blockchain 101 Course.
diff --git a/all_collections/_lessons/blockchain_security_lesson03 2.md b/all_collections/_lessons/blockchain_security_lesson03 2.md
deleted file mode 100644
index 50f40e031..000000000
--- a/all_collections/_lessons/blockchain_security_lesson03 2.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 1
-title: Independence Is Essential
-permalink: /courses/blockchain-security/1/independence-is-essential/
-
----
-
-
-A blockchain is a way of structuring a collection of digital signatures.
-
-Keeping your keys secure is the first step to using decentralized systems safely. While similar, organizations and individuals have slightly different needs when it comes to security. We'll cover the tools that can be used later on in this series.
-
-
Personal Key Management
-If you own any cryptocurrencies, you may benefit from careful planning. It's easier than it sounds!
-
-With disintermediation comes reduced support and increased risk of personal compromise. In public blockchains such as Bitcoin or Ethereum, there is no backup plan or password reset. If you drop your wallet on the sidewalk, you lose your money. Similarly, if you don't look after your private keys, it could result in being irrevocably locked out.
-
-{% include callouts/note.html
- bodyText="Your digital signature controls your stake in a blockchain.
If someone is able to access your Private Key, they can sign your assets over to themselves!"
-%}
-
-
-
-
Businesses and Key Management
-Especially in public blockchains, proper key management is incredibly important. If your project is running on a public blockchain, a compromised key could mean having your funds hijacked, or smart contracts compromised. Currently, there is little in the way of "undo" functionality for these types of scenarios. In private blockchains, an ecosystem where there may be a greater degree of control, it's still very important to ensure that information can still be securely added and stored on the chain. In the same way that it's important for users to secure their passwords for personal accounts, they should ensure that their keys are stored securely and backed up to minimize risks of being lost or inaccessible.
-
-
-{% include callouts/callout.html
- title="It's turtles all the way down"
- bodyText="The entire purpose of blockchains is to store signatures that verify information, so without properly storing your keys, your blockchain empire may come crumbling down. "
-%}
-
-In the case of decentralized applications, this means that there is always a risk that your organization could lose control of a smart contract or other assets if the keys are lost, and there is no recourse. As a result, it is always recommended to consult with technical experts prior to engaging in any on-chain business or when dealing with large amounts of cryptocurrency. They can help ensure that proper recovery techniques are in place including multi-signature shared control.
diff --git a/all_collections/_lessons/blockchain_security_lesson04 2.md b/all_collections/_lessons/blockchain_security_lesson04 2.md
deleted file mode 100644
index d21943755..000000000
--- a/all_collections/_lessons/blockchain_security_lesson04 2.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 2
-title: Individual Account Compromise
-permalink: /courses/blockchain-security/2/individual-account-compromise/
----
-
-
-In the past, an 8 digit password was nearly impossible to crack, but in 2020, it's not only possible - it's easy.
-
-Staying safe online is about more than just a strong secret key. Avoiding illegal torrents and other un-verified downloads is a good place to start, but when it comes to corporate e-governance, things get even more complicated. Software review, careful audits, and change management should all be high priorities for any decentralized projects. Storing private keys in a publicly accessible place can introduce a crime of opportunity when not already present.
-
-In addition, a weak quality password could make it possible for any computer with a modern video card to crack your password. The problem is made worse by the existence of inexpensive, on-demand processing, for example, through a traditional cloud provider. Finally, ensuring your source of entropy/randomness was sufficient during account creation may not be something the end-user has control over, however, this can be a major weakness after keys were already thought to have been secured.
-
-
-
-Aside from actual wallets being hacked, there is always the risk that a developer's Github account could be compromised, in which case a bad actor could add malicious code into the client software for the blockchain network. In the past, bad actors have gone as far as to join the development communities for modules which were used in other software, such as the cryptographic libraries used in the Bitcoin client, and sought to create security loopholes by pushing malicious code to those dependencies.
-
-{% include callouts/note.html
- bodyText="While core blockchain code doesn't often malfunction, wallet and client software is an easy target for many hackers. It's important to always verify that the wallet software you are downloading matches the publisher's hash. Most the iOS and Google Play app stores do this automatically, but we must be particularly careful with desktop applications."
-%}
-
-
The Bright Side
-While this might all seem a bit intense, some say that cryptocurrency has actually resulted in a substantial increase in the strength of modern cryptography. Now - if you're smart enough to hack, you can make quite a substantial return. Once a bug is exploited (usually quite noticeably) the network will often patch the hole and implement a fork, at which point the attacker is rewarded, albeit indirectly, and the system is forced to improve.
-
-Unfortunately, not all security flaws are wide ranging enough to require a fork, and so there is always the risk that a system can be undermined from within, or without. In the next lessons, we'll cover how to protect yourself from these kinds of systemic risks.
-
-
diff --git a/all_collections/_lessons/blockchain_security_lesson05 2.md b/all_collections/_lessons/blockchain_security_lesson05 2.md
deleted file mode 100644
index 94d28f99d..000000000
--- a/all_collections/_lessons/blockchain_security_lesson05 2.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 2
-title: Cryptocurrency Wallets
-permalink: /courses/blockchain-security/2/cryptocurrency-wallets/
----
-
-
-It's important to have the right tool for the job.
-
-Although the software we use to manage cryptocurrencies is called a "wallet", no actual value is held in the wallet itself. Instead, it is a management interface for interacting with your private keys and blockchain networks. Modern cryptocurrency wallets are more like a chequebook, which doesn't hold any actual assets directly, but can sign them to another person. Because balances are tracked by the blockchain itself, cryptocurrency wallets mainly automate the process of signing cryptographic messages and broadcasting them to peer nodes in the network.
-
-{% include callouts/callout.html
- title="What's in a wallet?"
- bodyText="A wallet doesn't directly contain assets, but instead is a software tool used to manage your Private Keys. Modern wallets also calculate account balances and provide one-click transaction processing, which is otherwise a fairly complicated process."
-%}
-
-{% include callouts/imageWithTextCallout.html
- title="Hot Wallets"
- image="/courses/blockchain-security/Jaxx.png"
- bodyText="Hot wallets store funds for immediate use, and are thereby less secure. Usually, these are used as mobile apps and run on a smart phone or website. Quick access comes at the cost of reduced security, so these wallets are meant to hold only the amount of cash you might carry in your pocket. The idea is that once funds reach a certain level, you might want to transfer them somewhere more secure, like a hardware or cold storage wallet.
With hot wallets, the keys are stored in the wallet software, which makes them easy to use, but prone to compromise."
-%}
-
-{% include callouts/imageWithTextCallout.html
- title="Custodial Wallets"
- image="/courses/blockchain-security/6C6694DB-99B9-42E5-8F4D-FD3777FC39A9.png"
- bodyText="It is important to distinguish between self-hosted wallets and custodial wallets. They are called custodial because the wallets are held in custody by another entity. Consider, as an example, the difference between keeping gold bars in your home safe, or purchasing gold as a commodity on the stock market. In one case, you own the physical good, while in the other you trust an authority to hold it on your behalf. In this way, storing tokens in a custodial wallet is not seen as secure, since the institution is vulnerable as a central point of failure.
With custodial wallets, such as coinbase.com, your keys are stored by a third party. While this can be a good solution for first-time buyers, it is recommended to move funds to cold storage for long term safety."
-%}
-
-{% include callouts/imageWithTextCallout.html
- title="Cold Wallets"
- image="/courses/blockchain-security/205E6B2A-F563-4400-8F6C-8C833CA82007.png"
- bodyText="For funds which will not be immediately used, a higher security storage option might be more appropriate. These can also be offline backups of a hot wallet or may serve as a single piece of multi-signature access. A key phrase is just a string of letters and numbers, so these can take the form of some words written down on a piece of paper. We will learn more about this in our next lesson, HD Wallets & Seed Phrases. Other options for cold storage include steel wallets, using a secure thermal printer, or keeping a dedicated computer completely air gapped.
If you're located near Chicago, please drop in at our office in Uptown, and we can help you set up a paper wallet of your own."
-%}
-
-{% include callouts/imageWithTextCallout.html
- title="Hardware Wallets"
- image="/courses/blockchain-security/9E1D71A1-A3CD-425E-8AD7-D24B51340AE5.png"
- bodyText="Hardware wallets offer some of the best balance of ease-of-use and security, but are somewhat more expensive. Buying a dedicated device will always be more costly than using paper and pen, but the added convenience and security is worth it. The Ledger Nano S is one of the most popular devices in large part due to its wide token support, and currently sells for just under $50 USD.
The Blockchain Institute uses a Trezor Model T to store our donations, which helps us ensure that they are used for the prescribed purposes."
-%}
-
-
Choosing the Right Wallet
-While it might seem like a lot of options, most users follow a similar path in their blockchain journey. Usually, the easiest way to purchase digital assets is through a custodial provider. Once you do, you'll want to export the funds to a hot wallet or a hardware wallet. For assets you plan to hold for a long time, consider setting up a cold storage wallet on paper or via a tool like Crypto Key Stack - their fireproof, waterproof wallet is likely to survive as long as you can need it.
-
diff --git a/all_collections/_lessons/blockchain_security_lesson06 2.md b/all_collections/_lessons/blockchain_security_lesson06 2.md
deleted file mode 100644
index c5beb39dc..000000000
--- a/all_collections/_lessons/blockchain_security_lesson06 2.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 2
-title: HD Wallets & Seed Phrases
-permalink: /courses/blockchain-security/2/hd-wallets-seed-phrases/
----
-
-
-Privacy on public blockchains can only be attained through obfuscation.
-
-The first thing to know about Hierarchical Deterministic (HD) Wallets & Seed Phrases is that they're not a piece of software, but rather a specification for how cryptocurrency wallets can more reliably generate and store addresses from a single private key. In fact, hardware wallets predominantly are enabled by this key innovation.
-
-{% include callouts/note.html
- bodyText="With HD Wallets, a new address can be used for each transaction, making it difficult to trace the flow of funds or other assets."
-%}
-
-
THE REALITY
-No singular specification has dominated the blockchain industry or even a particular token. Many wallets have failed to implement the specification in a way that is easy to import and export from vendor to vendor. However, HD wallets and seed phrases still play a valuable role in the everyday use of blockchain software. The key is the structure of hereditary keys, derived from a common seed phrase. In most cases, an extended key is derived first, and the seed is then kept secret.
-
-{% include callouts/definition.html
- title="HIERARCHICAL DETERMINISTIC"
- bodyText="A deterministic wallet is nothing more than a way to regenerate many addresses from a single extended private key. We call it extended because it is twice the length of a normal key, which allows us to perform some cool math tricks. We won't get into the fancy math here, but it is helpful to understand how the keys are generated."
-%}
-
-{% include callouts/definition.html
- title="SEED PHRASES"
- bodyText="Seed Phrases are a user-friendly representation of the Extended Private Key used in an HD Wallet. The typically come in the form of 12-, 18-, or 24-word English words. They are the basis for backing up and restoring a hardware wallet. If the device were ever lost, restoring the wallet is as simple as re-entering the Seed Phrase into a new device. This method can also be used with software wallets and generally is seen as the preferred way to backup and restore cryptocurrency wallets."
-%}
-
-{% include callouts/imageWithCaption.html
- image="/courses/blockchain-security/Heirarchical-01.jpg"
- title="HIERARCHICAL DETERMINISTIC"
- bodyText="Hierarchical deterministic wallets use a seed phrase to generate multiple pseudonymous identities. This increases security by obfuscating the user's transaction history, and can even be implemented to use a new private key for every transaction. A:Seed;B:Master Key;C:Child Keys;D:Grandchild Keys."
-%}
-
-
KEY GENERATION
-With HD Wallets, a seed phrase is used to generate a master private key, which is then hashed with a predefined value to generate a set of unique addresses, along with a corresponding private key for each of them. Because the addresses and private keys are derived separately, this tool can be used to generate infinitely many addresses, withour ever even recording their private keys. When it comes time to unlock them, we can generate the corresponding keys and withdraw the funds.
-
-{% include callouts/callout.html
- title="BIP32"
- bodyText="Bitcoin Implementation Proposal #32 was adopted early 2012 in order to provide a solution for relative privacy on the Bitcoin network. While it was created for Bitcoin, it is now used in most cryptocurrencies, as well as some digital collectibles.
While each address is generated randomly, there are so many available permutations that it is next to impossible to ever end up with the same address as someone else."
-%}
-
-
TRY IT YOURSELF
-The best way to understand how HD wallets work is by using one in real time. Fortunately, there is a handy BIP32 Deterministic Key Generator available online for us to play with! Although the specific derivation paths (algorithms) used vary between tokens, the concept is similar across platforms.
-
-Once you open the BIP 32 Generator you'll see the interface shown below.
-
-{% include callouts/upsideDownImageWithCaption.html
- image="courses/blockchain-security/bip32-1.png"
- title="1. Set a seed phrase"
- bodyText="Enter a seed phrase and write it down."
-%}
-
-{% include callouts/upsideDownImageWithCaption.html
- image="courses/blockchain-security/bip32-2.png"
- title="2. Get an Address"
- bodyText="Scroll down and check your generated address. You can click the dropdown to set the derivation path, and change the Account (k) field to get a new address at that path."
-%}
-
-{% include callouts/upsideDownImageWithCaption.html
- image="courses/blockchain-security/bip32-3.png"
- title="3. Check the address on a block explorer"
- bodyText="While it's not necessary, it can be a nice peace of mind to know for certain that your address is not already in use. Open a Blockchain Explorer and paste in your generated address to see if it's ever been used before. In this case - looks like we're safe!"
-%}
-
-Write down that seed phrase and keep it. You now have your own HD wallet. The BIP32 Generator runs clientside only, so as long as your computer is secure, then you have your own completely private set of Bitcoin addresses which you can use for anything you want. For reference, your chance of overlapping with someone else's address is about the same as selecting a single grain of sand from the entire universe, so it's usually pretty safe to skip Step 3.
-
diff --git a/all_collections/_lessons/blockchain_security_lesson07 2.md b/all_collections/_lessons/blockchain_security_lesson07 2.md
deleted file mode 100644
index c40e92057..000000000
--- a/all_collections/_lessons/blockchain_security_lesson07 2.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 3
-title: Centralized Points of Failure
-permalink: /courses/blockchain-security/3/centralized-points-of-failure/
----
-
-
-Centralized points of failure represent salacious opportunities for would-be adversaries to attack.
-Think about it this way: if you're barricaded in a room and there is only a single way in and out of the room, where does it make the most sense for your enemy to attack? The single point, of course! In a similar way, when we rely on a single service to a point of reliance, we can say that it is a single point of failure since its loss would mean a major catastrophe for us.
-
-{% include callouts/imageWithCaption.html
- image="/courses/blockchain-security/SinglePoint-01.jpg"
- title="SINGLE POINT OF FAILURE:"
- bodyText="A:Computer;B:Router;C:Application Server. In centralized networks, devices communicate across common channels and not directly with eachother. This can result in increased risk of catastrophic failure or network hijack."
-%}
-
-
ALTERNATIVES TO CENTRALIZATION
-Depending on the degree of centralization which is acceptable, it is possible to adapt the network topography. Federated system provide a mid-ground for decentralized solutions, but commonly come at the cost of network security.
-
-{% include callouts/definition.html
- title="Federation"
- bodyText="Federated services allow multiple providers to offer an identical service under a single integration endpoint, but in many cases, these networks do not currently have enough separate providers to ensure stability. As a result, it is possible that a single service like this could be attacked and result in the compromise of the wider network. Sometimes these use bridges to make interacting with the federated servers easier, but the bridge can turn into a point of failure itself."
-%}
-{% include callouts/definition.html
- title="Peer-to-Peer"
- bodyText='Another option is to leverage a full peer-to-peer environment. This reduces our reliance on bridges and helps alleviate some network constraints that centralized networks are prone to. Of course, this can be very difficult to achieve a substantial mass of interest. This leads to lopsided access for less popular content. For example, looking at the BitTorrent network, the newest content moves fastest, while old contents suffer from lack of nodes hosting the data. One solution to this is to offer economic incentives for users who help to support the diversity of the network. This is a critical area where cryptoeconomics may be a boon for future protocols.'
-%}
-
-
-
REDUCING TECHNICAL RISK
-
-
-Most public blockchains strive for complete decentralization, however, it's unclear if such a feat is achievable; or will we simply get closer to 100% but never there due to non-technical issues, but this sometimes includes the use of federated service servers. In the case of Ethereum, the Infura network provides API access to the blockchain for developers so that they do not need to have a copy of a full node in order to check blockchain data. These kinds of services provide vital tools for network growth but must be carefully managed to avoid potentially dangerous centralization.
-
diff --git a/all_collections/_lessons/blockchain_security_lesson08 2.md b/all_collections/_lessons/blockchain_security_lesson08 2.md
deleted file mode 100644
index 0e9686978..000000000
--- a/all_collections/_lessons/blockchain_security_lesson08 2.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 3
-title: 51% Attack / Network Hijack
-permalink: /courses/blockchain-security/3/51-attack-network-hijack/
----
-
-
-As we covered in the previous section, public blockchains depend on a network of nodes to maintain the system and store all of the pertinent data.
-
-In the event that a single actor is able to take control of more than 50% of the nodes, it is possible for them to update the history of the chain with new records. This presents a substantial vulnerability for systems such as Bitcoin, in which there is a large amount of wealth available to anyone who can compromise the network.
-
-While it is possible for a bad actor to overtake a network, this does not mean that the network must accept the new version of the blockchain as proposed by the bad actor. In fact, a 51% attack is generally so expensive to maintain that efforts are short lived when they do occur. In the event of a 51% attack, the bad actor would need to not only maintain a majority of the network’s hashing power, but they would also need to somehow convince the other nodes that they should adopt new information while disregarding their existing record of the network.
-
-{% include callouts/imageWithCaption.html
- image="/courses/blockchain-security/Attack-01-1.jpg"
- title="51% Attack"
- bodyText="In a 51% attack, a malicious actor takes over a majority of the network's nodes, which allows them to propose and confirm transactions without the need for approval from anyone else in the network."
-%}
-
-An analogy may help to further consider this scenario. Suppose that some troublemaker is trying to change a historical article on Wikipedia. Once the malicious actor finds out how to bypass basic moderation, they will be able to rewrite history as they see fit, however, Wikipedia's administrators will likely work to redefine the system to ensure that malicious actors only have a short time to make these changes. However, as long as a record exists of the true state of the system, it is possible to revert the changes made by the malicious party and exclude them from the new network.
diff --git a/all_collections/_lessons/blockchain_security_lesson09 2.md b/all_collections/_lessons/blockchain_security_lesson09 2.md
deleted file mode 100644
index 5394ea39c..000000000
--- a/all_collections/_lessons/blockchain_security_lesson09 2.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 3
-title: Bad Data & DoS
-permalink: /courses/blockchain-security/3/bad-data-dos/
----
-
-
-In a public blockchain, even valid network congestion can cause issues.
-
-In the Ethereum network, valid traffic requests from the Cryptokitties project in 2017 led to an overwhelming transaction volume, and ultimately over-congestion of the network for several days. Ethereum's Gas pricing algorithm has the ability to adjust upwards to balance the demand but requires a (somewhat passive) vote of miners to achieve.
-
-Similarly, the Bitcoin network prevents network congestion by prioritizing older transactions, which makes it impossible for a single user to send themselves transactions over and over again. Through this configuration, a user could only run transactions until they ran out of BTC to send, which makes these attacks fairly inefficient.
-
-In the private context, such as Hyperledger supply chain tracking, there is a reduced risk of bad data as all nodes must have permission to write to the chain. Despite this, there is always the risk of bad data being intentionally added by another party in order to subvert the network and unfairly game the system.
-
-{% include callouts/imageWithCaption.html
- image="/courses/blockchain-security/DoS-01.jpg"
- title="DoS ATTACK:"
- bodyText="A:Legitimate User;B:Attacker;C:DDoS Attack;D:Internet;E:DoS Protection;F:Server.
-In a DOS attack, the server is incapacitated by an overhwelming number of requests, and can be manipulated as a result. Decentralized networks effectively prevent this sort of attack by creating a financial dissincentive, but have sometimes proven ineffective."
-%}
-
-No matter the software, sometimes inefficient implementations lead to poor performance. When the performance degrades to the point that the node cannot stay connected to the network any longer. This is effectively a Denial-of-Service attack.
-
diff --git a/all_collections/_lessons/blockchain_security_lesson10 2.md b/all_collections/_lessons/blockchain_security_lesson10 2.md
deleted file mode 100644
index f8fa96e78..000000000
--- a/all_collections/_lessons/blockchain_security_lesson10 2.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 3
-title: Keeping Yourself Secure
-permalink: /courses/blockchain-security/3/keeping-yourself-secure/
----
-
-
-
IDENTIFYING FUTURE PROBLEMS
-
-Congrats, if you made it this far, you're now well versed in basics of blockchain security! Now that you're familiar with the most common issues, we wanted to provide a few tips for you to identify vulnerabilities as they evolve. In general, there are three categories of vulnerabilities:
-
Social
-Also known as Social Engineering. These vulnerabilities are characterized by attacks which take advantage of the individual users of the network. This is less about technology and more about humans. If you've ever given a password over the phone when you know you shouldn't--you have fallen prey to social vulnerability.
-
Structural
-Characterized by problems or weak points in the architecture of the system, such as centralized servers. These are the obvious technical problems with only a single server and no backups or an infrastructure designed around any singular choke point. Horizontal scaling of servers (which simply means more!) can help to alleviate the problem of serving requests, but then it's possible that another supportive protocol, such as DNS, were to become unavailable.
-
Economic
-Characterized by a lack of appropriate incentives to ensure that participants in the network behave as expected. We can most regularly see this in the lack of monetary support of Open Source protocols and software. Famously, several critical pieces of software that power the majority of internet servers have had bugs dormant in their software for years. Typically, these projects are only maintained by a single part-time developer.
-
-
-
WRAPPING IT UP
-
-
-Keeping yourself secure in an online world is becoming increasingly difficult. There are a few basic measures that all security-conscious internet users can take:
-
-
-
-Although none of these recommendations are exclusive to the blockchain industry, these essential checks will help to prevent a variety of compromising situations. Now that money is digitally accessible and can become totally unrecoverable, it's time for us to take careful measures with digital security more generally. The internet and computation were not designed in an adversarial environment, so many devices are simply designed to work rather than to be secure.
-
-
-We're here to help. If you have any questions or feedback about this course please email us at info@theblockchaininstitute.org - we'd love to hear from you!
diff --git a/all_collections/_lessons/blockchain_security_lesson11 2.md b/all_collections/_lessons/blockchain_security_lesson11 2.md
deleted file mode 100644
index ca3e41df0..000000000
--- a/all_collections/_lessons/blockchain_security_lesson11 2.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: lesson
-course: blockchain-security
-module: 3
-title: Next Steps
-permalink: /courses/blockchain-security/3/next-steps/
----
-
-
YOU'VE COMPLETED OUR BLOCKCHAIN SECURITY COURSE!
-
-
-
-Hopefully you're now feeling prepared to use web3 safely. You may be interested in our Bitcoin For Developers course if you're interesting in using cryptocurrencies or head to our courses page to see what else we have to offer.
-
-{% include courseEndButtons.html %}
diff --git a/all_collections/_lessons/business_lesson01 2.md b/all_collections/_lessons/business_lesson01 2.md
deleted file mode 100644
index eaac89868..000000000
--- a/all_collections/_lessons/business_lesson01 2.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 1
-title: Private vs Public Blockchains
-permalink: /courses/blockchain-for-business/1/public-vs-private-blockchains
----
-
-
-
-When the term blockchain is used, people are usually referencing public or open blockchains. These permissionless chains allow use by any participant. While the users are not identified in a public blockchain transaction, the information associated with each transaction is displayed transparently.
-
-Private blockchains do exactly the opposite. The parties are known, but the information in the transaction is never recorded to a public ledger. Businesses do not want their information displayed publicly, so they are likely to select a private chain where the business maintains control over the data they’ve obtained. To put it simply, public blockchains are open to anyone. By contrast, private blockchains intend to restrict either participant or validator access.
-
-
-
-Private blockchains have significant differences than their public counterparts. Private or permissioned blockchains are an ecosystem comprised of known participants, but the information that is being transferred can only be sent or viewed by an approved party. Additionally, the consensus mechanisms used for private blockchains are quite different than the public blockchain methods we have previously discussed. Some private blockchains utilize consensus mechanisms that allow a central party the ability to confirm or deny transactions. Others use input from multiple parties to reach consensus.
-
SO WHY IS THERE A NEED FOR PRIVATE BLOCKCHAINS?
-
-Many private companies, including JP Morgan, have shown an interest in the potential of blockchain technology, but require greater control than that provided by public blockchains. Companies are looking to incorporate blockchain technology into the way they conduct business, ranging from accounting to supply chain management. Private entities don’t want their proprietary information to be shared publicly, but they also see the advantages of moving towards blockchain technology. This middle ground has led to the creation of private blockchains, allowing companies to benefit from the technology without giving up their autonomy or compromising consumer data.
-
-Blockchains were created to coordinate data between parties that don’t necessarily trust each other. This is useful when you’re in a situation where you want to exchange data or agree on the validity of data with untrusted parties. Blockchains are great for agreeing on public data; this is what they were created for. There are a few situations where it makes sense to use a private blockchain. For example, some businesses in a specific industry might want to exchange data between themselves, but no individual business wants the responsibility of maintaining that data. Utilizing a shared ledger might make sense.
-
-
-
-It’s tough to go into specifics about distributed ledgers because these private systems can vary greatly as they are designed to meet the needs of a particular organization. Distributed ledgers are a consensus of replicated, shared, and synchronized digital data geographically spread across multiple sites, countries, or institutions. Even the permissioned distributed ledger software project Hyperledger is designed to be configurable in many different ways to meet a wide variety of needs.
-
-It’s important to remember that blockchains are essentially slow, inefficient databases. If you are considering using blockchain or distributed ledger technology, you’ll have to assess certain questions:
-
-
Do I need to share this ledger with people that I don’t fully trust?
-
Will multiple users be writing to this database and will their entries interact or be dependent upon each other?
-
Who will be the “validators” of this data? And how will this distributed system reach a consensus?
-
-If these questions cannot be answered, it is probably wiser to use a traditional database. When coordinating data between untrusted parties, a private blockchain could provide transparency into certain transactions that could increase trust between both parties.
-
CONSORTIUM BLOCKCHAINS
-
-Many companies are choosing to incorporate blockchain technology into their existing business models. As blockchains are a new invention, these companies are forming working groups, or consortia, to determine industry standards around blockchain technology.
-
-Distributed ledgers are business-to-business workflow tools, which requires that blockchain increases and enhances collaboration. Therefore, it is important to set recognized standards, develop infrastructure, and execute transactions in a standardized manner. These consortia are the mechanisms through which companies that are interested in blockchain technology are collaborating. Any company seeking to capitalize on blockchain’s potential to increase operational efficiency may consider joining or forming a blockchain consortium. However, it would be wise to heed the lessons from the first generation of consortia. In particular, adequate funding, robust governance, and commitment from key companies are critical. Without these key supports, a consortium may have trouble reaching its goals.
-
-One of the biggest blockchain consortia is the Enterprise Ethereum Alliance. The EEA is made up of several projects and organizations with the aim of standardizing business practices that surround the Ethereum ecosystem. The goal is interoperability for both businesses and consumers alike by developing an open, decentralized web.
-
EVERY BUSINESS IS UNIQUE
-
-Each organization or network has its own specific set of needs, which is why there is no correct answer on which blockchains are better. Public and private blockchains contain different characteristics, and the selection should be made based on what the organization is trying to achieve. Each organization has specific goals and should assess their needs independently. For this reason, private blockchain platforms like Hyperledger allow organizations a certain level of customization when creating their private chain.
-
-Now that we’ve addressed a modification to make blockchains more business applicable, let’s explore how blockchain protocols can be altered to handle any governance changes or disputes.
-
diff --git a/all_collections/_lessons/business_lesson02 2.md b/all_collections/_lessons/business_lesson02 2.md
deleted file mode 100644
index 0951f9ec1..000000000
--- a/all_collections/_lessons/business_lesson02 2.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 1
-title: Governance and Forks
-permalink: /courses/blockchain-for-business/1/governance-and-forks
----
-
-
-
-
-
-While private blockchains can be designed or changed to suit the needs of a particular organization, public blockchains have a much more difficult time making changes because of their egalitarian decentralized networks.
-
-Decentralized systems are designed to bring power back to the people. This introduces a unique problem: How do decentralized systems govern themselves? Through a combination of improvement proposals and protocol upgrades via software changes, blockchains can govern themselves with the help and direction of each node on the network.
-
-The goal within a public blockchain is creating a balance of power. Developers, miners, exchanges, users, and merchants all have a role to play in the ecosystem, giving them the ability to have input in the governance of the network and power. Developers write and release the code, but no one has to run that code. Miners can agree to mine blocks to new standards, but individual nodes can refuse to accept and forward blocks that don't meet those standards. Users and merchants have the power to run the software that they feel is best. The public blockchain ecosystem has a set of built-in checks and balances. Each group gets to represent their interests.
-
PROTOCOL CHANGES
-
-A popular way of addressing potential protocol changes is by going through a proposal implementation process. Each blockchain has a different process for addressing community introduced proposals, but each involves a rigorous process before a recommendation is approved for implementation.
-
-
-
-Bitcoin uses a proposal process through the introduction of BIPs. A Bitcoin Improvement Proposal (BIP) is a design document for introducing new features or upgrades to the Bitcoin software. This is the standard way of communicating ideas since Bitcoin has no central structure or leadership.
-
-There are three types of BIPs:
-
-
Standards Track BIPs - Changes to the network protocol, block or transaction validation, or anything affecting interoperability.
-
Informational BIPs - Design issues, general guidelines. This type of BIP is NOT for proposing new features and does not represent a community consensus.
-
Process BIPs - Describes or proposes a change in the blockchain’s processes. Similar to Standards BIPs but apply outside the Bitcoin protocol.
-
-Ethereum has its own implementation protocols, taking approved Ethereum Request for Comments (ERC) and turning them into Ethereum Improvement Proposals (EIP).
-
A FORK IN THE CHAIN
-
-When there is a protocol change, the blockchain’s software must be updated. This is done through a process known as a fork. There are multiple types of forks, but all have the goal of updating the blockchain’s protocols.
-
-
-
-
Hard Fork
-
-
A hard fork is a protocol change that makes previously valid blocks invalid or vice versa. A hard fork can append the ledger or make major protocol changes.
-
For a node to access the software after the fork, the node must be running the most recent version of the blockchain’s software. This is because the previous chain and the information contained within it has been rendered invalid. A fork is named as such because it creates two paths of a blockchain, one invalid, one valid.
-
A hard fork will ensure that any nodes running old software will have their newly created blocks invalidated, forcing those nodes to update their software if they want to be a part of the new chain.
-
In 2016, the Ethereum-based DAO was hacked. To revert the blockchain to its previous state, a hard fork was implemented to reverse a large scale hack, returning the stolen ether to its rightful owners.
-
Ethereum has been criticized for this hard fork, as many believe immutability must be maintained to have a truly decentralized network. This fork led to a chain split that resulted in Ethereum and Ethereum Classic chains. Most chose to accept the hard fork and continue with the amended Ethereum chain.
-
-
Soft Fork
-
-
A protocol change that is backward compatible, and therefore much less problematic to implement. A soft fork is backward compatible; it can still work with previous versions of the blockchains software. New blocks can still be recognized by old software, making soft forks much less contentious than hard forks. Soft forks are a useful tool for minor network changes.
-
-
User Activated Soft Fork
-
-
-
-
A User Activate Soft Fork is a plan to activate a Bitcoin soft fork on a specified date and enforced by a majority of full nodes rather than relying on miners. To succeed, participating nodes must have represented a so-called "economic majority" - users, exchanges and businesses with significant influence over the Bitcoin economy. This is in contrast to previous forks where miners choose which blocks to confirm, giving them great power over software implementation. UASFs are a way to shift the disproportionate power of governance from miners to the rest of the users.
-
-
-
-Several blockchains have explored and installed unique governance features. Let’s take a look at some of them in our next lesson.
diff --git a/all_collections/_lessons/business_lesson03 2.md b/all_collections/_lessons/business_lesson03 2.md
deleted file mode 100644
index c79f66e13..000000000
--- a/all_collections/_lessons/business_lesson03 2.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 1
-title: Governance Experiments
-permalink: /courses/blockchain-for-business/1/governance-experiments
----
-
-
-
-
-Proof-of-Work and Proof-of-Stake have proven to be the most popular consensus mechanisms. However, they are not the only methods for getting nodes to verify and agree upon data. Other projects have experimented with rather unique ways of achieving consensus:
-
Dash
-A Proof-of-Work algorithm that is monitored by masternodes. Each Dash masternode requires a minimum stake to run. Masternodes are tasked with acting as extra network supervisors, earning passive income while increasing network security. This is essentially a combination between a Proof-of-Work and Proof-of-Stake algorithm. Blocks are still compiled by miners, but masternodes provide additional supervision while earning coins and ensuring the security of the network.
-
-
DeCred
-Another interesting consensus system is Proof-of-Activity, which is a unique hybrid between Proof-of-Work and Proof-of-Stake, allowing the network to implement a series of incentives.
-
EOS
-21 block producers are elected by EOS holders. Block producers are tasked with compiling data into a block, essentially confirming valid transactions to get a block reward. These block producers must stake their EOS, and are randomly chosen to produce the next block. If EOS holders are unhappy with a block producer, they can be voted out and a new block producer is elected. Rewards are very high for block producers, as they collect all transaction fees collected by the network. This provides an incentive for block producers to follow network protocol. This consensus method is known as Delegated Proof-of-Stake or dPoS. It functions as a senate or representative legislative body. EOS holders elect representatives in block producers, who make the crucial decisions and confirmations needed to sustain the network.
-
-
A CASE STUDY: THE BTC vs BCH SPLIT
-
-
-
-
What is the significance of August 1st, 2017 in the Bitcoin community?
-One of the most contentious forks in cryptocurrency history occurred when Bitcoin Cash split from the main Bitcoin blockchain, creating a separate chain and cryptocurrency. This happened on August 1st, 2017. That date was the culmination of the scaling debate surrounding blockchain. Essentially, the Bitcoin network had seen a recent increase in activity from the previous year and there had been a huge increase in transaction volume. We’ll talk about scaling in the next lesson but put simply, scaling addresses the question of how the Bitcoin network can handle the extra strain put on the network.
-
How did this affect the bitcoin holders?
-The Bitcoin blockchain split in a hard fork, resulting in the creation of Bitcoin Cash. This process was a divergence of code based on incompatible ideas. When the chains split, holders of bitcoin were given an equal amount of bitcoin cash. Coins on the Bitcoin network are essentially duplicated onto a different chain. Forks happen all the time on open source projects, but most were not as contentious as the Bitcoin/Bitcoin Cash fork.
-
What is the split in the ideology?
-The disagreement originated over conflicting ideas on how to scale the Bitcoin blockchain for increased global demand. One group wanted to increase the block capacity from 1MB to 2MB to hold more data. Satoshi Nakamoto specifically stated that scaling should occur on-chain, bolstering the block increase argument as it more closely followed Satoshi’s original vision. This group would eventually split off into the Bitcoin Cash blockchain. The Bitcoin Core developers wanted to upgrade the internal structure of blocks to be more efficient and flexible for future growth. Importantly, this contains a fix to a long-standing bug in Bitcoin call transaction malleability. The addition of SegWit, a protocol upgrade that stores data more efficiently within the 1MB block by utilizing block headers was Bitcoin Core’s solution to this problem. The addition of SegWit also enabled the viability of second-layer solutions.
-
SCALING STRATEGIES
-
-Bitcoin Core is still roughly 1MB while Bitcoin Cash increased to 8MB during the split. Bitcoin Cash would eventually increase to 32 MB per block.
-
-One of Bitcoin Core’s proposed solutions was to introduce side chains. They conduct transactions on a parallel blockchain. Another solution was to add a second layer like the Lightning Network, which has transactions conducted off-chain that are not recorded on the Bitcoin blockchain except at open or close. They also aimed to implement the previously mentioned “SegWit”, a protocol change that adjusted how transaction data is stored in a block. Bitcoin Cash planned to increase block sizes and plans to keep doing so as needed. Bitcoin Cash had a successful first year, having been added to multiple exchanges and onboarding several new vendors. However, not all has been rosy in the Bitcoin Cash community since the split.
-
-Much of blockchain governance is focused on making blockchains as efficient as possible while maintaining decentralization and security. In the next lesson, we’ll take a look at how blockchains are striving to meet the demand needed for widespread use.
diff --git a/all_collections/_lessons/business_lesson04 2.md b/all_collections/_lessons/business_lesson04 2.md
deleted file mode 100644
index 6a0b8aa18..000000000
--- a/all_collections/_lessons/business_lesson04 2.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 2
-title: Scaling to Meet Demand
-permalink: /courses/blockchain-for-business/2/scaling-to-meet-demand
----
-
-
-
-
-Blockchains are a fairly new technology, with the first one, Bitcoin, debuting about a decade ago. The goal for early blockchains was clear: They were trying to prove themselves as a secure, decentralized monetary system. Bitcoin became a store of value, but by the design of having blocks created every ten minutes. Since transactions are only confirmed when a block is created, it's not exactly a fast solution. Most blockchains work fine when they aren't being tested by immense traffic on the network. But as soon as more people use the network, backlogs and bottlenecks are a very real possibility. To use the network at scale some changes had to be made.
-
THE SCALING PROBLEM
-
-
-
-The second-generation blockchains looked to solve this scalability issue, however, most came to find they had to sacrifice either speed, security, or decentralization to explore scalability. This is described as the scalability trilemma, and it's something that's on the mind of blockchains developers.
-
-The ideal blockchain would have all three of the characteristics: security, decentralization, and speed. But as we demonstrated above, having all three of these characteristics at scale, with many people using the network, is the true test. And it is becoming increasingly clear that without innovation this "utopian chain" cannot be achieved.
-
-But fortunately, innovators are working on scalability solutions as we speak, whether it be the lightning network, sharding, or state channels. This problem is facing every blockchain and each is trying to come up with their solutions. And while these solutions will bring us closer to achieving all the desirable aspects of a blockchain, will these solutions bring blockchains to this place, the blockchain promised land so to speak? It will likely get us closer to our goal, but even with these solutions implemented it is unlikely that all three criteria could be completely satisfied. Only time will tell.
-
BITCOIN
-
-
-
-Bitcoin scaling has been a very contentious issue. The most promising Bitcoin project designed to address the scalability issue facing Bitcoin is the Lightning Network. The Lightning network conducts off-chain transactions that sync with the blockchain at the open or close of transaction channels. The Lightning Network is designed to make Bitcoin easier to use in everyday commerce settings. This design keeps the security of normal/on-chain Bitcoin transactions and at any time these parties can settle on-chain. Channels are open between individuals or entities that are going to be doing continued business. The structure of the network allows for these smaller transactions to be executed without waiting for the confirmations needed on the Bitcoin blockchain, making transactions much faster. The Lightning Network has long been cited as a possible solution for everyday spending and routing of bitcoin through these party channels.
-
ETHEREUM
-
-
-
-
PLASMA
-Ethereum-based Plasma introduced a novel scaling solution that could enable Ethereum to reach many more transactions per second. Like payment channels in the Bitcoin Lightning Network, Plasma is a technique for conducting off-chain transactions while relying on the underlying Ethereum blockchain to ground its security. The goal is to take computational operations away from the Ethereum “main chain” and perform them “off-chain” instead. These techniques are still able to sufficiently guarantee a certain level of security and finality.
-
-Plasma takes this idea even further by allowing for the creation of “child” blockchains attached to the “main” Ethereum blockchain. These child-chains can even spawn their own child-chains, which can themselves have another set of child-chains etc. So Plasma is many branching blockchains linked to one root blockchain, Ethereum. More complex operations can be performed on the child-chain than are possible on the main chain, allowing developers to run entire applications with thousands of users. Ideally, this Plasma-chain can operate at faster speeds and lower fees than the main chain, as they do not need to be replicated across the entire Ethereum blockchain.
-
RAIDEN
-The Raiden Project is a second-layer based payment solution that looks to solve some of Ethereum’s scaling issues. Raiden is an open-source project that aims to scale Ethereum by using state channel technology, similar to Bitcoin’s Lightning Network. As a result, there has to be a plan to make sure that the network can handle this increased demand. That’s where projects like Raiden come in. According to the project, the Raiden Network is an off-chain transfer network for Ethereum-based tokens. It provides a fast, scalable, and cheap alternative to on-chain token transfers. At the same time, the Raiden Network transfers provide users with guarantees of finality, security, and decentralization similar to those offered by blockchains. In short, you get the positive features of blockchain, all while overcoming one of the technologies biggest hurdles.
-
SHARDING
-Another possible scaling solution that has been considered is what is known as Sharding. Sharding is a method to solve scalability issues simply by dividing the blockchain into pieces known as "shards." This mitigates the amount of data that has to be referenced and exchanged per transaction, ultimately increasing transaction throughput.
-
-Sharding is pretty much exactly what it sounds like. You're taking a blockchain and breaking it into these shards, pieces of the blockchain which can be re-categorized or put into a certain neighborhood, depending on node status or geographic location. This categorization is important because once you are part of a shard, you can interact much easier with others within the same shard; the data within the shard is much smaller than data contained in a full blockchain. However, sharding limits the ability to transact with an entire network, as different shards may not be able to interact with each other. If shards are neighborhoods, then the limitation of shards is that it only lets you interact within your neighborhood.
-
-This might seem like an excellent scaling solution; however, it comes with its own set of problems. If you segment the blockchain and become part of one shard, it makes it near impossible to interact with a different shard without adding a separate protocol. Additionally, to prevent any type of double-spending, you must lock your funds into a specific shard, restricting your interaction to those in the shared shard. While sharding might address scaling in a certain capacity, it does so in a very limiting way. Could there be specific use cases where sharding is a viable solution? Sure. Any situation where you can be restricted to one neighborhood without hindering functionality. However, the limitations facing sharding might not make the method a reasonable scaling solution for all projects.
-
-
-
-Blockchain technology is promising, but it is still in its infancy. While these systems have been designed and utilized, they have not been able to meet excessive demand placed upon the network, resulting in exorbitant fees and stalled transactions. The failure of blockchains to meet high demands is what is known as the scalability issue. Current technology only allows a decentralized network to process a handful of transactions per second, an untenable status quo if the technology is to enter the mainstream. However, several projects are looking to solve the scalability issue, each in their unique way. These ideas can be put into two categories, on-chain vs off-chain scaling. On-chain scaling looks to improve the current status quo by adjusting block storage while off-chain scaling projects have created parallel networks to help alleviate the pressure put on the main chain. While the scaling problem has yet to be solved, there are promising innovations on the horizon, ready to tackle this issue.
-
-Blockchains are set to make a major impact on the business world. In this module, we explored private blockchains, blockchain governance, and scaling decentralized networks. In the next module, we’ll explore markets, cryptocurrency, and finance.
diff --git a/all_collections/_lessons/business_lesson05 2.md b/all_collections/_lessons/business_lesson05 2.md
deleted file mode 100644
index 83dccef6d..000000000
--- a/all_collections/_lessons/business_lesson05 2.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 2
-title: Cryptocurrencies and Financial Markets
-permalink: /courses/blockchain-for-business/2/cryptocurrencies-and-financial-markets
----
-
-
-
-
-While blockchains have shown promise, many have been attracted to the technology because of its first application, Bitcoin. It’s tough to ignore bitcoin’s increase in price over time, going from a matter of cents to thousands of dollars in less than a decade. The variations in price have led to speculators trying to make money by trading (or holding) bitcoin and other cryptocurrencies.
-
-This phenomenon was illustrated several times over during 2017, which saw between four and five billion dollars invested by way of a new fundraising method via the Ethereum Blockchain known as an Initial Coin Offering (ICO). Like an Initial Public Offering (IPO), an ICO allows investors a first opportunity at buying some newly introduced tokens. By the end of 2017, several ICOs were being conducted each day. ICOs tended to bring in millions of dollars, however, some projects got creative with their fundraising. For example, EOS, a blockchain that allows for the development of dApps, held an ICO a day for a full year, bringing in over four billion dollars. As mentioned, most ICOs were conducted on Ethereum's blockchain.
-
-
-
-The early days of ICOs were like the wild west, with very few regulations. This allowed unaccredited investors to get into the action. However, this has since changed as the United States’ Securities and Exchange Commission has made a clear stance of the sale of cryptocurrencies that may be considered a security. As a result, basic compliance such as Know Your Customer and Anti-Money Laundering laws have largely been instituted for American investors and cryptocurrency exchanges located in that jurisdiction. Despite these restrictions, 2018 saw ICOs continue to be a popular method of raising funds and distributing tokens.
-
-
BANKING
-
-Sending money across international borders is commonplace, however, the associated fees are exorbitant. Bitcoin has already proven to be an inexpensive but efficient way to send money across the globe. Banks and wire transfer services take up to a 20% remittance fee. Additionally, Bitcoin network fees are determined by the size of the data being transacted instead of the amount transferred. Transfer fees can be drastically cut by using cryptocurrency and a blockchain. Sending a large amount of value costs dollars, if not cents, in fees. Several economies are in crisis around the world, including Venezuela. The bolivar has become massively inflated, and there are several accounts of individuals surviving off of Bitcoin transfers from family or friends outside Venezuela’s borders.
-
-
AUDITS AND ASSURANCE
-
-Tax law is complex and leads to expensive and time-consuming audits. A blockchain could take assurance to a higher level, as it provides transparency and detailed records. Instead of taxes being filed yearly, a blockchain-based accounting system could settle records in a significantly shorter amount of time. For many, the laws surrounding taxation can be difficult to navigate, so any implementation of blockchain technology may face several practical and regulatory obstacles. Decentralized technologies are slowly making their way into the institutions that surround us. Decentralized technology, at its root, is all about shifting the concentration of power or access from the few to the many. Finance is no exception, as its introduction to decentralized technology has resulted in projects that provide more access to the financial services that were restricted by borders and economic barriers.
-
DECENTRALIZED FINANCE
-
-Traditional barriers to economic activity result in friction that makes transacting difficult and expensive. The introduction of Bitcoin in 2009 was the first trustless means of digital transaction. Third parties have thrived on facilitating these transactions, resulting in exorbitant costs and gatekeeping. Decentralized finance is about to change this paradigm. Lending, trading, and investing have long been restricted to accredited institutions or individuals. While there are reasons and advantages to this system, the fact remains that these barriers restrict markets, creating interference where none is due or warranted. Decentralized projects, while still required to abide by required regulations, the barriers to lending and investing have been largely lowered. Decentralized technology has forced us to reconsider our traditional approaches to finance. The creation of viable token economies and widely accessible applications have made this a reality.
-
-The availability of capital has reached new heights with decentralized finance. A loan applicant is no longer at the mercy of a bank, making them much more likely to find a lender. Half of the world lacks basic banking services. These countries have been completely neglected, and have been stuck in a developing stage without gaining any real progress. Microloans have shown that they can greatly impact local and regional economies, and have lifted thousands out of poverty as a result. More of these opportunities will be facilitated by decentralized financial protocols, allowing a more inclusive global economy that addresses those who have been long neglected.
-
-
-
-You can't address decentralized finance and leave out stablecoins. The popularization of these fiat-backed cryptocurrencies has allowed for greater awareness and accessibility of the cryptocurrency ecosystem, including Decentralized Finance (DeFi) projects. Institutions have even started creating their own stablecoins as a means of entering the market. Traditional finance is slowly embracing decentralized finance, not because of choice, but because of survival. While this is a positive sign for decentralized technology, it comes with a price. Traditional financial institutions might have a large role in shaping the DeFi landscape, possibly undermining the decentralized principles that blockchains were built upon.
-
-Now that you’ve learned the basics of cryptocurrency markets, we’ll explore the process of buying, selling, and trading of cryptocurrency.
diff --git a/all_collections/_lessons/business_lesson06 2.md b/all_collections/_lessons/business_lesson06 2.md
deleted file mode 100644
index e8764f144..000000000
--- a/all_collections/_lessons/business_lesson06 2.md
+++ /dev/null
@@ -1,67 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 2
-title: Buying, Selling, and Trading Cryptocurrency
-permalink: /courses/blockchain-for-business/2/buying-selling-and-trading-cryptocurrency
----
-
-
-
-
-
-Getting into cryptocurrency may seem intimidating, but if you have the proper tools and knowledge, the process isn’t so difficult. Follow this guide before you make your first cryptocurrency purchase.
-
-
-{% include callouts/note.html
- bodyText="NOTE: THIS LESSON IS NOT INTENDED TO BE FINANCIAL ADVICE. RATHER, IT IS A GUIDE ON BUYING, SELLING, AND TRADING CRYPTOCURRENCY IF YOU DECIDE TO MAKE AN INVESTMENT."
-%}
-
-
-
CRYPTOCURRENCY WALLETS
-
-A wallet is the cryptocurrency equivalent of a bank account that allows you to send and receive cryptocurrency. Wallets don’t actually store your cryptocurrency. Instead, the funds are stored on a blockchain and the wallet acts as an interface that allows you control of your funds. A wallet is just a graphical interface that easily allows you to manage your address and store your keys. Not all cryptocurrencies can be stored in one wallet. some wallets are currency-specific, and some support multiple currencies. As long as you have control of your private keys, you have full control of your cryptocurrency. It is risky to keep your cryptocurrency on an exchange because they have control of your private keys. There have been several hacked exchanges that have lost significant amounts of money.
-
-
-
-
Paper Wallets
-Keeping cryptocurrency “offline” is known as cold storage. The cryptocurrency is not stored on a web-based app or computer; it is just suspended until you are ready to restore a wallet using your seed phrase or private keys.
-
Hardware Wallets
-One of the most secure ways to store your cryptocurrency is a hardware wallet. These are physical devices, usually the size of a thumb drive, that act as a vault for your digital money. While keeping your money in a vault is the safest method, it can make performing transactions difficult. Popular hardware wallets include the Nano Ledger S, Trezor, and Digital Bitbox.
-
Mobile Wallets
-There is an option for you if you're looking for a wallet for everyday spending. Mobile wallets allow you to store your cryptocurrency right on your phone. Need to pay for something? Just whip out your phone, open your wallet, enter an amount, and scan a QR code. It's a four-step process that takes about a minute, of course depending on which blockchain you are using. ERC-20 tokens, amongst others, are more conducive to acting as simple transactional currencies since they have shorter confirmation times. That just means you have to wait less time for your transaction to be processed and completed. However, many blockchains are working on additional layers that could help with smaller, continuous payments. Mobile wallets that are compatible with multiple cryptocurrencies include Jaxx, Coinomi, and Bread.
-
Desktop Wallets
-Some projects allow you to download wallets directly from their website. They offer their software client but require you to be at your computer for use. A popular desktop wallet for Bitcoin is Electrum.
-
Web Wallets
-Similar to desktop wallets, web wallets provide a website that allows you to interface with the blockchain. While many projects also provide web wallets, several popular websites offer multi-token web wallets such as MEW and MyCrypto
-
-
-
-A major issue with web wallets is that they are especially susceptible to phishing. Phishing is an exploitative tactic where someone creates a look-alike website, and some of these sites are pretty much clones with very similar URL addresses. These fake sites have a login section that records your username and password. They then take this stolen information and use it to access your funds. There are a couple of ways to defend against phishing. The first is not to click on any unknown links and ALWAYS check the web address you type into the URL bar. If you plan on interacting with the Ethereum network, it’s recommended that you download Metamask, using it together with a web wallet. Metamask automatically blocks these fake websites. Always double-check web addresses, but no one is perfect. Metamask provides an extra layer of security.
-
-
CRYPTOCURRENCY EXCHANGES
-
-When it comes to buying cryptocurrency, there are two types of exchanges where they are purchased.
-
-
Centralized Exchanges
-Centralized exchanges have a third party database acting as a middleman to help facilitate transactions. Although moving forward the community will likely focus on ironing out the issues with decentralized platforms, centralized exchanges have helped add liquidity to the crypto markets. Take Coinbase for example. Most people in the crypto space have interacted with Coinbase for their first crypto transaction because of its easy to use interface and popularity. Coinbase is also partnered with many products that make spending your cryptocurrency easy.
-
-Centralized exchanges are just one tool in your toolbox, and they are not your permanent wallet. Just like you wouldn’t use a hammer to fix every problem in your house, you won’t use centralized exchanges for every cryptocurrency buying or selling scenario. There is a risk in storing your crypto on exchanges, especially centralized ones where you do not own your keys. Think of them as ATMs at a currency exchange for your crypto. You don’t leave your debit card in the reader after the transaction, same with your digital keys.
-
Decentralized Exchanges
-A decentralized cryptocurrency exchange (DEX) cuts out the middleman by facilitating deals via smart contracts. The cryptocurrency is never in the possession of an escrow service. The platform merely connects the P2P participants. DEX platforms offer at least partial anonymity, but the trade-off is that these platforms are often harder to use. Fees are reduced because there is no central authority looking to take their cut. Since DEXs are not managed by a central party, users do not need to disclose personal information like their photo ID or address to trade.
-
-Because Decentralized Exchanges are harder to use, they do not have the same liquidity that you find in centralized platforms. Additionally, if you lose your password you can’t contact customer support. There is no third party to reverse any transactions. Most of these platforms also do not offer margin trading and stop losses like many centralized platforms. Decentralized exchanges can also more readily list an ICO or token because they don’t have a central server to shut down. Because of KYC and AML regulations, legitimate Decentralized Exchanges do not support fiat conversions, as this would introduce a point of centralization.
-
-{% include callouts/imageWithCaption.html
- image="/courses/blockchain-for-business/Metamask-01.jpg"
- title="METAMASK // Metamask.io"
- bodyText=""
-%}
-
-Another important thing to note is that the keys entered are not transmitted over the network, but rather stored in the browser cache. Make sure to protect yourself from phishing sites with extensions like Metamask, which will alert you if they feel you have gone to a potential phishing site.
-
-Getting involved with cryptocurrency may seem intimidating, but following a few simple steps will get you ready for your first transaction. Just like money and other forms of payment, cryptocurrency is stored in a wallet. While a physical wallet is used to keep your physical forms of payment secure, a cryptocurrency wallet is a digital wallet used to store a digital currency or asset. Cold wallets sacrifice usability for security, while hot wallets are designed for everyday spending. Additionally, there are different types of wallets based off of a method of access.
-
-Once you have a cryptocurrency wallet, you can make your first cryptocurrency purchase. There are a variety of ways to do this. The most popular places to buy cryptocurrencies are exchanges, which can be separated into two classifications. Centralized exchanges rely on a third-party facilitator to complete transactions, often taking a fee per transaction. Decentralized exchanges are peer to peer applications that allow users to interact directly, with greatly reduced fees. However, decentralized exchanges offer no recourse if an issue arises. Additionally, some services allow you to meet with local cryptocurrency buyers and sellers.
-
-Although it might be intimidating at first, studying and entering the cryptocurrency markets is easier than it seems. Additionally, increased banking adoption of cryptocurrency and blockchain technology has a great chance to change how funds are settled. This process offers a lot of hope for the future of blockchain in business. We’ll look at the potential impact that blockchains can have on businesses today and in the near future.
diff --git a/all_collections/_lessons/business_lesson07 2.md b/all_collections/_lessons/business_lesson07 2.md
deleted file mode 100644
index 04e4d4400..000000000
--- a/all_collections/_lessons/business_lesson07 2.md
+++ /dev/null
@@ -1,67 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 2
-title: Blockchain, Government, and Regulation
-permalink: /courses/blockchain-for-business/2/blockchain-government-and-regulation
----
-
-
-
-As blockchains have gained popularity, government use and oversight of blockchains have been a topic of interest for administrators on the local, state, and federal level. Many jurisdictions are also taking a proactive approach to studying the impact of blockchain technology.
-
GOVERNMENT RESTRICTIONS ON MINING OPERATIONS
-
-There have been attempts by a handful of governments to prohibit the buying, holding, and selling of cryptocurrency. While it is difficult to prove an individual is holding cryptocurrency, aggressive regulators have realized that it is much easier to identify those who are mining bitcoin based off of their excessive energy consumption
-
-
REGULATIONS
-
-As discussed in Blockchain 101, Proof-of-Work mining consumes a lot of energy and has caught the eye of some regulators. Mining regulations vary from the national to municipal level, depending on the unique energy situation dictated by the price and availability of energy.
-
-
ENVIRONMENTAL CONCERNS
-
-
-
-With reports that the Bitcoin network is using as much energy as a small to medium-sized country, some have criticized the sustainability of Proof-of-Work blockchains. Proponents of Proof-of-Work claim that to achieve any level of security, energy has to be used. The high consumption requirements for mining is a feature rather than a bug. Additionally, they point to the vast amounts of energy used by the banking and finance sectors which could be limited with a greater ability for decentralized banking. Some blockchains have specifically searched for ways to transition to Proof-of-Stake, which consumes significantly less energy. This problem has been brought to legislators. Laws (or the lack of) differ from the municipal to the national level. Regulators are still determining if it is even viable to tackle the energy consumption model.
-
-
CRYPTOCURRENCY LEGALITY
-
-As most countries have a hand in influencing the economies and monetary policy of their sovereign states, it's almost expected that the introduction of bitcoin as a viable currency would be originally dismissed, simply because the governmental institutions want to remain in economic control. However, that has NOT led every country to an outright ban. Most countries have, so far, declined to regulate bitcoin. This includes the world's largest economy, the United States. While there has been a lot of back and forth considering legislators sentiment of bitcoin, there has never really been any non-criminal crackdown on cryptocurrency. In the US cryptocurrency is legal, and it is considered taxable; whether it be for the transfer of cryptocurrency or capital gains, the government views the transfer of cryptocurrency as a taxable event.
-
-Many countries are following the United States' lead when it comes to a hands-off approach concerning cryptocurrency. Most of the world has taken that exact approach. They are monitoring this developing ecosystem, being careful not to stifle an emerging industry that may bring their country more wealth. The majority of the top economies all, at the very least, tolerate bitcoin. Some countries that recognize deficiencies in the current banking system have embraced the idea of digital currencies with open arms. Most major geographic areas are comprised of countries that have friendly attitudes towards cryptocurrency. North America, the European Union, Eastern, and Central Europe, and most of East Asia.
-
-
-
-The biggest issue surrounding governments that permit the use of cryptocurrency is taxation. Even in countries where cryptocurrency is openly mined and exchanged, it’s still unclear as to what transactions are taxable or the rate at which cryptocurrency will be taxed. Even in America, the IRS is expecting crypto holders to keep a record and report all of their transactions, no matter how small. This is how a lot of countries ended up recognizing bitcoin and other cryptocurrencies. The legislative bodies were slow to understand this technology, but the tax collectors were ready.
-
-Several countries do not outlaw the possession or use of cryptocurrency, but they have restricted essential banking services for any digital currency, which kind of puts crypto in limbo. It is tolerated, but the financial systems it is looking to improve or replace simply aren't eager to provide their services to users of cryptocurrency.
-
-
ICOs
-
-While there were few rules concerning ICOs when they first became popular, the SEC and CFTC saw the evolution of token sales and took a very hesitant approach concerning regulation. The main dispute over the regulation of ICOs is the classification of the tokens, as certain laws have to be followed if the asset that is being transferred is considered a security.
-
-Most tokens fall into one of two categories: security or utility. Utility tokens have an expressed purpose or function. For example, ether is considered a utility because the native currency is used to power the ecosystem. It is not a purely speculative investment, but rather the ability to utilize functions of a decentralized application or network. Essentially, utility tokens represent the ability to use a good or service. Security tokens represent equity and are linked to an asset. Security tokens are seen as speculative investments and are closely monitored by the SEC.
-
-The SEC is slowly beginning to note the difference between utility tokens and security tokens. As a result, many would-be ICOs have been relabeled as Security Token Offerings.
-
-
-Traditionally, securities are defined by the Howey test. Formed in 1934 under the Security Exchange Act, the Howey test consists of four parts:
-
-
Is it an investment of money or assets?
-
Is the investment of money or assets in a common enterprise?
-
Is there an exception of profits from the investment?
-
Does any profit come from the efforts of a promoter or third party?
-
-
-
TAXATION
-
-
-
-Cryptocurrency is currently being taxed in multiple ways. The first is capital gains. When your profits are realized and you cash them in, you’re required to pay taxes on those dividends. The same goes for selling speculative assets, including cryptocurrency. Currently, both utility and security tokens are taxed in the same manner. The second tax that is charged is a sales tax when cryptocurrency is spent. If cryptocurrency is spent on a good or service, both capital gains and sales tax apply. This double taxation has been scrutinized, but the current policy stands. Double taxation and the corresponding records that must be kept are both major deterrents to cryptocurrency adoption.
-
-Blockchains are an emerging technology that has gained a lot of attention. Of course, whenever there is an emerging financial industry, government regulation is sure to follow. In the case of cryptocurrency, many governments have taken a hands-off approach, choosing a wait and see attitude while blockchain technology develops.
-
-This was illustrated when ICOs, a popular way to initially distribute coins, took the cryptocurrency scene by storm. This method of fundraising has brought in billions, garnering the attention of governments worldwide. The United States Securities and Exchange Commission has been monitoring ICOs, making sure basic compliance is being met. There has also been a battle over how these tokens should be classified, which will have great implications concerning taxation.
-
-Other governmental entities have set out to explore the technology to see what it could do for the public sector. A prominent complaint about bureaucratic processes is that there is a lot of red tape preventing a positive action. Blockchain technology may offer methods to help address inefficiencies in government action.
-
-This concludes our second module of Blockchain for Business. In this module, we covered scaling, cryptocurrency markets, decentralized finance and government regulation concerning blockchain technology. Check out our next module to see how businesses are already researching, and even incorporating, blockchain technology.
diff --git a/all_collections/_lessons/business_lesson08 2.md b/all_collections/_lessons/business_lesson08 2.md
deleted file mode 100644
index ef07721dd..000000000
--- a/all_collections/_lessons/business_lesson08 2.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 3
-title: E-Commerce and Blockchain Technology
-permalink: /courses/blockchain-for-business/3/ecommerce-and-blockchain-technology
----
-
-
-
-
-While cryptocurrency has gained great popularity in recent years, we are still yet to see mass use of cryptocurrency for everyday payments. There are many reasons for cryptocurrency’s lack of adoption in commerce, including ease of use and the speculative aspect. However, the rise in popularity has led to more businesses expressing interest in cryptocurrency. This has led many businesses to offer cryptocurrency payment options. The emergence of stablecoins, a cryptocurrency which is supposed to maintain a specific monetary value, may accelerate cryptocurrency use in e-commerce.
-
-
REPLACEMENT FOR CASH?
-
-
-
-Not all communities have the same access to the payment options most of us use today. There are over 3 billion people that do not have access to basic financial services. This makes transacting over the internet extremely difficult. Participation in e-commerce is impossible if you do not have a form of payment that is easy to access and can transcend borders. Cryptocurrency offers an unprecedented level of economic inclusivity. Anyone with an internet connection can hold and access their cryptocurrency, allowing for participation in global e-commerce markets.
-
-
INTERNATIONAL SETTLEMENT
-
-The global expansion of commerce and the addition of online shopping has led merchants and consumers to trend towards E-commerce, everyday shopping or business conducted via the internet. E-commerce requires a significant amount of trust between uncoordinated parties. Additionally, the consumers, merchants, and manufacturers that exchange inventory and capital often use different financial institutions to facilitate commerce.
-
-While e-commerce has opened up a global market, this has brought up several issues for banks and lenders that now need to work with untrusted institutions across several borders. The biggest issue for these financial institutions is the settlement of funds and fees. The transfer of money across borders to unrelated organizations takes several days. Introducing blockchain technology to e-commerce may lessen the friction associated with e-commerce, making for a more efficient flow of capital. These benefits extend to the merchant, who now does not have to wait as long for their earned funds to reach their bank accounts, allowing for maximum efficiency. Significant portions of a small or medium business’ budget go towards paying these cross-border fees. Whether it be faster settlements between banks or a more consistent cash supply for merchants, blockchain technology is set to change how e-commerce is conducted.
-
-
CHARGEBACKS AND OUTDATED TECHNOLOGY
-
-
-
-Fraud is an inevitable problem in any type of commerce; online purchasing is no exception. Chargebacks as the result of fraudulent purchases come at the expense of the merchant. Money that they thought was already earned is then taken away from them by their bank, by no wrongdoing of their own. This cause of this is simple: merchants are currently using outdated technologies such as credit cards. The introduction of credit cards predates the popular usage of the internet and the technology is not equipped to facilitate reliable, irreversible transactions. Banks have passed the liability of losing funds to fraud to the owners of these businesses. A small business on a tight budget can be greatly affected due to chargebacks, interrupting normal business operations resulting in further loss of funds. Utilizing blockchain technology would not only eliminate the possibility for chargebacks, but it could also largely eliminate the need for them at all. As long as users keep their private keys secure, their cryptocurrency is safe. The finality, also known as immutability, offered by blockchain technology eliminates the difficulties of credit card chargebacks that were previously an inevitability for merchants in e-commerce.
-
-The payment options of yesterday were never intended to account for the rise in popularity of microtransactions. Apps and streaming services have struggled with how to properly reward creators based off of the use of their service. Second layer technologies, like the Bitcoin’s Lightning Network, allow users the ability to conduct direct transactions on a per-view basis, possibly even paying per minute of consumption.
-
DATA PRIVACY
-
-A benefit of shopping in the physical world is that you maintain some sort of digital privacy. Of course, you would have to make an actual appearance in a store to make a purchase which is not the most private action. However, those purchases do not require your personal data to change hands. Your personal information is not required to make a purchase. This is in stark contrast to e-commerce, which often requires the purchaser to disclose their credit card, identity, and address. This has led hackers to target large corporations, which have become a treasure trove of personal data. Security has become a major aspect of e-commerce and can be supplemented by blockchain technology. By using cryptocurrency for payments, a direct purchase can be made while limiting the amount of data the user has to expose.
-
COST REDUCTION
-
-Every one of these problems present in e-commerce have one thing in common: they make transacting more costly. If introducing blockchain technology into the e-commerce process can solve even one of these issues, overall costs are more likely to decline. Each third-party service rendered unnecessary by blockchain technology will result in fewer costs passed on to the merchant and consumer. There is more than a privacy argument to be made; blockchain technology provides the prospect of fewer costs to the merchant, making them more competitive in their respective areas of focus.
-
-
-
-Blockchains offer the e-commerce industry hope. However, there are issues that blockchain technology has to overcome for it to reach mass adoption. Currently, blockchains have yet to reach sufficient transaction speed to meet the demand required for the technology to work. While this problem is being addressed by many different projects, it makes a large reliance solely on blockchain technology unrealistic. One such project looking to address the scalability issue is the Lightning Network. The Lightning Network is a second layer solution that utilizes Bitcoin, Litecoin and other blockchains. Suppliers, merchants, and consumers can open payment channels which allow for recurring payments of a limited amount of bitcoin. These channels do not constantly sync their state with the blockchain, making purchases with cryptocurrency a faster and cheaper option than is currently offered today.
-
-Of course, any type of e-commerce is going to have to be ready to deal with the changing regulatory landscape that affects business practices, including inventory management and shipping. Head to our next lesson to explore how blockchain technology is disrupting supply chain management.
diff --git a/all_collections/_lessons/business_lesson09 2.md b/all_collections/_lessons/business_lesson09 2.md
deleted file mode 100644
index 4fcce5070..000000000
--- a/all_collections/_lessons/business_lesson09 2.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 3
-title: The Supply Chain and Blockchain
-permalink: /courses/blockchain-for-business/3/supply-chain-and-blockchain
----
-
-
-
-
-Every single transaction you’re a part of needs trust to be executed. You have to trust the vendor to deliver on your purchase. The vendor needs a guarantee that the buyer will pay. Trust is even being put in the currency used to make the purchase. But not every transaction goes straight from buyer to seller. Products are sold, bought, and resold several times, and are often transported by several different handlers. Trust is needed for each step of the supply chain.
-
-Currently, trust is established through business history, credit or complex contracts. Consumer lack of trust causes “friction”, and that ends up costing both producers and consumers money. Disputes must be dealt with in court, which is neither time or cost efficient. Getting something from point “a” to point “b” might seem simple, but in the real world transporting goods is insanely complex. The result is a non-transparent supply chain where many parties are left in the dark.
-
-The core part of the supply chain is producers and consumers being connected by third parties. As we mentioned above, very few companies have the ability to fulfill online orders and any that maintains inventory is going to have to deal with third party producers, re-sellers and transporters.
-
-
LOTS OF POSSIBILITIES FOR PROBLEMS
-
-
-
-All of these problems cost money, and most of that cost will ultimately get passed on to the consumer. It’s a closed system that operates on a lot of faith, and that doesn’t always work out. The blockchain can offer transparency that could reduce recalls, shipping times and cost.
-
-
HOW CAN BLOCKCHAINS HELP MAINTAIN TRUST & ACCOUNTABILITY?
-
-The term blockchain is thrown around loosely, but there’s an important distinction to make. Blockchains like Bitcoin and Ethereum are what are known as open blockchains. Anyone can use them while maintaining a certain level of anonymity, but the information that is transmitted is public.
-
-A permissioned blockchain that partially maintains the same structure could offer the solutions to these supply chain problems. the parties are known but the information transacted is restricted to permissioned parties. This type of blockchain is perfect for business. Business entities aren’t going to throw around their proprietary information to be seen by the public and competitors. They want to operate on a need to know basis. A permissioned blockchain allows businesses to do exactly that.
-
-
TRUST AMONG UNTRUSTED PARTIES
-
-But how can a blockchain address a “damaged goods” scenario that we described above? The answer is that blockchain alone can’t do this. It can, however, be paired with something called the Internet of Things and act as a permanent immutable ledger. The Internet of Things describes the interconnectivity of everyday objects via the internet. Ever hear about someone using their phone to control their thermostat? That’s the Internet of Things in action. While the term describes everyday objects, the IoT can also describe a network of sensors. And these sensors could be used to transmit data to the blockchain.
-
-
-
-Let’s use food as an example. Produce has to be kept at a certain temperature, or the shipment can spoil or even become unsafe. There are thousands of recalls of unsafe products each year and several outbreaks of foodborne disease, with some even resulting in death. By using the IoT paired with a blockchain, temperature data could be constantly monitored. If the temperature could be monitored by sensors, so could other conditions, like humidity, idle time, and any bumps or jostling of cargo. If any of these sensors detect a condition outside of the predetermined range, that data would be permanently recorded on the blockchain, alerting the appropriate parties that the shipment has fallen out of agreed upon range. At that point, the receiver can refuse the shipment. If the shipment meets conditions, it is then accepted with the assurance that the shipping conditions were okay. This transparency given to proper parties can give producers and consumers alike more confidence in their purchases and consumption.
-
-
IT'S ALREADY HAPPENING
-
-We are already seeing blockchains putting these plans in action. Projects like IOTA and Waltonchain are using different methods to track products along the shipping process. While these cases are still in their test stage, early results seem promising. While the blockchain may not revolutionize the supply chain overnight, it wouldn’t be surprising to see a gradual shift towards the technology over time.
-
-It is important to note that the blockchain doesn’t completely solve all of the problems facing supply chain management. These systems are only as good as the data that goes into them. An example that illustrates this principle is that a warehouse worker could just put an ice cube on a sensor even when the temperature control within a distribution facility fails. Of course, blockchain technology still improves the current situation by making it harder for a distributor to get away with damaging a good, but it's not magic nor perfect.
diff --git a/all_collections/_lessons/business_lesson10 2.md b/all_collections/_lessons/business_lesson10 2.md
deleted file mode 100644
index 5ac31bee4..000000000
--- a/all_collections/_lessons/business_lesson10 2.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 3
-title: Data Privacy, Web3, and IoT
-permalink: /courses/blockchain-for-business/3/data-privacy-web-3-and-iot
----
-
-
-
-
-
-The early internet was a wild place. Browser developers waged virtual “wars” to capture the most usage from users, both new and old. Back then, we were awe-inspired just by the idea of the “information superhighway”. There was just the web. Now we’re talking about web3. How did we get here and what does web3 mean for us users of the internet?
-
BUILDING A BETTER INTERNET
-
-
-
-Digg, a popular community-sourced news website, changed things. Unlike traditional news sites like Slashdot, which required the whole webpage to be reloaded to fetch information, new web technologies allowed for in-place information updates that were based on user-submitted content. This update is a boon to devices with limited bandwidth since a few bytes would need to be transmitted instead of reloading the entire page. This more inclusive version of the web became known as Web 2.0 and is more or less where things currently stand. However, now that we have blockchains, what do the internet of value and decentralized storage mean for our worldwide web?
-
-
INTERNET OF VALUE
-
-The first piece of the new web puzzle comes from Bitcoin. As the first blockchain cryptocurrency token with a tradable value, Bitcoin provides the internet with a native payment method. No longer being tied to traditional payment networks like credit cards frees technologists allows for innovation in the payments and finance industries. Once value transfer is as fast as the internet, new possibilities such as microtransactions enable all sorts of new revenue models.
-
-
PRIVACY AND SECURITY
-
-
-
-Given the recent revelations about how much data is being tracked and watched by large corporations and governments, people have become increasingly cautious about what information they share. One obvious example of this is sharing credit card details over the internet to make a purchase. Although we have technology like SSL to secure our browser connections, the data is often retained by the seller and can end up in the hands of hackers who steal it from poorly secured databases. The solution is to reveal less information and ensure that it is encrypted when needed. Building an improved web atop the latest cryptographic technologies will help ensure users of the internet can keep
-
DECENTRALIZED STORAGE
-
-Blockchain is a great innovation, but this new technology has a direct cost that isn’t conducive to storing large things like pictures and videos.“So how do we inherit all the unique properties of blockchains without storing data on a blockchain? Using special cryptographic properties, it’s possible to split up large files into smaller chunks which can be individually encrypted and stored in other locations. The final piece is to store a unique indicator of the file structure in the blockchain for safekeeping. By using this linking technique, we get the antifragile properties of web3 without bloating the blockchain with unnecessary data. For more information on decentralized storage, click here.
-
IDENTITY AND REPUTATION
-
-
-
-If all this anonymity makes you wonder about how we’ll deal with trust and reputation online, then you’re not alone. We already have a digital identity online that is made up of all our data uploaded to social media and other websites. The major problem is that we don’t own or control that data. Blockchain technology can enable digital uniqueness that will help users deal with an increasingly digital world.
-
-At the start of the internet, it would have been very difficult to anticipate the problems our internet would create in the future. As the web has developed, certain problems have made themselves clear. Data privacy is nearly non-existent, and interacting via the web puts people’s personal data at risk. Additionally, the internet is facilitated by a series of servers that can each act as a single point of failure. Web3 is about creating a more resilient, democratized internet. However, there are barriers preventing blockchain technology from mass adoption.
diff --git a/all_collections/_lessons/business_lesson11 2.md b/all_collections/_lessons/business_lesson11 2.md
deleted file mode 100644
index 3e3f02d35..000000000
--- a/all_collections/_lessons/business_lesson11 2.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 3
-title: Possible Barriers
-permalink: /courses/blockchain-for-business/3/possible-barriers
----
-
-
-
-
-
-Blockchain technology has a lot of people excited. However, it is important to note that this technology is not a silver bullet solution for every problem plaguing businesses and consumers. There are significant hurdles that the technology must overcome for it to reach its original promises.
-
AWARENESS
-
-While many have heard of blockchains or cryptocurrencies, only a small fraction of those people have used these technologies. More useable decentralized applications that challenge traditional centralized applications may provide an opportunity for the technology to gain further questions.
-
SCALING
-
-
-
-Blockchains need to get to a point to where they can handle real word transaction demands. Visa processes around 24,000 transactions per second. Bitcoin does around 7 tx/s and Ethereum does about 15 tx/s. Without finding a more efficient way for decentralized nodes to reach consensus, blockchain technology's impact on the world may be limited.
-
USER EXPERIENCE
-
-Many users are deterred by how hard it is to use blockchain-based applications. The process can be cumbersome and it is often easier to use a different method to transact. There are fundamental parts of the blockchain user experience that need to be easier to use. The first is downloading and managing wallets. Downloading a wallet must be a quick and simple process. Once they have that wallet, users must be able to confidently and easily be able to send and receive cryptocurrencies while maintaining proper security measures. Sending cryptocurrency is still a multi-step process where several small errors can easily occur.
-
USING dAPPS
-
-
-
-The ecosystem needs to get to the point where users are not even aware they are using blockchain technology. This requires increased ease of use and cost-effectiveness. Otherwise, the status quo stays in place.
-
SECURITY
-
-Quantum computing is on the horizon, and a computer with that power could hijack the bitcoin network by breaking the algorithms used to encrypt data. A possible solution is quantum-resistant algorithms that utilize quantum technology themselves. However, these solutions are not able to be developed until quantum computing becomes a reality.
-
INSTITUTIONALIZATION
-
-Bitcoin futures have already been launched by CME and CBOE. There have been several attempts to gain approval for a Bitcoin Exchange Traded Fund, however, each one has been rejected by the US Securities and Exchange Commission. The SEC has not completely ruled out the prospects of a Bitcoin ETF, and some expect approval relatively soon
diff --git a/all_collections/_lessons/business_lesson12 2.md b/all_collections/_lessons/business_lesson12 2.md
deleted file mode 100644
index da60fa01c..000000000
--- a/all_collections/_lessons/business_lesson12 2.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: lesson
-course: blockchain-for-business
-module: 3
-title: Conclusion
-permalink: /courses/blockchain-for-business/3/conclusion
----
-
-
-
-
-
-
YOU'VE COMPLETED OUR BLOCKCHAIN FOR BUSINESS COURSE!
-
-Congratulations, you've completed our Blockchain for Business course! At this point, you’ve learned about how blockchain protocols affect businesses, how businesses can effectively utilize blockchain technology, and the possible future business applications that blockchains may offer. Don't stop now! Keep on learning by visiting our Blockchain Security or Decentralized Storage courses.
-
-{% include courseEndButtons.html %}
diff --git a/all_collections/_lessons/decentralized-storage_lesson01 2.md b/all_collections/_lessons/decentralized-storage_lesson01 2.md
deleted file mode 100644
index 3d55f9943..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson01 2.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 1
-title: Decentralized Storage to the rescue!
-permalink: /courses/decentralized-storage/1/decentralized-storage/
----
-
-
-What happens if Google or Facebook decide to disable your account?
-How can you regain control over our account and data? What if a hacker decides that with everyone's information stored on the same set of servers, it would be a valuable target to attack?
-
-{% include callouts/callout.html
- title="What options can decentralized storage offer?"
- bodyText="Most people in 2020 do not own a photo album. Instead, we trust companies like Facebook, Google, and Apple to store our most cherished memories. The promise of decentralized storage is to enable peer to peer alternatives."
-%}
-
-Welcome to the basics of decentralized storage and why we need it! Before you get started, if you haven't already checked out the Blockchain 101 course, it will explain terms and concepts helpful to this course.
-
-
-
-
-
-Given the continually decreasing cost of storage, why should we care about decentralized storage at all? Traditional centralized storage has solved many of the engineering problems with storing a large set of data spread over many servers. Dropbox has largely solved the user experience problem of these types of technology and found a successful revenue model in business subscriptions. Is political decentralization really worth achieving?
-
-What follows is an overview of what decentralized storage is, how it differs versus traditional storage models, and the state of decentralized storage today. By the end of this course, we hope you will understand there is not yet a "perfect" solution and that tradeoffs are still necessary to achieve fully decentralized storage. For some situations, there is a clear need to have multiple options for publishing and storing information in a censorship-resistant way. Beyond this, we can seek to avoid systems that become a single point of failure.
-{% include callouts/note.html
- bodyText="While storage is inexpensive, decentralization is about more than just price. The real aim is to share the control of the system more broadly, so that it cannot become corrupted over time."
-%}
-
-In this course, you will learn why it's important to pursue decentralized storage as an alternative to traditional storage systems, which types of systems are available today and some strategies you can employ when designing systems that include digital storage.
-
diff --git a/all_collections/_lessons/decentralized-storage_lesson02 2.md b/all_collections/_lessons/decentralized-storage_lesson02 2.md
deleted file mode 100644
index f0e0ae1e3..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson02 2.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 1
-title: Digital Storage Background
-permalink: /courses/decentralized-storage/1/background/
----
-
-
-Computing systems are already increasingly distributed. The recent innovations are around control of these networks.
-In the early days of computing, storage devices were coupled with processing units in single purpose systems. With the introduction of the internet and high-speed broadband, these two components are now commonly separated, often by hundreds of miles. As cloud services have grown, the notion of storage has shifted from individual hard drives and physical devices to a network of high-availability devices which a client device can access for a fee.
-{% include callouts/note.html
- bodyText="In the digital context, storage refers to any system that enables the recording and reading of information by storing it in tiny chunks."
-%}
-
-Storage is a key component of computers. Player Pianos, dating back to the early 18th century, were the first real form of digital storage. The notches on a steel cylinder pulled tensioned lines, effectively playing a song when the springs were pulled by an attendant. Our modern hard drives are not much more complex than this, using electrical charge rather than the mechanical potential of spring, but otherwise very similar.
-
-{% include callouts/imageWithCaption.html
- image="/courses/decentralized-storage/DistributedNetworks-01.jpg"
- title="DISTRIBUTED NETWORKS:"
- bodyText="A distributed network is a type of computer network that is spread over different nodes. This provides a single data communication network, which can be managed jointly or separately by each network. Besides sharing information within the network, a distributed network often also delegates processing. A:Centralized;B:Decentralized;C:Distributed."
-%}
-
-Decentralized storage is a combination of solutions to these problems that have evolved over time. The main goal of IPFS (InterPlanetary File System) is to provide a commonly-addressable namespace for networks of computers to use to share their storage. This is done through content-addressable storage enabled by Merkle Trees.
diff --git a/all_collections/_lessons/decentralized-storage_lesson03 2.md b/all_collections/_lessons/decentralized-storage_lesson03 2.md
deleted file mode 100644
index ccac981b8..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson03 2.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 1
-title: Conventional Protocols
-permalink: /courses/decentralized-storage/1/conventional-protocols/
----
-
-
-Most applications already use distributed data stores.
-The primary system employed by storage providers in 2018 is used to bridge their network to more traditional HTTP(S) GET and POST requests. This allows, the client to read and store records in servers. While client-server connections have functioned relatively well until now, they suffer from some disadvantages that are addressed by a peer-to-peer structure.
-
-{% include callouts/callout.html
- title="More people online means more distributed data"
- bodyText="In 2020, most web developers take advantage of a Content Distribution Network (CDN) to store their files in easy to access servers, which ensures that their customers can download it quickly when they interact with their products."
-%}
-
-With the creation of decentralized storage, it is now possible for individual peers within the network to broadcast directly to one another, instead of sharing through a centrally located pipeline. Blockchain technology is a key component of this system, because it is what allows the nodes to stay synchronized.
-
-{% include callouts/imageWithCaption.html
- image="/courses/decentralized-storage/P2P_HTTP_IPFS-01.jpg"
- title=""
- bodyText="Unlike typical online storage, IPFS nodes share the burden of storing data, and are economically incentivised to transmit it to one another. Early versions of this technology allowed the creation of torrents and products like Napster."
-%}
-
-In particular, when HTTP calls are routed, they use location-based routing to request files by their relation to a particular structure. As a result, all files on the network must belong to a particular domain and must be hosted by their infrastructure that supports it. This can lead to overcrowding of connections to an under-resourced server and is prone to the breaking of links as files are changed or moved.
-
-In contrast, technologies such as IPFS utilize purely peer to peer transfer of data. Each file is hosted across a network of connected nodes which each participate independently of each other. In addition, these files use content-based addressing to alleviate the problems of location and revisions. In a similar fashion to the torrents used to share music or movies, these decentralized files are hard to stop, without access to every participating node in the network.
diff --git a/all_collections/_lessons/decentralized-storage_lesson04 2.md b/all_collections/_lessons/decentralized-storage_lesson04 2.md
deleted file mode 100644
index f693359be..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson04 2.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 2
-title: Technical Overview
-permalink: /courses/decentralized-storage/2/technical_overview
----
-
-
-In this module, we'll explore how IPFS stores files.
-IPFS, or the Interplanetary File System, uses a blockchain-based peer-to-peer network to share files directly between participants. Because IPFS does not have one core server, the blockchain is needed to help the nodes identify bad data, and ensures safe and reliable communication for long term file storage.
-
-{% include callouts/callout.html
- title="Incentives and Blockchains"
- bodyText="In order for a decentralized network to operate, it needs two things:
A common source of truth
A way to reward good behaviour
In the case of decentralized storage, a blockchain is used to track network activity, and participants must typically stake a fee, which is returned if their activity is deemed to be non-malicious."
-%}
-
-For the sake of this course, we've mostly focused on IPFS, but there are a number of players entering the decentralized storage space, and each of them has chosen to accomplish this goal in slightly different ways. Generally, the framework for a decentralized storage network can be summarized as shown below. If you would like a deeper dive into this decentralized storage technology, check out our full course on IPFS.
-
-{% include callouts/upsideDownImageWithCaption.html
- image="/courses/decentralized-storage/StorageWorks-01-1.jpg"
- title="HOW DECENTRALIZED STORAGE WORKS:"
- bodyText="1: The data (A) is broken into many pieces, or shards (B)
-
- 2: Each Shard is encrypted (C) using the public key of the user who wants to store the file
-
- 3: A hash (D) is generated for each shard
-
- 4: The encrypted shards (C) are distributed to the peer nodes for storage
-
- 5: The encrypted shards are replicated across many peer nodes, which each share a copy of the common ledger (F)
-
- 6: The shard hashes are recorded to the blockchain (E) for reference during retrieval"
-%}
-
-{% include callouts/note.html
- bodyText="While not depicted above, the creators of IPFS have implemented a token called Filecoin, which enables rewards for participants who successfully provide the correct shard when it is requested."
-%}
-
-Because blockchains must be stored on all nodes of the network, data on them is expensive. As a result, hashes are used to represent an image of each piece of a file, and the pieces can then be safely distributed to storage nodes without risk of substitution of compromise.
diff --git a/all_collections/_lessons/decentralized-storage_lesson05 2.md b/all_collections/_lessons/decentralized-storage_lesson05 2.md
deleted file mode 100644
index a0ab08a56..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson05 2.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 2
-title: Limitations
-permalink: /courses/decentralized-storage/2/limitations/
----
-
-
-Decentralized Systems Are Complicated
-While Decentralized Storage is very appealing for many applications, it's important to understand that like any system, it can only be extended so far.
-
-{% include callouts/note.html
- bodyText="While IPFS is currently operational, and we will try it in the next lessons, it is important to note that this is far from production-grade technology. At best, Filecoin expects to be up and running by 2021, but it may take some time to develop the necessary incentive structures."
-%}
-
-
What's holding it back?
-The main limitation of a decentralized storage network is of the incentive structure and network growth needed to maintain it. Aside from this, however, there are some restricting design concerns which should be addressed by anyone desiring to build on this technology.
-
-
PUBLIC DATA
-Once a piece of information is uploaded to a public storage network, there's no way to know who may have stored a copy and whether they still hold this copy. Unfortunately, even if the file is encrypted, it could be stored indefinitely, and the encryption technology used could eventually be broken.
-
-
INCENTIVISATION
-In a peer-to-peer network, files are only stored if payment is provided. As a result, services can be interrupted if payments are not made as expected. In some of the proposed decentralized storage networks, payment is made when a file is served, which means that a dramatic increase in traffic could result in funds being depleted. By comparison, traditional networks such as Amazon Web Services usually operate on credit, so they will usually not interrupt services for weeks or even months after a dramatic increase in traffic.
-
-
LEGAL ACCOUNTABILITY
-Because decentralized storage networks are mostly anonymous, there is minimal legal recourse if things go wrong. For many traditional organizations, this can be a substantial bottleneck, since this means that lost revenue during a site crash or other similar scenarios cannot be recovered through litigation.
-
-In the next lesson, we'll explore how this and other qualities of decentralized storage can provide major advantages in the right applications.
diff --git a/all_collections/_lessons/decentralized-storage_lesson06 2.md b/all_collections/_lessons/decentralized-storage_lesson06 2.md
deleted file mode 100644
index 93a515a37..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson06 2.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 2
-title: Advantages
-permalink: /courses/decentralized-storage/2/advantages/
----
-
-
-Things are just getting started...
-Despite the limitations discussed inthe previous lesson, decentralized storage has powerful benefits when deployed in the correct situations.
-
-{% include callouts/definition.html
- title="Idempotence"
- bodyText="'The property of certain operations in mathematics and computer science whereby they can be applied multiple times without changing the result beyond the initial application.' - In decentralized technology, the system always knows, for certain, what the state of the system is. This is substantially more secure than traditional systems."
-%}
-
-
The Bright Side
-Decentralized systems are coming soon, and the change will be substantial.
-
-
DATA PERSISTENCE
-It is difficult to delete data if a sufficient number of peers want to keep it. Once a file has been shared with the network, it only takes one node to keep it available. This makes it nearly impossible for an attacker to take the files hostage, or for a tyrannical government to suppress free speech. Beyond this, it means that users can rest assured that their personal documents can be stored safely as long as at least one of their devices holds a copy, and these files can then easily be replicated to the other devices. In practice this works similarly to an iCloud or Google backup, but exists without the need for a third party.
-
-
CENSORSHIP RESISTANCE
-Since files are hosted publicly, and not behind a corporate firewall, no single actor or organization can limit access to the content once it has been shared. As we'll discuss in the next lesson, this has powerful advantages for file-sharing platforms and social media alike.
-
-
OPEN ACCESS
-Decentralized networks are open to anyone with the necessary software knowledge and hardware. As a result, unused storage capacity on personal devices can now be connected to the grid seamlessly, similar to producing renewable energy with home solar panels. This increase in capacity is expected to drive down traditional hosting costs by providing a free market as an alternative to big-name providers. As an additional benefit, this means that everyday users can expect to earn additional income just for connecting their unused hardware to the grid.
-
-In the next lesson, we'll explore some projects that are currently taking advantage of these features.
diff --git a/all_collections/_lessons/decentralized-storage_lesson07 2.md b/all_collections/_lessons/decentralized-storage_lesson07 2.md
deleted file mode 100644
index b646e75b9..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson07 2.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 2
-title: Use Cases
-permalink: /courses/decentralized-storage/2/use-cases/
----
-
-
-When a new technology is proposed, it's creators often claim it can solve a wide range of problems. In this lesson, we'll explore the current scenarios where decentralized storage has been found to be advantageous.
-
STORING PUBLIC BLOCKCHAINS
-While the community seems to generate new applications for decentralized storage daily, the original purpose of this technology was intended as a means of supporting blockchain networks. In most current applications, a peer node needs to download the entire blockchain in order to validate transactions or mine new blocks. This application has not yet been entirely finalized, but the team at Swarm are actively working on a proposal to allow the Ethereum blockchain to be shared collectively between mining nodes. This has the potential to not only help the network scale to meet demand, but also to open up opportunities for more users to engage in mining or other activities.
-
-
IDENTITY DOCUMENTS
-The uPort project uses IPFS to store public identification documents. These records contain the public keys of a user, as well as links to their affiliations and records of their interactions on-chain. In each case, a single file is stored on IPFS, and it is linked to the user via a blockchain registry. This allows any peer to look up the records associated with that user without requiring an on-chain transaction.
-
-
PUBLIC CONTENT
-Many websites such as Twitter or Reddit display the majority of their content in a public format. If an image file or video needs to be shared by many peers, this can be a great application for decentralized storage. Websites like d.tube have already demonstrated that it's possible to replicate even the most complex functionality of historic alternatives like YouTube. Use of shared decentralized content on these platforms complicates design slightly, but has the benefit of creating censorship resistant platforms, meaning that the staff of d.tube are not able to block the display of content from their system.
diff --git a/all_collections/_lessons/decentralized-storage_lesson08 2.md b/all_collections/_lessons/decentralized-storage_lesson08 2.md
deleted file mode 100644
index cbc6165dd..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson08 2.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 3
-title: Decentralization in the Browser
-permalink: /courses/decentralized-storage/3/decentralization-in-the-browser/
----
-
-
-
-Since it would be impractical to expect everyone to upgrade their software for decentralized storage such as IPFS right away, teams like those at Protocol Labs are developing different modules that allow the technology to run in nontraditional places. For example, any website to easily integrate peer-to-peer storage into their services by making use of WebRTC technologies built into modern browsers.
-
-{% include callouts/callout.html
- title="Try the online IPFS portal!"
- bodyText="Visit try-ipfs.weteachblockchain.org to try using the Interplanetary File System to share files directly with other users."
-%}
-
-
USING THE INTERFACE
-
-When you reach the page, you'll be able to upload and download files from IPFS using the browser window.
-
-{% include callouts/imageWithCaption.html
- image="/courses/decentralized-storage/1.-Initializing.jpg"
- title="Wait for the note to initialize"
- bodyText="Once your node has finished initializing, you can upload files and share them with others using the 'Link' button. They'll then be able to download them from your node, right in your browser window!"
-%}
-
-
WHAT'S HAPPENING?
-
-Everything here is working just like it did in the command line interface. Once the node is done initializing, it will have its own ID and addresses and will begin to network with other IPFS peers throughout the network. You can see the connected peers in the lower left portion of the user interface:
-
-
-
-These are IPFS addresses. They can make things difficult to read, but you’ll notice there are patterns
-depending on the client software being used and the location of the node. When your node uploads or requests a file, these other nodes will receive your request and either serve the file themselves or offer to route information to a node that can serve the file.
-
-The peers we see above are operating for free to facilitate the network, which presents some problems if we want to get things running at a larger scale. Instead, a number of solutions have been proposed to compensate nodes for storing files. This problem is largely unsolved though several projects are attempting to solve this issue along with tackling many others.
diff --git a/all_collections/_lessons/decentralized-storage_lesson09 2.md b/all_collections/_lessons/decentralized-storage_lesson09 2.md
deleted file mode 100644
index 79e0aafe1..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson09 2.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 3
-title: Multiple Tokens & Projects
-permalink: /courses/decentralized-storage/3/other-tokens/
----
-
-
LEADING PROJECTS
-
-
-{% include callouts/imageWithTextCallout.html
- title="Maidsafe"
- image="/courses/decentralized-storage/MaidSafe.jpg"
- bodyText="MAIDSAFE stands for Massive Array of Internet Disks Secure Access For Everyone. And while it's not a blockchain, the MaidSafe project has been working on decentralized storage longer than anyone. Their system uses an entirely new protocol and they've been developing it for the better part of the last decade. The network is composed of clients and farmers where the latter provides resources such as disk space. You can find out more on Maidsafe's website. As the project still isn't quite ready for production use, developers are forced to shop around for the protocols that best suit their particular needs."
-%}
-
-{% include callouts/imageWithTextCallout.html
- title="SiaCoin"
- image="/courses/decentralized-storage/Sia.png"
- bodyText="Sia launched in early 2013 out of an MIT Hack event and uses a Proof-of-Work algorithm to handle the management of their actual blockchain. In the Sia ecosystem, storage contracts are used which require the provider to stake a fixed amount of tokens in exchange for the privilege of storing files. While they store the file, the providers must consistently upload proofs of storage to the blockchain to verify their participation. Storage providers are then rewarded if they fulfill the terms of service as outlined in the storage contract, and receive their fees from the end user.
-
-The Sia blockchain is then mined using a similar Proof of Work algorithm to the Ethereum Ecosystem, and the mining nodes evaluate whether the storage provider has successfully met the terms of their smart contract agreement. Sia recently unveiled a new form of ASIC miners designed specifically for this task, which has resulted in some criticism as to the actual decentralization of the project since it now requires specific hardware to join. You can visit Sia here."
-%}
-
-{% include callouts/imageWithTextCallout.html
- title="IPFS"
- image="/courses/decentralized-storage/IPFS.png"
- bodyText="IPFS Stands for InterPlanetary File System and is accompanied by a token called FileCoin which is utilized to support a free market for storage of data and extra disk space. Instead of using location-based addressing, IPFS seeks to publish files that are content-addressed. That is--the content itself defines the address. This unique system has several valuable benefits especially when it comes to tracking revisions of information over time."
-%}
-
-
THE ETHEREUM ECOSYSTEM
-
-The Ethereum Blockchain, launched in 2015, offers the ability to run Smart Contract code on the decentralized network of mining computers. Just as these decentralized applications require decentralized storage, they also provide a uniquely flexible framework for managing storage nodes and accountability.
-
-{% include callouts/imageWithTextCallout.html
- title="Swarm"
- image="/courses/decentralized-storage/swarm-1.png"
- bodyText="Ethereum's flagship storage solution runs on top of the existing smart contract infrastructure but uses additional proof of custody operation to scan and repair data over time when needed. Rather than use a new protocol such as IPFS, Swarm offers federated HTTPS endpoints to allow users to make calls to a familiar API interface and upload and download files.
-
-While Swarm is not yet fully operational, you can try out their command line utilities in a simulated environment here."
-%}
-
-{% include callouts/imageWithTextCallout.html
- title="Storj"
- image="/courses/decentralized-storage/storj.png"
- bodyText="Storj originally launched as its own blockchain, but today utilizes the existing Ethereum Blockchain and its proof of work algorithm to track fulfillment of storage contracts over time. Smart contracts are used to establish the terms of the storage agreement, but the payments are routed through a centralized entity such as the Storj Labs network authority. As the network develops, it is expected that more payment authorities will be added and thus federate the control of the network.
-
-Storj acts similar to how torrents do and have recently announced compatibility with Amazon's S3 storage solution, which may provide a substantial boost in adoption as it hits the market in 2019. Check out the Storj website for more information."
-%}
-
-
OTHER
-
-{% include callouts/imageWithTextCallout.html
- title="The TOR Project"
- image="/courses/decentralized-storage/Tor.png"
- bodyText="The TOR Browser is one of the oldest privacy tools on the internet, dating back to the early 2000s. A recent protocol innovation from their research arm, Tahoe LAFS, promises additional security in a similar solution to Filecoin's proposed Proof of Spacetime. See More Here."
-%}
diff --git a/all_collections/_lessons/decentralized-storage_lesson10 2.md b/all_collections/_lessons/decentralized-storage_lesson10 2.md
deleted file mode 100644
index 3161d42f1..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson10 2.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 3
-title: Backbone of a New Web
-permalink: /courses/decentralized-storage/3/backbone-of-a-new-web/
----
-
-
-
-So what does this all mean? Will decentralized storage replace traditional providers like Dropbox? How might all of this impact the way we interact on the internet?
-
-
-
-
-
WHERE WE STAND TODAY
-Most decentralized storage projects, are still in somewhat nascent stages, experimenting with a variety of data storage and economic protocols. Some of these have been proven over time while others have been refined. As projects move out of the research phase and into the implementation phase, it will make it much easier to start planning infrastructure around a particular set of technologies.
-
-
WHERE WE WANT TO BE
-Currently, decentralized storage is mostly in the alpha/beta realm with no real projects ready for a mass influx of users to operate on a production level. IPFS has an impact on several projects and allowed them to slowly begin moving towards Web3, however, developers must still seed nodes themselves to ensure files stay online. That all said, decentralized storage projects are advancing quickly and becoming more robust.
-
-
HOW TO GET THERE
-Many of the data structure problems have been solved. What seems to remain is how to correctly incentivize users of the various protocols to achieve an optimal market for storage. It remains to be seen if excess capacity can be competitive with traditional storage such as Amazon AWS or Microsoft Azure. A lot remains unclear about the impact decentralized storage, however, its potential is certainly intriguing.
-
-
-We're here to help. If you have any questions or feedback about this course please email us at info@theblockchaininstitute.org - we'd love to hear from you!
diff --git a/all_collections/_lessons/decentralized-storage_lesson11 2.md b/all_collections/_lessons/decentralized-storage_lesson11 2.md
deleted file mode 100644
index c31372223..000000000
--- a/all_collections/_lessons/decentralized-storage_lesson11 2.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: lesson
-course: decentralized-storage
-module: 3
-title: Next Steps
-permalink: /courses/decentralized-storage/3/next-steps/
----
-
-
-
-You should now be ready to approach broader concepts of decentralized design. Don't stop now! Continue to learn by taking our Blockchain Security course or head to our courses page to see what else we have to offer.
-
-If you're interested in a more technical deep dive into decentralized storage, you may want to check out our IPFS course, which gets into the nitty gritty of configuring your own node and trying out these solutions for yourself!
-
-{% include courseEndButtons.html %}
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_01 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_01 2.md
deleted file mode 100644
index 905a5acba..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_01 2.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 1
-title: Early Bitcoin Proposal
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/1/early-bitcoin-proposal
----
-
-
-
-BITCOIN WAS JUST THE BEGINNING
-The original Bitcoin Whitepaper describes a form of peer-to-peer currency where participants prove that they are trustworthy by wasting computational energy. The core goal of the Bitcoin Protocol in the early stages was to provide a way for a network of untrusting peers to exchange value with minimal risk and maximum anonymity. The primary issue with such a system was known as the double spend problem. If peers are to keep track of the value each other hold, then how is it possible to prevent simultaneous spending of the same monies?
-
-In order to resolve this problem, Satoshi Nakomoto proposed that the new transactions would only lock once a majority of nodes agreed on them. In practice, this means that Bitcoin transactions take about 10 minutes to process. Ethereum operates differently, which enables new possibilities, such as smart contracts, and flexible asset structures.
-
-{% include callouts/callout.html
- title="The concept of blockchain has evolved"
- bodyText='It may come as a surprise to many, but the original Bitcoin Whitepaper published in 2008 never actually used the word blockchain. After it was written, however, the idea caught on. Ethereum emerged in 2015 and expanded the concept substantially.'
-%}
-
-
Agreements can be resolved without systemic failure or malfunction
All peers are treated equally
"
-%}
-
EVOLVING TO ETHEREUM
-
-In the Bitcoin protocol, the blockchain is the single unchangeable record, shared by every peer, which allows anonymous users to trust one another. A Bitcoin exists only as a sum of credits attributed to a certain peer and registered to that blockchain. A blockchain is just a set of records which are structured to provide maximum accountability without compromising privacy.
-
-In Bitcoin, the block is the batch of transactions which are locked every ten minutes. The block time is the ten minute window, and we refer to the competition between nodes to prove trustworthiness by wasting energy as Proof-of-Work. In the next lesson, we'll explore how this concept evolved in the years following 2008.
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_02 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_02 2.md
deleted file mode 100644
index b8b54b978..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_02 2.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 1
-title: Early Alternative Cryptocurrencies
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/1/early-alternative-cryptocurrencies
----
-
-
-After Bitcoin officially launched in 2009, a number of other cryptocurrency projects launched similar concepts..
-Most used some variation on the Bitcoin code, usually with minor changes to the rules of the network. Most of their their creators were usually outspoken software developers or enthusiasts within the online community, but the communities grew quickly, and enabled a thriving ecosystem.
-
-{% include callouts/imageWithTextCallout.html
- title="Litecoin"
- image="/courses/ethereum-101/252px-6_Full_Logo_S-2.png"
- bodyText="Created on October 7, 2011, by Charlie Lee, a former Google employee. Litecoin was a fork of the Bitcoin Core client, differing primarily by having a decreased block generation time (2.5 minutes), increased maximum number of coins, a different hashing algorithm, and a slightly modified graphic user interface."
-%}
-{% include callouts/imageWithTextCallout.html
- title="Monero"
- image="/courses/ethereum-101/252px-Monero-Logo.svg.png"
- bodyText="Monero was created in 2014, and provides a more discreet version of the Bitcoin protocol. Monero created a new protocol to make the transaction history of payments more difficult to trace, and has seen substantial growth in support of this feature."
-%}
-{% include callouts/imageWithTextCallout.html
- title="Dogecoin"
- image="/courses/ethereum-101/dogecoin-300.png"
- bodyText="In some cases, it's proven that it is not as important to innovate technically as it is to build a community around common goals. Dogecoin is essentially a complete clone of the Bitcoin protocol. It can even be mined simultaneously with it, which means it has a very small overhead cost. Dogecoin was intended to immortalize the Shiba Inu 'doge' meme, and has gathered quite a bit of support. In 2014, the Dogecoin community made waves by helping to send the Jamaican bobsled team to the Olympics. (This actually happened, we're not kidding!)"
-%}
-
-
UPDATING THE BITCOIN CHAIN
-
-After the 2009 launch, Bitcoin was operating with a network of nodes willingly running the same software. The software had been distributed over the popular file sharing website Github, so changes to the code were discussed on moderated internet forums. Nodes on the network could then choose whether to run the new code, ensuring that no one person could take control. New ideas quickly began to circulate and even contradict one another, so more formal governance standards were implemented.
-
-During the early part of 2014, developers began to propose new ways that the chain could be used. Among them, the idea of colored coins circulated. This concept proposed that the transaction data which was stored on the blockchain could be used to attribute value in units other than Bitcoin, which some consider to be the first altcoins. In the next lesson, we'll explore how this idea was adapted to create the modern idea of blockchain systems.
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_03 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_03 2.md
deleted file mode 100644
index ecf7c9f84..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_03 2.md
+++ /dev/null
@@ -1,68 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 1
-title: Introducing Ethereum
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/1/introducing-ethereum/
----
-
-
-The World Computer
-In 2013, a cryptocurrency researcher named Vitalik Buterin wrote a whitepaper proposing a wider conceptual version of the blockchain. Buterin labeled his concept as Ethereum, and suggested that it would provide greater utility by allowing block data to include executable code which peers could run for each other in a complete computing environment.
-
-{% include callouts/definition.html
- title="Ethereum Virtual Machine (EVM)"
- bodyText="The Ethereum Virtual Machine is the collective system made up of hundreds of thousands of individual nodes around the world."
-%}
-
-{% include callouts/note.html
- bodyText="The state of the EVM is maintained communally by all nodes, making it essentially tamper-proof."
-%}
-
-{% include callouts/imageWithCaption.html
- image="/courses/ethereum-101/Vitalik-01.jpg"
- title="Boy Genius"
- bodyText="Vitalik Buterin proposed the initial concept of Ethereum at the age of 21. // Forbes.com"
-%}
-
-
BIRTH OF THE MACHINE
-Because Ethereum is a complete virtual machine, and not simply a data block like Bitcoin, it is possible to store more complex information, and even manipulate it. In particular, when a new address is created on the network, as shown above, the network uses a state transition event to track the changes.
-
-{% include callouts/imageWithCaption.html
- image="courses/ethereum-101/EthState-01.jpg"
- title="The State Machine"
- bodyText="In the Ethereum Virtual Machine (EVM), a blockchain tracks the innerworkings, and allows all nodes to participate in the computational process. The network collectively tracks signed payloads from participants, and composes transactions which they collectively agree to. When a transaction is approved, the EVM undergoes a collective state change, and all nodes update their personal record."
-%}
-
-Rather than the blockchain existing as a ledger of transactions, Buterin proposed that the chain might instead serve as a source of communal truth for the results of computations. In this new version, the network of peers collectively transitioned from one state to another, and the ledger recorded these transitions communally. The rules of this transition and functionality are encompassed in the consensus rules, which you may want to explore on Github. Collectively, the group of peers are referred to as the Ethereum Virtual Machine (EVM).
-
-
Aside: Turing Completeness
-When a computer is not limited to the execution of a particular type of computation task, we call this Turing complete. Another way of referring to this state is computational universality, because broadly speaking, all Turing complete machines are interchangeable.
-
-
-
-In a decentralized context, this means that any code submitted to the network can be computed reliably by every node. The EVM is thereby able to operate as a single computer even though it runs on separate devices all around the world.
-
-{% include callouts/callout.html
- title="Bitcoin vs. Ethereum"
- bodyText="While Ethereum and Bitcoin are similar, the rules of the EVM have been constructed with different priorities in mind.
Ethereum's blocks are limited in computational effort, while Bitcoin's blocks are limited in storage space.
New Ethereum blocks are mined every 10-19 seconds, whereas new Bitcoin blocks are mined every ten minutes
In Ethereum, transaction fees are paid in Gas, which can be purchased using Ether.
Don't worry - we'll cover all of ths in due time."
-%}
-
-
GROWTH OF THE NETWORK
-
-
-In the weeks and months after the release of the whitepaper, developers across the Bitcoin ecosystem and from other communities quickly proposed a myriad of additional applications and options for this new version of the blockchain. The subjects that emerged now provide the framework for decentralization and Web 3. Distributed computing and storage are expected to provide a new internet which is governed by a group of collaborating peers.
-
-
PREVENTING SPAM
-
-Because the EVM is an open system, there is a substantial risk of a rogue actor attempting to subvert the network by running code which repeats endlessly or otherwise monopolizes the computational power of the network. In order to prevent this, a pricing unit known as ”gas” must be paid in order to run computations. Gas is purchased at the time a smart contract is triggered, and must be paid with Ether. Because the price of gas can vary independently from the price of Ether, and will increase when many parties try to purchase it simultaneously, this provides an economic disincentive to prevent spam within the network.
-
-
GOVERNANCE
-
-Just like in the early days of Bitcoin, Ethereum's initial direction took shape over forums and via Github. As the project progressed, the non-profit Ethereum Foundation was established to provide oversight of the growth of the fledgling currency.
-
-
-
-Once a proposed idea has gained momentum through community discussion, it can be formalized as an Ethereum Request for Comment (ERC). If an ERC is adopted by the community, a clearly defined Ethereum Implementation Proposal (EIP) can be created, and developers can begin to collaborate to build the new feature. Once a formal EIP has been produced, funding is sometimes allocated in the form of a bounty from the Foundation or other parties within the Ethereum community.
-
-Because the Ethereum Virtual Machine is Turing complete, many new features are built using smart contracts, and rarely require changes to the core Ethereum protocol. In these cases, the ERC process will mainly define a standard which developers can use to increase interoperability of their code, as we'll discuss in the next module.
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_04 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_04 2.md
deleted file mode 100644
index 7de2b7116..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_04 2.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 2
-title: Smart Contracts
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/2/smart-contracts/
----
-
-
-Anyone can write code that runs on the World Computer
-One of the main benefits of the Ethereum blockchain is the addition of Smart Contracts. These allow code to be submitted to the State Transition, and to have their output added to the ledger. Contracts and accounts are identical during execution within the EVM, so a peer-to-peer payment is treated just like any other computation. In the Ethereum world, every action that can be registered can be encoded in software, and the entire network is able to compute the outcome simultaneously.
-
-{% include callouts/note.html
- bodyText="The Ethereum Virtual Machine executes code called Smart Contracts. When a contract is invoked by paying a fee, the network adds the related state changes to a new transaction, and the system propagates the update."
-%}
-
-{% include callouts/imageWithCaption.html
- image="/courses/ethereum-101/EthereumNode-01-1.jpg"
- title="Smart Contract Creation"
- bodyText="When a Smart Contract is deployed to the network, the creator pays a small fee, and can invoke it to trigger an event. A:CREATE SOLIDITY SMART CONTRACT;B:COMPILE USING SOLIDITY COMPILER (SOLC);C:PERFORM DEPLOYMENT;D:STORES THE ABI AND CONTRACT ADDRESS;E:INSTANTIATES THE CONTRACT;F:INVOKE CONTRACT METHODS FOR DATA STORAGE;G:Passes the .sol file;H:Using the bytecode invokes deployment via Web3js;I:Returns the contract address and the ABI;J:Passes the address of the ABI of the contract;K:Passes all the parameters for the contract methods;L:Signs and passes Ether to perform the operation;M:ETHEREUM NODE."
-%}
-
-In order to run a new smart contract, the creator must first deploy it to the chain and pay gas for that operation. This will return the newly created address of the contract, which can then be used for further configuration steps.
-
-
-
CREATING CONTRACTS
-
-Once the code is written, the owner must submit the contract and pay for the fuel (Gas) to store the contract on the Ethereum Virtual Machine. Once the contract is submitted, the network will run it whenever someone pays for the appropriate amount of gas. Gas cannot be held in a wallet, but is instead purchased at the time of a transaction in order to fund its execution. The Gas Price, or the amount of Ether required to purchase computation, is scaled automatically to match the current amount of computation available in the network and the current demand for it. This flexible structure ensures that the network will not ever accept more computation demands than it can fulfill.
-
-{% include callouts/definition.html
- title="ORACLE"
- bodyText="In the event that a smart contract needs to check for information outside of the Ethereum ecosystem, a third party such as an Oracle can be used to add that information to the blockchain. Oracle services provide external data for use in smart contracts, and are held accountable through staking or other incentive mechanisms on-chain. If enough Oracles are used, the information can be considered to be sufficiently reliable. Further consideration of Buterin's initial work on the concept may be beneficial."
-%}
-
-
AN EXPLOSION OF APPLICATIONS
-
-While the basic functionality of Smart Contracts only goes so far, they can be structured in layers to create more complex functionality. As long as all of the individual contracts are funded with the proper amount of gas, there's nothing stopping developers from building fully integrated apps entirely on these decentralized networks. In the remainder of this module, we'll explore how this concept has been expanded, and how it turned 2017 into a gold rush for software developers.
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_05 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_05 2.md
deleted file mode 100644
index 01bfce5a6..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_05 2.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 2
-title: Fungible Tokens
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/2/fungible-tokens/
----
-
-
-
-One thing which is important to understand about decentralized design patterns is that they are not ever constant. While many smart contracts follow the same formats, each is an independent object which can be configured in any way that suits its purpose.
-
-When we refer to Ethereum altcoins, we're often referring to tokens which meet the ERC-20 Standard. By using a common standard, these tokens can all use common wallets and systems. This has led to increases in interoperability and adoption of new systems such as Shapeshift. The formal documentation defines this standard for most use cases, but as we'll explore, there are some situations where one might want to deviate from the accepted format.
-
-
HOW ARE TOKENS CREATED?
-
-To create a new token, a smart contract is written to track the value that is sent to it. When a user sends money to the contract, they'll be issued tokens from the available supply. The tokens will be 'sent' to the same address that funded the contract call. In most applications, other users can also deploy other functionality. In many cases, an Initial Coin Offering (ICO) is structured to sell a certain amount of the initial supply, and subsequent tokens are then released as incentives within the network.
-
-{% include callouts/imageWithCaption.html
- image="/courses/ethereum-101/SmartContract-01-1.jpg"
- title=""
- bodyText="A:Smart Contract;B:Ether;C:Token;D:Investor. A smart contract can be used to generate Tokens when a user pays into it with Ethereum. The contract then tracks the user's Token Balance over time and allows them to transfer the balance to another user, or deploy it with other compatible functionality."
-%}
-
-
Use Cases
-There are a variety of applications of smart contracts that require a way to track value beyond simply Ether. In some cases, such as with stable coins, there's a major benefit to using a subsidiary currency which can have it's supply moderated to control inflation.
-
Maker DAO / DAI
-The DAI Stablecoin utilizes an ERC-20 token (Maker) along with automated control mechanisms to implement a stable coin which holds its value at $1 USD. This is only possible because the token can be created and destroyed without the underlying assets used to back it being affected.
-
Golem GNT
-The Golem Network facilitates super-computer functionality using a network of decentralized peers. Users on the network earn Golem tokens for computational power, which can, in turn, be used to pay the network for the same service. In order to control inflation on this network, the Golem token is convertible for a different amount of computation depending on the supply available. This distinction incentivizes users to manage demand on their own.
-
Augur REP
-Augur facilitates a marketplace for predictions. In this environment, the REP token is used to stake a bet, and rewards are then dispersed in the same fashion. Because Augur uses REP tokens for voting and dispute resolution, it's important that these exist as a separate form of token. If Ethereum tokens were used instead, any large Ethereum holder could sway decisions without actually having contributed to the network themselves.
-
-
LIMITATIONS
-
-
-
-While the ERC-20 token distribution model was quite popular during 2017, this framework has some structural issues which preclude some interesting use cases. In particular, it's important to note that tokens cannot be used to purchase gas, so the contracts that support these networks still need to hold and pay with Ether for any computations that occur.
-
-As we'll explore in the next lesson, some property shouldn't be divisible to 18 decimal places, or have quite this level of financial complexity. For these sorts of digital assets, a new standard was required.
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_06 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_06 2.md
deleted file mode 100644
index 74140d079..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_06 2.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 2
-title: Unique Digital Assets
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/2/unique-ditial-assets/
----
-
-
-
-While ERC-20 tokens serve well to support marketplaces and other situations where supply and demand controls are necessary, there are a range of other applications that are not well-served by interchangeable tokens. In particular, it is very useful to have unique tokens which are indivisible. As an example, consider a property title, collectible, or art, where fungibility is not required, and verifying uniqueness is what creates the value.
-
-{% include callouts/callout.html
- title="ERC-721"
- bodyText="A a standard that provides developers with a simple way to create unique assets on the Ethereum blockchain. Broadly referred to as Non-Fungible-Tokens or NFTs, this class has created some interesting solutions. In this application, the same smart contract is used to generate all of the individual items, but each item has unique characteristics."
-%}
-
-{% include callouts/imageWithTextCallout.html
- title="CRYPTOKITTIES"
- image="/courses/ethereum-101/cryptokitties.jpg"
- bodyText="Adorable, colorful, fluffy in pixelated 2D, and entirely yours, forever. These cute collectibles can be yours today if you send some Ether to the right smart contract. In this context, the smart contract randomizes certain characteristics such as the color or appearance, which makes each kitty unique, even though they all come from the same contract."
-%}
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_07 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_07 2.md
deleted file mode 100644
index a50a2d08f..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_07 2.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 3
-title: Accountable Design
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/3/accountable-design/
----
-
-
-
-The most important purpose of the Ethereum blockchain is to provide a reliable way of verifying information and computation over time. Just as Bitcoin was designed to provide maximum accountability and maximum privacy for value transfer, Ethereum is designed from the ground up to be a decentralized computer.
-
-
THE STATE OBJECT
-
-As we've explored already, the consensus mechanisms of the Ethereum Virtual Machine allow computers all over the world to share a common State Object. This unique characteristic allows the EVM to act as both the executive and judicial authority, enabling it to monitor events and track changes, and take corrective action automatically.
-
-
MERKLE TREES
-
-As in the Bitcoin context, the EVM uses a chain of hash signatures to link information over time. In order to increase the amount of information that can be represented within a single hash, tree structures can be used to contain even more information.
-
-{% include callouts/imageWithCaption.html
- image="/courses/ethereum-101/MerkleTrees-01.jpg"
- title=""
- bodyText="In a Merkle Tree, raw data is hashed, and the signatures of many data sets can be combined together to create a single very small signature for a large data set."
-%}
-
-In the EVM this technique is employed to allow a very large State Object to exist without a signature of equal size. In fact, the entire hash signatures for the whole EVM make up only a fraction of its size.
-
-{% include callouts/definition.html
- title="TRANSITION FUNCTION"
- bodyText='In order to add new information to the State Object, the entire network of peers must be able to find consensus on which changes to make. This process is embedded in the core EVM code, and uses a similar solution to the Bitcoin Proof-of-Work consensus algorithm in order to accomplish complex operations within a Byzantine Fault Tolerant system.'
-%}
-
-As will soon become apparent, this is no small feat. Providing Byzantine Fault Tolerance across a Turing Complete Machine is the collective work of hundreds of people all over the world, and is at the heart of what makes the Ethereum Virtual Machine so revolutionary. In the following lessons, we'll explore the challenges that this task presented, and how they can influence the design of the apps that run on this network.
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_08 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_08 2.md
deleted file mode 100644
index d000f7ff3..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_08 2.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 3
-title: Security Concerns
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/3/security-concerns/
----
-
-
-
-While the EVM is revolutionary, it's design creates some challenges for developers, which should be well understood before a mainnet launch can be considered.
-
-
PRIVACY ISSUES
-
-
-
-
-
-Because all smart contracts are processed by each node on the network, all data that they use is visible to any participant. As a result, sensitive business data can often not be stored on chain, which complicates the design of such systems. Some solutions, such as Enigma, have proposed ways to handle this computation privately, but these are still in the early stages.
-
-The code of the contracts is also public on the EVM, which means that an attacker can read the code that they're trying to compromise to identify weaknesses.
-
-
LOOPHOLES
-
-
-
-Because Smart Contracts cannot be edited once deployed, it's extremely important to carefully audit the code for any potential issues. Smart contract audits should be conducted by third-party firms before any financial systems are managed by them. Furthermore, all data inputs should be carefully examined to ensure that they cannot be manipulated by potential attackers to exploit the contract code.
-
-{% include callouts/callout.html
- title="THE DAO HACK - THE BIRTH OF ETHEREUM CLASSIC"
- bodyText="The DAO hack in 2016 resulted in the loss of a substantial amount of funds by such a large portion of the community that the Ethereum Foundation proposed a fork in the blockchain. While much of the network adopted the fork, some miners continued to use the old record. This now comprises the cryptocurrency network Ethereum Classic. The miners who adopted the fork, thereby choosing to 'undo' the hack, now represent the core Ethereum network."
-%}
-
-
THIRD-PARTY RELIANCE
-
-
-
-As we've already discussed, Oracle Networks can provide a way for smart contracts to use data from external sources. These resources, while versatile, can lead to an increased risk of manipulation. Generally speaking, Ooracles can be subverted much more easily than the overall network, and as a result this information must be closely monitored to detect potential abuse.
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_09 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_09 2.md
deleted file mode 100644
index 6ff1f365b..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_09 2.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 3
-title: Identifying Opportunities
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/3/identifying-opportunities/
----
-
-
-
-Throughout this module we've explored how the Ethereum Virtual Machine can be used to build decentralized applications. Because these systems are quite complex, it's important to avoid trying to shoehorn the wrong business model into a decentralized format. The following process can serve as a litmus test to identify if a problem needs a decentralized solution.
-
-{% include callouts/imageWithCaption.html
- image="/courses/ethereum-101/Dilbert1.jpg"
- title=""
- bodyText="NOT EVERY PROBLEM REQUIRES A BLOCKCHAIN SOLUTION // Dilbert.com"
-%}
-
-
CHALLENGES
-
-
-
-
-
-The first step is to verify that the problem you want to solve is actually possible to approach with a decentralized solution.
-
-
Can this problem be solved with minimal reliance on third-party data?
-
Is it always possible to determine a logical outcome for the problem?
-
Is it possible for this solution to operate with complete transparency?
-
Can the outcome of the problem be resolved to the movement of on-chain assets?
-
Is it possible for this solution to exist without the need for digital asset management?
-
-
-
ADVANTAGES
-
-
-
-
-
-If the answer to all of the last questions was "Yes" then it may also help to confirm that a blockchain-based solution is appropriate. There could be an easier or cheaper alternative, so it's best to consider whether a decentralized solution is actually the optimal course.
-
-
Are there large inefficiencies due to incomplete or inaccurate information in existing solutions?
-
Is there a need for more equitable ownership and access to these kinds of systems?
-
Is there a need for greater freedom of expression or open communication within this system?
-
Is there a need for greater assurance or automation in this process?
-
-
-What should you do if your use case isn't possible yet?
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_10 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_10 2.md
deleted file mode 100644
index b26a36d26..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_10 2.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 4
-title: Network Congestion
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/4/network-congestion/
----
-
-
-
-Because the EVM exists exclusively as a peer-to-peer architecture, there are some limitations on how information can be moved across the network. Every new block must be transmitted across the network once it's confirmed, but new transactions must also be broadcast to as many nodes as possible in order to be included in new blocks. This balance places a non-trivial demand on the networking capabilities of most home computing devices, and will only increase as the network grows.
-
-
BLOCK PROPAGATION
-
-
-Because each node of the network must retain their own copy of the records, the larger the network gets, the more information must constantly be shared. Some projects such as bloXroute
-
- have proposed to fix this issue by providing a single channel to transfer new information across the network, but this has limitations as it increases the centralization of the system.
-
-
BLOCK RATE
-
-
-
-More important than the rate of transfer across the network is the rate that new blocks are added to the chain. In order to ensure that the EVM can have universal consensus, the rate and size of new blocks limits the amount of data and computation which can occur during any interval, even if the network could support more. Solutions such as sharding and proof of stake have been proposed to limit the computational burden on the network while also increasing the amount of data which can be stored.
-
-
ARCHIVE SYNC
-
-In addition to the movement of EVM data across the network, it's also important for new nodes to be able to access historical records with ease. As of 2019, the Ethereum blockchain is slightly over 1 terabyte, so new forms of storage are being explored to help the peer network share this burden more easily. In the next lesson, we'll explore how decentralized storage could be the key to this problem.
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_11 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_11 2.md
deleted file mode 100644
index d64b1e33b..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_11 2.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 4
-title: Data Storage
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/4/data-storage/
----
-
-
-
-In 2019, the full size of the Ethereum blockchain exceeded 1TB. While this is not a restrictive amount of space for an enterprise computer, it's much larger than the average consumer can hope to support. Because this file is the source of truth for the entire system, it's very important that the future of Ethereum supports some kind of decentralized storage.
-
-{% include callouts/imageWithTextCallout.html
- title="IPFS"
- image="/courses/ethereum-101/ipfs.png"
- bodyText="The Interplanetary Filesystem was originally an Ethereum Foundation-backed project, but has now established their own token in Filecoin. The IPFS network is currently live in testing mode, and you can try it in your browser with our test portal here."
-%}
-
-{% include callouts/imageWithTextCallout.html
- title="Swarm"
- image="/courses/ethereum-101/swarm.png"
- bodyText="The team at Swarm is currently working to host the entire Ethereum blockchain over their decentralized network, which would allow individual peer nodes to only retain relevant part of the data instead of the full chain. As this network expands, it is expected to provide a framework for storing off-chain data in a reliable and decentralized way."
-%}
-
-{% include callouts/imageWithTextCallout.html
- title="Storj"
- image="/courses/ethereum-101/storj-200x200.png"
- bodyText="Storj is the only decentralized storage network currently running on Ethereum. It's Proof-of-Work based consensus algorithm uses custom hardware to handle storage. While this is considered to be a less decentralized option, integrations with Amazon Web Services have recently made headlines and may provide a path towards wider adoption."
-%}
-
-As features like file storage come online, there will also be a much greater opportunity for new products to integrate additional functionality, such as peer-to-peer content delivery networks or distributed file sharing applications.
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_12 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_12 2.md
deleted file mode 100644
index 58404e39b..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_12 2.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 4
-title: Proof Of Stake
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/4/proof-of-stake/
----
-
-
-
-Instead of wasting energy to prove authenticity, a staking model would allow network participants with substantial Ether holdings to stake these coins as collateral. While this proposal is still in the early stages, other cryptocurrency networks such as Tezos have successfully implemented staking as a way to streamline block production.
-
-{% include callouts/imageWithCaption.html
- image="/courses/ethereum-101/Proofs-01.jpg"
- title=""
- bodyText="A:Proof-of-WorkB:Proof-of-Stake"
-%}
-
-{% include callouts/imageWithCaption.html
- image="/courses/ethereum-101/Proofs-02.jpg"
- title=""
- bodyText="C:The probability of mining a block is dependent on how much work is done by the miner.D:Person can 'mine' depending on how many coins they hold."
-%}
-
-{% include callouts/imageWithCaption.html
- image="/courses/ethereum-101/Proofs-03.jpg"
- title=""
- bodyText="E:Payouts becomes smaller and smaller for Bitcoin miners. There is less incentive to avoid a 51% attack.F:The POS systems makes any 51% attack more expensive."
-%}
-
-{% include callouts/imageWithCaption.html
- image="/courses/ethereum-101/Proofs-04.jpg"
- title=""
- bodyText="G:POW systems have powerful mining communities, but tend to become centralized over time.H:POS systems are more decentralized, but must work hard to build communities around their coins."
-%}
-
-As the network grows, it is anticipated that a Proof-of-Stake based system would provide a less wasteful solution, while also enabling greater scale of block production. In the meantime, Proof-of=Work has proven to be a suitable solution for most applications.
diff --git a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_13 2.md b/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_13 2.md
deleted file mode 100644
index 8b509d373..000000000
--- a/all_collections/_lessons/ethereum-101-blockchain-beyond-bitcoin_lesson_13 2.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: lesson
-course: ethereum-101-blockchain-beyond-bitcoin
-module: 4
-title: Further Learning
-permalink: /courses/ethereum-101-blockchain-beyond-bitcoin/4/further-learning/
----
-
-
-
YOU'VE REACHED THE END OF OUR INTRODUCTION TO ETHEREUM.
-
-Hopefully, you’re now feeling confident in your understanding of decentralized technologies, and how blockchains can be used to provide a central source of truth in these networks. Now that you understand the core structure of decentralized systems, you may want to check out some of our other courses to learn more about how these concepts can be expanded to provide platforms for growth and individual sovereignty.
-
-
Decentralized Storage
-
Intro to IPFS
-
Private Blockchains - Hyperledger 101
-
Blockchain Security
-
-
-{% include courseEndButtons.html %}
diff --git a/all_collections/_lessons/hyperledger_lesson01 2.md b/all_collections/_lessons/hyperledger_lesson01 2.md
deleted file mode 100644
index b8df40652..000000000
--- a/all_collections/_lessons/hyperledger_lesson01 2.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 1
-title: Background
-permalink: /courses/hyperledger/1/hyperledger-background/
----
-
-
-BACK TO THE BEGINNING
-Blockchain (or Distributed Ledger) technology as we know it provides a unique system of trust within a network. The ledger tracks the events or data generated within a system and is distributed amongst a network of peers to ensure that none of them can tamper with the information once it is saved.
-
-
-{% include callouts/imageWithTextCallout.html
- title="Hyperledger 2020 Panel"
- image="Hyperledger-blockchain-tech-for-business-534x300.jpeg"
- bodyText="If you're interested in learning about Hyperledger, our 2020 Community Kickoff Panel covers a lot of the basics. Click here to watch the full video."
-%}
-
-While public blockchain technology originally emerged as a solution to provide distributed trust within the Bitcoin network, the technology has progressed a long way since 2008. With the introduction of the Ethereum Virtual Machine, the concept of a blockchain system expanded to include not only the distributed ledger but also distributed software that could run on a peer network.
-
-
-ASK AN EXPERT: WHAT'S THE DIFFERENCE BETWEEN PUBLIC AND PRIVATE BLOCKCHAINS? // Blockchain.WTF
-
-
LIMITATIONS OF PUBLIC BLOCKCHAINS
-
-Despite the rapid adoption of public distributed ledger systems, there are some drawbacks to this design pattern. In particular, a public blockchain requires that the data and any software that uses it operate in a state of relatively complete transparency. In addition, a public blockchain ecosystem such as Ethereum relies on a delicate balance of economic forces to ensure its survival. This means that a business seeking to run its operations on a public ledger would not only need to devise a complex architecture to ensure adequate privacy but also that they might fall subject to increases in costs if market conditions shift.
-
-{% include callouts/note.html
- bodyText="While any blockchain, like bitcoin or ethereum, can be run in a private network, these are not built to function as private blockchains. Hyperledger was designed from the ground up to work in a private context, and has capabilities that could never work in public blockchains."
-%}
-
-
PRIVATE BLOCKCHAINS
-
-In the Bitcoin context, it's required that the blockchain act as a core system of trust. While this is still partially true in the private context, it's possible that in many situations the parties involved are already existing partners. In these cases, it may be better to think of the blockchain as a database with very strict controls that limit who can edit which information, and how different users can act within the system.
-
-
-
-Many IT systems, especially in privacy or high-risk situations such as healthcare or banking, have already implemented very complex database systems with strict access controls. In these cases, a Hyperledger or other private blockchain solution offers an efficient design pattern to provide system designers and stakeholders with reduced risk and robust privacy integration.
-
-
-
-In this course, we'll explore how the Hyperledger technology stack can be employed to launch a private blockchain for use by a set of trusted peers, and how this can increase efficiency relative to traditional database systems.
diff --git a/all_collections/_lessons/hyperledger_lesson02 2.md b/all_collections/_lessons/hyperledger_lesson02 2.md
deleted file mode 100644
index d79ace2fe..000000000
--- a/all_collections/_lessons/hyperledger_lesson02 2.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 1
-title: Hyperledger Architecture
-permalink: /courses/hyperledger/1/hyperledger-architecture/
----
-
-
-The making of the machine
-This brief video was created by IBM to explain why Hyperledger is different. IBM is among the core developers of this new protocol and has committed in-house resources to build this solution for industrial blockchains. A number of other major software companies including Oracle and the Linux Foundation have also committed in-house teams to support the development of the Hyperledger protocol.
-
-
-
-Where does your food come from? // IBM Blockchain
-
-
WHY IS HYPERLEDGER DIFFERENT?
-In a public blockchain, trust limitations restrict how information can be allowed to flow. In a private environment, there is much more flexibility, which means that different nodes in the network can have a wider set of responsibilities and the advantage of efficiency tools which rely on trust within the network.
-
-
NODE TYPES
-Unlike the bitcoin or ethereum networks, where all nodes are alike, Hyperledger uses different nodes for different purposes, which ultimately increases efficiency across the network.
-{% include callouts/definition.html
- title="In the Hyperledger, a node must take on one of three roles:"
- bodyText="
Peer - A peer node is similar to a standard client in the Bitcoin or Ethereum networks.
Endorsing - Endorsing nodes can sometimes act as peer nodes, but have the added responsibility and privilege of endorsing others' transactions.
Ordering - Ordering nodes are responsible for adding records to the ledger. These are similar to mining nodes in public blockchains.
"
-%}
-
-
RECORD SYSTEMS
-In order to increase the overall efficiency of the system, the network uses several distinct record systems:
-
-
General Ledger - The overall ledger of the system records all transactions regardless of whether they're approved or not. This is a useful tool for audits and ensures that no data is lost.
-
Validated Ledger - Transactions which have been fully approved are added to the VLedger, which is a shortened version of the overall history containing only the successfully processed events.
-
State Object - The State Object is stored as a database record representing the current state of the system. This provides the maximum functional efficiency as peer nodes can simply query the present state rather than reconstructing it from the ledger.
-
-
-In a Hyperledger Network, all most new transactions are added to the State Object almost immediately, producing a database which can perform nearly as well as a common system like SQL, but with all the benefits of a distributed ledger.
diff --git a/all_collections/_lessons/hyperledger_lesson03 2.md b/all_collections/_lessons/hyperledger_lesson03 2.md
deleted file mode 100644
index 9a41e7b62..000000000
--- a/all_collections/_lessons/hyperledger_lesson03 2.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 1
-title: Transaction Flow
-permalink: /courses/hyperledger/1/transaction-flow/
----
-
-
-How are blocks created?
-In order to integrate privacy and permissions into the Hyperledger architecture, there are a few additional features which have been added on top of the Bitcoin design pattern. In the Hyperledger context, clients still propose transactions to the network, but the process for validating these transactions is slightly different.
-
-In a Hyperledger app, a transaction must find multiple endorsements from trusted parties within the system before it can be added to the blockchain. Endorsements can be configured to ensure a minimal risk of fraud within the system. An example of this might be to require a business partner to verify certain details of a transaction before it is written to the public ledger. Once all necessary endorsements have been met, the transaction is passed to an ordering node, which will add it to the chain, or Validated Ledger.
-
-{% include callouts/note.html
- bodyText='NOTE: You can find the full docs here.'
-%}
-
-
GENERAL TRANSACTION FLOW
-
1. Client Initiates Transactions
-To initiate a transaction, the client creates a properly formatted proposal via the Hyperledger Software Development Kit (SDK), and signs it from their identity, and then transmits it to the network for approval.
-
-{% include callouts/imageWithCaption.html
- image="/courses/private-blockchains/TransactionFlow-01.jpg"
- title="CLIENT INITIATES TRANSACTIONS // Hyperledger Docs"
- bodyText="A:Client A;B:SDK;C:Proposal;D:Peers."
-%}
-
-
2. Endorsing Peers Verify Signature and Execute the Transaction
-If an Endorsing Peer receives a transaction with a valid signature from a known peer, they can execute it and sign a Proposal Response, which can be passed to the wider network as a change to the state object.
-
-{% include callouts/imageWithCaption.html
- image="/courses/private-blockchains/TransactionFlow-02.jpg"
- title="ENDORSING PEERS... // Hyperledger Docs"
- bodyText="A:App;B:Signed Proposal Response;C:Signatures;D:Peers."
-%}
-
-
3. Proposal Responses are Inspected
-Proposal Responses are transmitted across the network and inspected by each node independently using the SDK. The nodes can then endorse the proposal as well, or simply act as witnesses.
-
-{% include callouts/imageWithCaption.html
- image="/courses/private-blockchains/TransactionFlow-03.jpg"
- title="PROPOSAL RESPONSES ARE INSPECTED // Hyperledger Docs"
- bodyText="A:SDK."
-%}
-
-
4. Client Assembles Endorsements into a Transaction
-Once a predetermined minimum endorsements is met, the client software can assemble them into a Transaction, or State Transition, which is passed to the Ordering nodes, which will add it to the blockchain.
-
-{% include callouts/imageWithCaption.html
- image="/courses/private-blockchains/TransactionFlow-04.jpg"
- title="CLIENT ASSEMBLES... // Hyperledger Docs"
- bodyText="A:SDK;B:Channels;C:Ordering Service;D:Ordered Transactions."
-%}
-
-
5. The transaction is Verified and Committed to the Ledger
-Ordering nodes accomplish consensus through a complex process known as Proof of Authority, which enables them to determine which order the transactions should fall into based on a predetermined hierarchy between known nodes.
-
-{% include callouts/imageWithCaption.html
- image="/courses/private-blockchains/TransactionFlow-05.jpg"
- title="THE TRANSACTION IS... // Hyperledger Docs"
- bodyText="A:Ordering Service;B:Peers;C:Transaction."
-%}
-
-
6. The Ledger is updated across all nodes
-Once the State Object has been updated, and the Verified Ledger is confirmed by the Ordering Nodes, each client node can now read the new information with confidence.
-
-{% include callouts/imageWithCaption.html
- image="/courses/private-blockchains/TransactionFlow-06.jpg"
- title="THE LEDGER IS... // Hyperledger Docs"
- bodyText="A:Appending Transaction;B:App."
-%}
-
-The full flow is seen in the figure below:
-
-{% include callouts/imageWithCaption.html
- image="/courses/private-blockchains/TransactionFlow-07.jpg"
- title="FULL FLOW // Hyperledger Docs"
- bodyText="A:Collect TRANSACTION-ENDORSED Msgs into a valid endorsement that satisfies endorsementPolicy (chaincodeID) broadcast(endorsement);B:tx=<clientID, chaincodeID, txPayload, timeStamp, clientSig>;C:Simulate/Execute tx Sign TRANSACTION-ENDORSED;D:Verify endorsement, readset if OK, apply writeset to state;E:Ordering service;F:VClient (C);G:Endorsing Peer (EP1);H:Endorsing Peer (EP2);I:Endorsing Peer (EP3);J:Orderers;K:(Committing) Peer (CP1)."
-%}
-
-
If this all seems very complicated, don't worry! The SDK takes care of most of the work, as we'll see in the next lesson.
diff --git a/all_collections/_lessons/hyperledger_lesson04 2.md b/all_collections/_lessons/hyperledger_lesson04 2.md
deleted file mode 100644
index 713c91bc5..000000000
--- a/all_collections/_lessons/hyperledger_lesson04 2.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 1
-title: Validated Ledger
-permalink: /courses/hyperledger/1/validated-ledger/
----
-
-
-Validating Transactions
-In the Hyperledger environment, the Validated or VLedger represents the present sum of all successfully validated transactions. Transactions which are not successfully validated or endorsed will be exempt from this list, making it a useful tool for efficiency among peer nodes.
-
-{% include callouts/note.html
- bodyText="Instead of the ethereum State Object or the bitcoin consensus chain, Hyperledger makes use of a collective Validated Ledger, which is shared among all network participants and contains only the transactions which have received appropriate endorsements and approvals."
-%}
-
-The following graphic shows the process for validating a new transaction. Once the transaction is validated, it can be added to the Validated Ledger.
-
-{% include callouts/imageWithCaption.html
- image="/courses/private-blockchains/ValLedger-01.jpg"
- title="ILLUSTRATION OF THE VALIDATION PROCESS // HYPERLEDGER DOCS"
- bodyText="A:PeerLedger;B:Validated ledger;C:Block;D:Submitting client;E:PeerLedger;F:Validated Ledger (VL);G:Genesis block;H:Peer;I:Block forming;J:Verify endorsement, readset, If OK then apply writeset, Else Invalid transaction (blob);K:Ordering service;L:Orderers."
-%}
-
-
-
-Because Hyperledger systems exist in a closed environment, most nodes do not need to participate in the full consensus process. As a result, most nodes will simply maintain their copy of the vLedger and trust that others are ensuring its validity. This is also convenient for larger networks since it ensures that the network has a single common state at any time, rather than the possibility of local consensus emerging.
diff --git a/all_collections/_lessons/hyperledger_lesson05 2.md b/all_collections/_lessons/hyperledger_lesson05 2.md
deleted file mode 100644
index 080ec573e..000000000
--- a/all_collections/_lessons/hyperledger_lesson05 2.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 1
-title: Design Considerations
-permalink: /courses/hyperledger/1/design-considerations/
----
-
-
NODE ROLES AND PRIVILEGES
-Before you start designing your project, it may help to consider the various stakeholders involved and how they will participate in the network. Which nodes will need access to which information?
-
-{% include callouts/note.html
- bodyText="Ledger entries are permanent, so it's critical that the validation process is well thought out before you start building. Flow charts are a great place to start."
-%}
-
-
NODE ADMINISTRATION
-Beyond the technical structure and systems design, it's also important to consider how the human element will factor into your network. In a supply chain for example, is it truly necessary to have each store or warehouse run their own node? Each added participant can introduce privacy and security concerns, so be sure to ask yourself whether the node truly needs to have the privileges you've given it.
-
-
DEPLOYMENT SCALE
-Keeping a ledger doesn't have to be a global solution. Many Hyperledger apps operate on a much smaller scale. If your design challenge seems too big, you may want to consider building a modular system that can plug into a wider network later. Hyperledger's Proof of Authority consensus mechanism provides a viable scaling solution, as consensus is much easier to reach.
diff --git a/all_collections/_lessons/hyperledger_lesson06 2.md b/all_collections/_lessons/hyperledger_lesson06 2.md
deleted file mode 100644
index e6e72227d..000000000
--- a/all_collections/_lessons/hyperledger_lesson06 2.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 2
-title: Setting up your Developer Environment
-permalink: /courses/hyperledger/2/setting-up-your-developer-environment/
----
-
-
-It's as easy as 1, 2, 3, 4, 5, 6 ... 42... 101... etc.
-Keep in mind, setting up one node is just the beginning. To fully test Hyperledger, you'll want to create an entire local network using Docker. We'll get to that shortly.
-
-As you might expect, there are a myriad of ways to setup up a local development environment and configurations can vary widely. We'll help you get started with some basics and hopefully save you some headaches. To start, open up a shell and let's get on with the good stuff! For each dependency listed below, run the command shown to verify that it's installed correctly. If it is not installed, you will need to install binaries from either a package manager or directly.
-
-{% include callouts/note.html
- bodyText="These installation instructions are specifically for Mac OS X. Ubuntu installation instructions will be the same, but Homebrew will not be required."
-%}
-
-
DEPENDENCIES
-Before we get started, use the following commands to verify that you have the correct software installed. If it fails, click the link in each description for full installation details.
-
-
Homebrew
-If you're using a Mac, check your homebrew version with the following command. ( Install Homebrew Here )
-
-{% include callouts/terminal.html
- title="Check that homebrew is installed"
- user="alex@ubuntu"
- directory="~/"
- bodyText="brew -v"
-%}
-
-
Curl
-We'll need curl to download some example files. (
- Install Here )
-
-{% include callouts/terminal.html
- title="Check that homebrew is installed"
- user="alex@ubuntu"
- directory="~/"
- bodyText="curl --version"
-%}
-
-
Docker
-Docker is a tool that creates controlled execution environments to support node simulations.
-For this course we'll need you to have docker and docker-compose. ( Install Here )
-
-{% include callouts/terminal.html
- title="Check that docker is installed"
- user="alex@ubuntu"
- directory="~/"
- bodyText="docker --version, docker-compose ---version"
-%}
-
-
Go
-Go is a scripting language which can be used to write Hyperledger chaincode. ( Install Here )
-
-{% include callouts/terminal.html
- title="Check that Go is installed"
- user="alex@ubuntu"
- directory="~/"
- bodyText="go version"
-%}
diff --git a/all_collections/_lessons/hyperledger_lesson07 2.md b/all_collections/_lessons/hyperledger_lesson07 2.md
deleted file mode 100644
index 7e9996556..000000000
--- a/all_collections/_lessons/hyperledger_lesson07 2.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 2
-title: Deploying your First Network
-permalink: /courses/hyperledger/2/deploying-your-first-network/
----
-
DOWNLOAD THE EXAMPLE FILES
-
-
-Starting from an appropriate directory, download the sample files and enter the /bin/ subfolder.
-{% include callouts/terminal.html
- title="Download the Sample Project"
- user="alex@ubuntu"
- directory="~/dev/"
- bodyText="curl -sSL http://bit.ly/2ysbOFE | bash -s, ls, cd fabric-samples/, cd bin"
-%}
-
-
DEPLOY THE EXAMPLE
-
-
-This folder contains some example launch scripts to help you set up a hyperledger network. The scripts will automatically launch several docker containers, which will simulate a network with multiple independant nodes.
-
-{% include callouts/callout.html
- title="BYFN.sh"
- bodyText="The Hyperledger team has compiled this script to help us easily set up a whole network at once. It will deploy our chain code to a number of Docker containers, and help us simulate a network! ~ Build ~ Your ~ First ~ Network"
-%}
-
-Let's try running the starter script, and we can explore how it generates the network.
-
-{% include callouts/terminal.html
- title="Start the Sample Network"
- user="alex@ubuntu"
- directory="~/dev/fabric-samples/"
- bodyText="cd first-network/,./byfn.sh -h,./byfn.sh generate"
-%}
-
-Now that we have the network up and running, let's see what files were generated.
-
-{% include callouts/note.html
- bodyText="If the dependency installs aren’t set properly then you’ll need to spin down the network, verify all dependencies, and then spin up the network again"
-%}
-
-{% include callouts/terminal.html
- title="Finding the "
- user="alex@ubuntu"
- directory="~/dev/fabric-samples/"
- bodyText="ls channel-artifacts, ls crypto-config"
-%}
-
-There are a few commands available from the network launch script.
-
-{% include callouts/terminal.html
- title="Managing the network"
- user="alex@ubuntu"
- directory="~/dev/fabric-samples/"
- bodyText="./byfn.sh up // Turns on the network,./byfn.sh down // Shuts down the network,./byfn.sh generate // Generates a new network"
-%}
-
-
-Once the install is complete, you'll see a nice ascii art printout of the word END, which means everything worked!
diff --git a/all_collections/_lessons/hyperledger_lesson08 2.md b/all_collections/_lessons/hyperledger_lesson08 2.md
deleted file mode 100644
index c7f2c33dd..000000000
--- a/all_collections/_lessons/hyperledger_lesson08 2.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 3
-title: Launch the Sample App
-permalink: /courses/hyperledger/3/launch-sample-app
----
-
-{% include callouts/note.html
- bodyText="If you haven’t gone through the environment setup steps, please visit the previous section."
-%}
-
-Because Hyperledger networks require multiple nodes operating with different roles, we'll need to simulate not just a single node, but a whole network. In this case, we'll use the docker containers provided by the Hyperledger consortium to set up a testing network. Docker allows us to run several virtual machines, each with a chosen purpose, and will help to simulate a wider network.
-
-
INSTALLATION PROCEDURE
-
-
-Before we start, you'll want to make sure the first network example is down. Be sure to run this command from the first-network directory.
-
-{% include callouts/terminal.html
- title="shut down the network and clear docker"
- user="alex@ubuntu"
- directory="~/fabric-samples/"
- bodyText="./byfn.sh down // shut down the network,cd ../fabcar/ // Switch to the example directory,docker rm -f $(docker ps -aq // clean up docker files,docker network prune,docker rmi dev-peer0.org1.example.com-fabcar-1.0-5c906e402ed29f20260ae42283216aa75549c571e2e380f3615826365d8269ba"
-%}
-
-This quickly clears the old image and prunes the network. This step is important when testing multiple docker apps to avoid any overlap or interference. (More on this here.)
-
-Now that we have everything set up on the Hyperledger end, we can install our node.js client.
-
-{% include callouts/terminal.html
- title="Install the Node Modules"
- user="alex@ubuntu"
- directory="~/fabric-samples/fabcar/"
- bodyText="npm install"
-%}
-
-Now that everything is cleaned up, we're ready to start experimenting!
diff --git a/all_collections/_lessons/hyperledger_lesson09 2.md b/all_collections/_lessons/hyperledger_lesson09 2.md
deleted file mode 100644
index fef49961c..000000000
--- a/all_collections/_lessons/hyperledger_lesson09 2.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 3
-title: Configure the Fabric
-permalink: /courses/hyperledger/3/configure-settings
----
-
-
-
-Now that we have the core Hyperledger node running, we can use our node.js client to interact with it and send queries. Before we can get started, though, we'll need to launch our node and configure some users and permissions.
-
-
Start the Node
-First, you'll want to run the initialization script. This is similar to byfn.sh from the previous example.
-
-{% include callouts/terminal.html
- title="Start the Fabcar Example Network on Docker"
- user="alex@ubuntu"
- directory="~/fabric-samples/"
- bodyText="fabcar/startFabric.sh, // *This file is actually just going to invoke the general start script at basic-network/start.sh."
-%}
-
-
Set Up The Admin User
-Now that the node is running, we'll need to run a script to set up an admin user. This will also generate key files for this user, which we will need in order to begin interacting with our testing network nodes.
-
-{% include callouts/terminal.html
- title="Create the admin user"
- user="alex@ubuntu"
- directory="~/fabric-samples/fabcar/"
- bodyText="node enrollAdmin.js"
-%}
-
-{% include callouts/terminal.html
- title="Were the keys generated?"
- user="alex@ubuntu"
- directory="~/fabric-samples/fabcar/"
- bodyText="ls hfc-key-store/"
-%}
-
-
-{% include callouts/note.html
- bodyText="To see how this works, review lines 45-55 in enrollAdmin.js. The enroll method on line 53 is the key interaction with the Hyperledger node.
-
-"
-%}
-
-Every application requires this functionality to register a first user (our admin) who can then register subsequent users. The admin user shouldn’t ever be used to update/query the ledger, and really only exists as a root source of trust in the system. This is somewhat similar to how the genesis block is added in public blockchains.
-
-
Register a Normal User
-To add a regular user, we can use the following script:
-{% include callouts/terminal.html
- title="Register a User"
- user="alex@ubuntu"
- directory="~/fabric-samples/fabcar/"
- bodyText="node registerUser.js // open this file to see the process, ls hfc-key-store/ // always check that keys were created!"
-%}
-
-
-
-{% include callouts/callout.html
- title="Registering Users:"
- bodyText="To see how this is being executed, open up registerUser.js and take a peak. In particular, the createUser call now has slightly different parameters.
-
-"
-%}
-
-
Querying the ledger
-
-When a client queries a Hyperledger node, the state object is returned as the consensus at that time. In section 1 we covered the transaction flow in greater detail, but we'll now see how the query object is generated and passed to the network endpoint / SDK.
-
-{% include callouts/callout.html
- title="Connecting to the Peer SDK"
- bodyText="The first 50 lines or so of query.js handle connecting to the network and authenticating the user that we created in the previous step. Finally, we can prepare a test query on line 54: "
-%}
-
-You can send the query by triggering the script using the following command:
-
-{% include callouts/terminal.html
- title="Run the query"
- user="alex@ubuntu"
- directory="~/fabric-samples/fabcar/"
- bodyText="node query.js"
-%}
-
-If your Hyperledger node is running this should return a printout of json data, but right now it will be empty because we haven't added any cars to the dealership's registry! In the next section, we'll explore the chaincode and see how this payload gets processed by other nodes on the network!
-
diff --git a/all_collections/_lessons/hyperledger_lesson11 2.md b/all_collections/_lessons/hyperledger_lesson11 2.md
deleted file mode 100644
index 466db2ae5..000000000
--- a/all_collections/_lessons/hyperledger_lesson11 2.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 3
-title: Chaincode on the Node
-permalink: /courses/hyperledger/3/chaincode-review
----
-
-
-
-In the previous lesson, we covered how to connect to and query the Hyperledger node. Now, we'll explore how the node can be configured to respond to those requests.
-
-
The chaincode: Fabcar.js
-In this example, the file Fabcar.js contains our chaincode SDK. This file gives us a single convenient place to add and remove functionality. Let's take a look at a couple of the function calls to see how they work.
-
-{% include callouts/note.html
- bodyText="The chaincode is all stored in a single folder in fabric-samples/chaincode. The Fabcar.js script is located at fabric-samples/chaincode/fabcar/node/fabcar.js."
-%}
-
-{% include callouts/callout.html
- title="Query All Cars (line 145)"
- bodyText="This function simply returns all of the cars in the database as we saw in the last example."
-%}
-
-As you can see, all that's really happening here is a quick query that pulls cars 0 - 999 by their IDs. The SDK is taking care of the heavy lifting and abstracting all of this away so that we can just play through the iterator object, which is just an extension of the state object that we have at our node. In this way, a highly secure blockchain IDE can be used with comparable ease to a standard database.
-
-{% include callouts/note.html
- bodyText="Application Layer | Smart Contract SDK / API | Ledger Read / Write"
-%}
-
-You can try running different commands using the query function, but we'll go through a few of them now.
-
-
Invoke functionality
-The Invoke Process is a bit more complicated than a standard db write since there is a consensus process taking place behind the scenes. Rather than writing directly, the application must submit ‘update transactions’ to the chain, which are then ordered (think ‘mined’) into the ledger after being approved by the other nodes. As a result, we'll be using invoke.js ( fabric-samples/fabcar/invoke.js ) to write to the Hyperledger database while query.js can be used to read from it.
-
-{% include callouts/definition.html
- title="transaction flow for invoke calls"
- bodyText="
Propose updated transactions
Order transaction proposals
Notify the client once the ledger is updated
"
-%}
-
-To see how this is happening, you'll want to take a look under the hood and check into how invoke.js differs from query.js. The main difference is the addition of the addOrderer call shown on line 5 below. As you can see, the user's hfc key is imported from the local directory and used as the Fabric_Client's default.
-
-{% include callouts/callout.html
- title="Under the Hood"
- bodyText="The actual call to the peer network is similar to the functionality we saw for in query.js. From line 45 - 50 we see the same user authentication, and then the transaction processing and housekeeping happen on line 56."
-
-%}
-
-In the following example, we'll use the payload in lines 61-68 to try creating and modifying some entries in the system!
diff --git a/all_collections/_lessons/hyperledger_lesson12 2.md b/all_collections/_lessons/hyperledger_lesson12 2.md
deleted file mode 100644
index 18c82cbb7..000000000
--- a/all_collections/_lessons/hyperledger_lesson12 2.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 3
-title: Creating Records
-permalink: /courses/hyperledger/3/creating-a-record
----
-
-
-
-A car dealership isn't much without being able to track cars. In order to add new cars to the database, we'll need to use invoke.js with a slightly different payload. If we wanted to add a new Purple Tata Nano owned by someone named Alex, we would need to update the invoke call slightly.
-
-{% include callouts/callout.html
- title="Update Invoke.js "
- bodyText=""
-%}
-
-The rest of the script can remain unchanged since it's just going to pass this payload to the server. One thing to keep in mind here is that in this case, we're passing the ID "CAR10", which we wouldn't have without first querying the database to see what the last car in the list was numbered.
-
-{% include callouts/terminal.html
- title="Run the command"
- user="alex@ubuntu"
- directory="~/fabric-samples/fabcar/"
- bodyText="node invoke.js // push a record, node query.js // verify after creation"
-%}
diff --git a/all_collections/_lessons/hyperledger_lesson13 2.md b/all_collections/_lessons/hyperledger_lesson13 2.md
deleted file mode 100644
index c3d40aa3d..000000000
--- a/all_collections/_lessons/hyperledger_lesson13 2.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-layout: lesson
-course: hyperledger
-module: 3
-title: Updating Records
-permalink: /courses/hyperledger/3/updating-records
----
-
-
-
-Now let's assume Alex moves to Canada. It's cold in the Winter, so now Alex needs a hybrid instead of an all-electric Tesla. If Alex wants to buy Valeria's Prius, we'll need to update the blockchain to reflect this change.
-
-{% include callouts/callout.html
- title="Task: update car0 - set owner: Valeria to Alex"
- bodyText="
Application layer calls ( Smart Contract SDK ).changeCarOwner with the new object
The SDK processes this object and generates a new transaction that issues a change of the color to red
Now, the state database updates to include the new transaction, similar to the UTXO calculation in bitcoin, and updates the color to match the new transaction
Then, once all of this is complete, the chaincode SDK will return a success response to the application layer
"
-%}
-
-{% include callouts/callout.html
- title="Example Payload"
- bodyText="
-
-
-
\ No newline at end of file
diff --git a/support-us 2.html b/support-us 2.html
deleted file mode 100644
index d48bac870..000000000
--- a/support-us 2.html
+++ /dev/null
@@ -1,130 +0,0 @@
----
-layout: default
-title: Help us help adoption
-stylesheet: support.css
-permalink: /support-us/
-ogImage: Support_Header-01.jpg
----
-
-
-{% include pageHeader.html
- img="Support_Header-01.jpg"
- imgMd=""
- imgSm=""
- header="Help Bring Blockchain To Your Community"
- text="Blockchain Institute works to promote the adoption, development, and use of blockchain technology by providing free education to the public. We create highly polished courses to make sure everyone has an oppotunity to understand what makes these new technologies so powerful. But we can't do it alone, creating theses courses takes time and resources - we need your help!"
- ctaText="make your money change the future of money"
- ctaLink="#howHelp"
-
-%}
-
-
-
How You Can Help
-
-
-
-
- Donate
-
-
- Help us directly by donating cryptocurrencies or USD to fund the creation of more educational courses
- and to keep them free for all. Because of our 501(c)(3) status, any donations are tax-exempt and can be
- taken as a credit on your future tax filings.
-
-
- Donate Now
-
-
-
-
-
- Active Campaigns
-
-
- Gitcoin
- Grants
- Gitcoin Grants is an experiment where open source projects can crowdsource funding. Individual donations
- are matched by Gitcoin Grant’s fund sponsored by donors in the ethereum ecosystem.
-
- Gitcoin Grants’ Quadratic Funding program means that many people donating small amounts to a project can
- get a much higher match from their fund than a few people donating a lot. Your generous donations will
- never go further to help us then they will with this program. This is your chance to have a huge impact
- on our future funding!
-
-
- Get matching
-
-
-
-
-
-
-
How You Can Help
-
-
-
-
- Amazon Smile
-
-
- Whenever you shop on Amazon use our AmazonSmile link. It costs you nothing and they make a small
- donation to us when you do. This costs you nothing, but makes a big difference for us!
-
-
- Sign Up
-
-
-
-
-
- Help Spread the Word
-
-
- Follow us on social media and help spread the word by sharing our posts or your favorite content with
- your followers.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sign Up And Share Our Newsletter
-
-
- Follow our newsletter to keep up with us and share it with others.
-
-
- Join the Movement
-
-
-
-
-
- Become a Blockchain Ambassador
-
-
- Help teach blockchain to your community by joining our Blockchain Ambassador Program. We provide the
- tools and resources you need and offer support based on what we’ve learned.
-
-
- Join our Team
-
-
-
-
\ No newline at end of file
diff --git a/use-bitcoin 2.html b/use-bitcoin 2.html
deleted file mode 100644
index ed0b75126..000000000
--- a/use-bitcoin 2.html
+++ /dev/null
@@ -1,293 +0,0 @@
----
-layout: default
-title: Learn to Use Bitcoin (it's easy!)
-stylesheet: use-bitcoin.css
-permalink: /use-bitcoin/
-ogTitle: Use Bitcoin
-ogDesc: You’ve heard about bitcoin, but what is it really? We've got the answers you need.
-ogImage: https://weteachblockchain.org/assets/img/headerBackgroundTile.jpg
-ogUrl: https://weteachblockchain.org/use-bitcoin/
----
-{% include newsletterPopup.html %}
-{% include pageHeader.html
- img="CTAadmainheader.jpg"
- imgSm="CTAadlandingpageheader.jpg"
- header="Welcome to "
- text=""
-%}
-
-
-
- You've made it here, and that means you have all the skills needed to transact with Bitcoin—we can show
- you how easy it is!
-
-
-
-
- You are just a few steps away from being able to conduct your own crypto
- transaction.
-
-
-
-
-
-
-
What do QR codes have to do with Bitcoin?
-
-
- Bitcoin addresses are just long strings of numbers and letters. These addresses can be turned into QR
- codes to make the withdrawal and sending of funds easy.
-
-
- Instead of typing out the address of your friend's cryptocurrency wallet, you can simply scan a QR code.
- This saves time and also prevents any mistakes from happening when trying to manually enter the
- address.
-
- Get up to speed in under 2 hours with our Crypto Curious Course. It’s been
- crafted to explain some of the trickier concepts simply and give you a history of Bitcoin and
- blockchain.
-
- Start your blockchain journey! We offer free educational resources for everyone, whether you want to
- understand how blockchain will change how we do business or what makes these systems secure.
-
-
-
-
-
-
Ambassador Program
-
-
-
-
-
- Already in the know about Blockchain and Crypto? Join our ambassador community
- and help make blockchain tech mainstream!
-
-
-
\ No newline at end of file
diff --git a/userProfile 2.html b/userProfile 2.html
deleted file mode 100644
index 59475d220..000000000
--- a/userProfile 2.html
+++ /dev/null
@@ -1,265 +0,0 @@
----
-title: User Profile
-layout: default
-stylesheet: userProfile.css
-ogTitle: Blockchain Institute
-ogDesc: We are a nonprofit organization with the mission of educating the world on all things related to blockchain.
-ogImage: headerBackgroundTile.jpg
-ogUrl: https://weteachblockchain.org/
----
-
-{% include loginToTrackProgress.html %}
-
-{% include loader.html %}
-
-
-