Professional Documents
Culture Documents
Cornell Tech
Instructions:
Complete this project and submit it to your instructor. See the assignment page for
information about the grading rubric. Do not hesitate to contact your instructor if you
have any questions about the project.
This course project consists of three parts, each of which corresponds to a concept that
you will learn throughout the course. This project will give you an opportunity to critique
a cryptocurrency, experiment with one, and then come up with your own applications of
blockchain technology.
Complete each project part as you progress through the course. Wait to submit the
project until all three parts are complete. Begin your course project by completing Part
One below.
In this part of the course project you will be given a straw man cryptocurrency and
asked to evaluate its merits.
DoubleChainCoin
The promise that cryptocurrencies will make digital transactions much more efficient
requires some analysis. Recall from the module content that only the owner of the
private key associated with an asset can spend that asset. Unfortunately, this feature
has some downsides. For example, imagine if your private key (i.e. a random-looking
32-byte string) got lost. Or that you stored that private key on a document on your
computer and someone hacked into your computer. Your assets would disappear or be
stolen.
To avoid these risks, many people use cryptocurrency wallets. A wallet generates and
secures private key pairs, derives addresses from the corresponding public keys, and
keeps track of UTXOs, all so that users don’t have to do this themselves.
In this part of the course project you will download a cryptocurrency wallet on your
smartphone to see how a wallet works. Once you download the wallet, you will receive
some [fake] cryptocurrency from your course instructor. Follow the instructions below,
and then answer the questions that follow. If you do not have a smartphone or live in a
country that blocks the download of the wallet, skip to Option B.
1. Download the Coinbase Wallet app (not Coinbase, or Coinbase Pro) from the
App Store or Google Play Store.
2. If you have never used Coinbase Wallet in the past, click Create a new wallet. If
you have used it before, click I already have a wallet.
3. Follow the prompts on screen to agree to terms of service/privacy policies, set up
a username, under privacy preferences, set to Public, and set up authentication
for your wallet with fingerprint, Face ID, or device passcode.
4. Click on the gear in the lower right-hand corner of the app. Under Advanced
Settings (Advanced for Android users), select Active Network, select Rinkeby
under ETH. This will switch your app to the Ethereum testnet, a test version of
the Ethereum blockchain.
5. Once you have selected the right network, click the Wallet icon
6. Click Receive, then Rinkeby. You should see a QR code with a long string of
numbers and letters below it. The long string is your address and the QR code is
a way for people to scan your address.
7. Send your address via email to your instructor by clicking on the arrow on the
top right of the screen. Do not send the QR code; send the long string of letters
and numbers.
3
© 2018 eCornell. All rights reserved. All other copyrights, trademarks, trade names, and logos are the sole property of their respective owners.
CTECH201: Cryptocurrencies and Ledgers
Cornell Tech
After you successfully email your address to your instructor, your instructor will send
you some test Ether within 24 hours. Once your instructor sends you test Ether, you will
see the current Ether value in your wallet. Note that this will not be real Ether and will
not hold real value. However, the app will show you the current dollar value of the test
Ether, so you should expect that number to fluctuate depending on the market value of
Ether. After you receive some test Ether from your instructor, head over to the
discussion board in Module 4 titled “Project Part Two—Sharing Your Wallet Address” to
practice sending some test Ether to a fellow classmate. Note that this final sending of
test Ether to someone else is optional and not required in order for you to successfully
complete this course project.
Option B Instructions:
After clicking the “receive” button, you are shown your address, as seen below.
4
© 2018 eCornell. All rights reserved. All other copyrights, trademarks, trade names, and logos are the sole property of their respective owners.
CTECH201: Cryptocurrencies and Ledgers
Cornell Tech
Imagine that a friend of yours scans this QR code (your address) with their own phone
and initiates the transfer of some Ether. You check back into your wallet and you see
you have some more Ether thanks to your friend’s successful transfer.
5
© 2018 eCornell. All rights reserved. All other copyrights, trademarks, trade names, and logos are the sole property of their respective owners.
CTECH201: Cryptocurrencies and Ledgers
Cornell Tech
Now that you’ve learned the fundamentals of blockchain technology, we would like you
to spend some time devising a new blockchain application. As you learned throughout
this course, blockchain applications extend far beyond cryptocurrency transactions. In
fact, much of the hype surrounding blockchain technology involves its potential
application in every industry in which intermediaries are required to verify transactions.
From using the blockchain to hire talent to reshaping supply chains, the business
opportunities are endless.
6
© 2018 eCornell. All rights reserved. All other copyrights, trademarks, trade names, and logos are the sole property of their respective owners.
CTECH201: Cryptocurrencies and Ledgers
Cornell Tech
company or industry.
Regardless of what you
choose, be sure that your
example is specific
enough so that you can
answer the next question.
Enumerate a list of
message types that would
support your application.
Example: We might
consider a dummy
cryptocurrency that
operates in a simple
account model. This
cryptocurrency would not
have UTXOs. Instead,
each address would have
a simple (positive) balance
associated with it.
Additionally, there
wouldn’t be any coin
generation: The system
could be initialized with
some currency in select
addresses. This
cryptocurrency would
require only a single
message type, Send,
specified as follows:
(Send, senderAddress,
receiverAddress, amount,
senderSignature)
7
© 2018 eCornell. All rights reserved. All other copyrights, trademarks, trade names, and logos are the sole property of their respective owners.
CTECH201: Cryptocurrencies and Ledgers
Cornell Tech
8
© 2018 eCornell. All rights reserved. All other copyrights, trademarks, trade names, and logos are the sole property of their respective owners.