You are on page 1of 8

CTECH201: Cryptocurrencies and Ledgers

Cornell Tech

“Cryptocurrencies and Ledgers” Course Project

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.

Part One: Critique a Cryptocurrency


1
© 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

In this part of the course project you will be given a straw man cryptocurrency and
asked to evaluate its merits.

DoubleChainCoin

Consider the following architecture for a cryptocurrency. We’ll call it DoubleChainCoin.


DoubleChainCoin looks just like ChainCoin (the third iteration of our cryptocurrency
design), except that instead of a single authority like Facebuck maintaining the
blockchain, there are two authorities, Facebuck and Moneysoft. To execute a signed
transaction, a user sends it to both parties. Each maintains a distinct blockchain with all
transactions. Now, answer the following questions:

In what way or ways


does DoubleChainCoin
potentially improve upon
ChainCoin?

Using the content


presented in the videos,
explain what technical
problems might arise in
DoubleChainCoin.
Illustrate your concerns
with specific examples
illustrated with
hypothetical transactions
and network events.

Part Two: Sending and Receiving Cryptocurrency


2
© 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

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.

Option A (iOS/Android) Instructions:

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:

Imagine that this is your cryptocurrency wallet. In order to receive cryptocurrency


transfers from other people, you click on the “receive” button.

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.

After completing Option A or Option B above, answer the following questions:

Indicate which key of  


your private / public keys
was used in the receiving
of Ether. Which was used
for someone else (i.e.
your instructor) to send
you some
cryptocurrency? What
role did each key play in
these two operations?

Given your experience of


using a cryptocurrency
wallet, and your
understanding of how
Bitcoin works from the

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

course content, do you


believe Bitcoin as
designed can serve as a
good universal consumer
payment mechanism?
Why or why not?

If your phone went up in


a puff of smoke, you
would use the “seed
words” you wrote down
when generating the
wallet to recover and
spend your
cryptocurrency. What
does that mean the seed
words allow you to do?

Part Three: Devise a Blockchain Application

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.

Take a moment to review the key properties of blockchain technology as presented in


the course, and then answer the following questions:

Briefly describe a potential


application of blockchains
not discussed in the
course. It is recommended
that you think of a
business application
relevant to your own

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.

Given the application you


described above, what
message format might it
have?

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

You can use an analogous


format for your application.
Your application may have
multiple message types,
though.

What rules would


determine whether the
messages for your
application are valid?

For example, in the


dummy cryptocurrency
example above, a “Send”
message would be valid if
the balance of the
senderAddress is greater
than the amount and
senderSignature is a valid
signature on the message
data (Send,
senderAddress,
receiverAddress, amount).

To submit this assignment, please refer to the instructions in the course.

8
© 2018 eCornell. All rights reserved. All other copyrights, trademarks, trade names, and logos are the sole property of their respective owners.

You might also like