Code Monkey home page Code Monkey logo

7570-blockchain's Introduction

Blockchain Data Analytics Course

Fall 2021, University of Manitoba, Canada

Instructor: Cuneyt Gurcan Akcora

Description

Over the last couple of years, Bitcoin cryptocurrency and the Blockchain technology that forms the basis of Bitcoin have witnessed an unprecedented attention. As Blockchain applications proliferate, so does the complexity and volume of data stored by Blockchains. Analyzing this data has emerged as an important research topic, already leading to methodological advancements in the information sciences. Although there is a vast quantity of information available, the consequent challenge is to develop tools and algorithms to analyze the large volumes of user-generated content and transactions on Blockchains, to glean meaningful insights from Blockchain data. The objective of the course is to train students in data collection, cleaning and modeling for Blockchain Data Analytics on public blockchains, such as Bitcoin and Ethereum. We will also cover the Libra blockchain of Facebook.

This class requires some reading. Students will read book chapters, more than 5 research papers, surveys and articles. In addition, there will be a Data Science project where students will implement algorithms. Please make sure that you have given enough thought to these requirements.

Research projects

Students will work on a course-long research project. Each project will be presented in the form of a poster in the last class. The software code will be contributed to the open source Chainoba project on Github.

Expectations and Goals

Students will be able to achieve the following learning objectives at the completion of the course:

  • Learn the history of digital currencies and problems that prevented their adoption. What are the real-life use cases of Blockchain? How Blockchain differs from earlier solutions?
  • Learn the concepts of consensus and proof-of-work in distributed computing to understand and describe how blockchain works.
  • Learn data models for addresses, transactions and blocks in cryptocurrencies and Blockchain platforms.
  • Use Python and R to extract Blockchain blocks and store the transaction network on Bitcoin, Ripple, IOTA and Ethereum Blockchains.
  • Model weighted, directed multi-graph Blockchain networks and use graph mining algorithms to identify influential users and their transactions.
  • Predict cryptocurrency and crypto-asset prices in real time.
  • Extract and mine Smart Contracts on the Ethereum blockchain.

Course Materials

The book "Blockchain: Fundamentals, Data Structures and Algorithms for Data Science (Cambridge University Press)" by Cuneyt Gurcan Akcora, Yulia R. Gel and, Murat Kantarcioglu will be provided in e-copy and used as the course book.

Past research projects 2021

2020

Course Schedule & Readings (in addition to the course book chapters)

Week 1 Networks, linking and consensus

  • Bitcoin's Academic Pedigree, Narayanan.
  • BlockSci: Design and applications of a blockchain analysis platform, Kalodner.
  • Blockchain Consensus Protocols in the Wild, Cachin.

Week 2-3 Bitcoin

  • Bitcoin: A peer-to-peer electronic cash system, Nakamoto.
  • Blockchain: a graph primer, Akcora.
  • Core Concepts, Challenges, and Future Directions in Blockchain: A Centralized Tutorial, Kolb.

Week 4-7 Ethereum

  • Ethereum: A Next-Generation Smart Contract and Decentralized Application platform, Butterin.

Week 8 IOTA, Ripple

  • A Fistful of Bitcoins: Characterizing Payments Among Men with No Names, Meiklejohn.
  • Tracing Transactions Across Cryptocurrency Ledgers, Meiklejohn.

Week 9 Privacy coins, Lightning Network

  • BitcoinHeist: Topological data analysis for ransomware detection on the Bitcoin blockchain, Akcora.

Week 10 Ripple, IOTA

Week 11 Next generation blockchains, security/privacy.

Week 12-13 Project presentations

Grading

15% quizzes, 35% final exam, 15% paper summaries, 35% research project. Grades will be assigned as follows: A+ ≥ 92, A ≥ 85, B+ ≥ 75, C+ ≥ 65, C ≥ 60, D ≥ 50, B ≥ 70, F < 50

Class participation

Course lectures will be driven by the contents of assigned papers. However, students are going to be required to

  1. Turn in a 1 page summary of reading assigned each week
  2. Participate in discussions of the paper content during each class
  3. Write notes synthesizing the content of class for one class.

Hence, the students' ability to exhibit comprehension of papers is essential to a passing grade.

Lateness policy

Late submissions will not be accepted. Students with legitimate reasons who contact the professor before the deadline may apply for an extension.

Academic Integrity

  1. Students are encouraged to discuss course concepts and the general interpretation of project problems with other students in the class.
  2. In the project, any code copied from the Internet must be properly cited in code, and explained in the project report. Code plagiarism without correct attribution must be avoided.
  3. Following conventions for citing reference materials in scientific writing is mandatory. Submitting the work of another person as your own constitutes academic misconduct.
  4. Students are to abide by the university's policies regarding academic dishonesty which can be found on this web site.

7570-blockchain's People

Contributors

cakcora avatar japjeet26 avatar sharm76 avatar wolejri avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.