
Blockchain Technology and Cryptocurrency
Code: 105072Credits: 6
| Degree programme | Type | Course |
|---|---|---|
| Computer Engineering | OP | 4 |
Contact lecturer
- Name :
- Jordi Herrera Joancomarti
- Email :
- jordi.herrera@uab.cat
Teaching staff
- Domènec Madrid Hernández
- Ghazaleh Keshavarzkalhori
Group languages
You can consult this information at the end of the document.
Prerequisites
To take this subject it is necessary to have passed the subjects of Information and Security (IS) and Fundamentals of Information Technology (FTI), which introduces different important concepts to be consolidated to take the subject of TB. Specifically:
- FTI consolidates the knowledge of cryptography that students have acquired in the subject of IS.
- ElGamal's signature algorithm, which is studied at FTI, is the basis of the ECDSA algorithm used in most cryptocurrencies and which is covered in the TBC subject.
- The FTI explains some of the attacks on the poor implementation of digital signature algorithms that can lead to cryptocurrency theft, topics that are covered in the TBC subject.
- FTI explains in detail the operation and properties of hash functions, which are crucial in the implementation and security of blockchain technology.
- The latest topic of FTI is an introduction to blockchain technology and cryptocurrencies. A tasting that serves to give an initial basis with which to work later in the subject TBC.
Objectives
The objectives of this subject are:
- Understand the theoretical concepts of blockchain technology
- Understand how cryptocurrencies work.
- Understand how Bitcoin works, from a technical point of view.
- Understand the concept of smart contract.
- Understand the diference between an UTXO-based blockchain and an account-based blockchain
- Know some of the scalability mechanisms of blockchain technology.
Learning outcomes
- Identify the main attacks that a computer system can receive, as well as the possible protection and detection methods and the application of security policies to avoid damage to the system or minimise the repercussions.
- Design, develop, select and evaluate applications, ensuring their reliability and security.
- Develop a capacity for analysis, synthesis and prospection.
- Work independently.
- Incorporate distributed information treatment systems in an organisation in order to increase operative capacity.
- Design computer solutions that integrate accessibility and security needs in a distributed system.
Contents
- Basic concepts of blockchain technology
- Cryptography basic for blockchain technology
- Bitcoin
- Second layer protocols: Lightning Network
- Ethereum
- Other blockchains
Learning activities and methodology
| Title | Hours | ECTS | Learning outcomes |
|---|---|---|---|
| Practical Lab | 25 | 1 | 2, 4, 5, 6 |
| Practical lab workhome | 25 | 1 | 2, 3, 4, 6 |
| Teorethical Lecture | 25 | 1 | 1, 3, 5 |
| Theoretical lecture study | 37.5 | 1.5 | 1, 3, 4, 5 |
| Help desk | 10 | 0.4 | 1, 2, 3, 5, 6 |
The subject is structured in two-hour sessions with a very dynamic approach where students will be asked to actively participate. The typology of sessions will include more theoretical content and more practical content.
The sessions of more theoretical content will be based on material that the teacher will previously make available to students through the virtual campus. Based on this material, two different types of sessions will be structured. On the one hand, question and answer sessions where students will formulate the doubts that have arisen from the previous work on the material provided. In these sessions, the teacher will also challenge the students to highlight the most relevant aspects of the material being worked on. On the other hand, there will be sessions where students, in groups of two, will present a more detailed study of some of the topics covered in the course.
The most practical content sessions will include both solving questions as exercises and performing more technical tasks where the use of specific tools of the subject will be combined (wallets, blockchain browsers, smart contract compilers , etc.) with the development of specific functions using the Python programming language.
Assessment
Continuous assessment activities
| Title | Weight | Hours | ECTS | Learning outcomes |
|---|---|---|---|---|
| Practical activities | 50 | 12.5 | 0.5 | 1, 2, 3, 4, 5, 6 |
| Participación en clase | 20 | 14 | 0.56 | 1 |
| Oral presentation | 30 | 1 | 0.04 | 1, 2, 3, 4, 5, 6 |
The assessment model for this course will consist entirely of continuous assessment. Given the dynamic nature of the course and the level of engagement expected from students in all class sessions (both the more theoretical and the more practical ones), the instructor will have multiple elements on which to assess students. Active participation in class, including asking the instructor questions and responding to questions from other students or the instructor, will account for 20% of the final course grade. For this reason, class attendance is mandatory.
In addition to the assessment based on class participation, students will also be required to submit several practical assignments that will be proposed throughout the course via the UAB virtual campus. These submissions will complement the student's assessment evidence and will account for 50% of the final course grade.
Furthermore, students (working in pairs) will be required to prepare a course project, which they will present during the theoretical sessions. This presentation will also form part of the assessment evidence and will account for 30% of the final course grade.
To pass the course, students must pass each of the assessable components individually. The assessable components are: class participation, practical assignments, and the project presentation.
Each practical assignment must be passed independently. If a student fails one of the practical assignments, it may only be resubmitted if the original grade was higher than 3.5 out of 10. In that case, the assignment must be resubmitted, and the maximum grade that can be obtained will be 5 out of 10. If the original grade is below 3.5, the assignment cannot be resubmitted.
If the project presentation is not passed, it cannot be retaken.
If the class participation component is not passed, it cannot be recovered.
Once each assessment component (class participation, practical assignments, and project presentation) has been graded, if one of them has not been passed, students will still have the opportunity to pass the course by taking a final oral examination. This final oral examination will account for 80% of the final course grade. The remaining 20%, corresponding to class participation, will be the grade obtained during the semester.
No exemptions or recognition of prior completion of any assessable component will be granted to students repeating the course.
Without prejudice to any other disciplinary measures deemed appropriate, and in accordance with current academic regulations, any irregularities committed by a student that may lead to an alteration of the assessment results will be penalized with a grade of zero (0). Assessment activities graded in this manner will not be eligible for reassessment. If passing any of these assessment activities is required to pass the course, the course will be failed automatically, with no opportunity for reassessment during the same academic year. Such irregularities include, but are not limited to:
- Copying all or part of a practical assignment, report, or any other assessment activity.
- Allowing another student to copy.
- Submitting a group assignment that has not been completed entirely by the members of the group (this penalty applies to all group members, not only to those who did not contribute).
- Unauthorized use of Artificial Intelligence (AI) tools (e.g., Copilot, ChatGPT, or equivalent systems) to solve exercises, practical assignments, or any other assessable activity.
- Submitting as one's own work materials produced by a third party, including translations or adaptations, or, in general, work containing elements that are not original and exclusively produced by the student.
In summary: copying, allowing others to copy, plagiarism, or attempting any of these in any assessment activity will result in a FAIL for the course component, which cannot be compensated for or validated in future academic years.
This course establishes a restricted-use policy regarding Artificial Intelligence (AI) technologies. AI tools may only be used for support tasks, such as literature or information searches, text proofreading, translations, or consulting documentation on software functions or libraries. However, the use of AI to generate the complete solution to a practical assignment, or to write complete functions or substantial code fragments, is not permitted. Students must clearly identify any parts generated using AI technologies and specify the tools used. Failure to disclose the use of AI in an assessable activity will be considered academic misconduct and may result in a partial or total reduction of the grade for that activity, or more severe disciplinary measures in serious cases.
Students who obtain the minimum number of points required to pass the course overall but fail to achieve the minimum required grade in one of the assessment components will receive a final course grade of 4.5 out of 10. If the course is failed because a student receives a zero on an assessment due to academic dishonesty, the final course grade will be 3 out of 10, which cannot be compensated.
Students who do not submit any of the proposed practical assignments will receive the final grade of "Not Assessed". Submission of any assessment activity will result in a grade other than "Not Assessed."
No assessment activity will be rescheduled for a student unless there is a justified reason, the student has informed the instructor before the scheduled activity, and the instructor has given prior approval. In all other cases, if a student misses an assessment activity, it cannot be retaken. The "Request for Rescheduling Assessment Activities" protocol is available on the School of Engineering website and applies to the cases described in the School's assessment criteria and regulations.
Regarding Honours Distinction (Matrícula de Honor), it may be awarded to students who obtain a final course grade of 9.0 or higher. Since the number of honours distinctions cannot exceed 5% of enrolled students, they will be awarded to those with the highest final grades. In the event of a tie, students may be required to take an oral examination to determine the final ranking.
This course does not offer the single assessment option.
Bibliography
- Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder. Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction. Princeton University Press (2016). ISBN: 978-0691171692
- Andreas M. Antonopoulos, Mastering Bitcoin: Programming the Open Blockchain. O'Reilly Media; 3d Edition. (2023) ISBN: 978-1098150099
- Andreas M. Antonopoulos y Gavin Wood, Mastering Ethereum: Building Smart Contracts and DApps. O'Reilly Media. (2018) ISBN: 978-1491971949
- C. Pérez Solà i J. Herrera Joancomartí, La criptografia que et cal saber. (2023) Disponible on-line: https://criptografia.cat/
- Kalle Rosenbaum, Grokking Bitcoin. Manning Publications (2019) ISBN 9781617294648
- Roger Wattenhofer. Blockchain Science: Distributed Ledger Technology.Inverted Forest Publishing; 3rd Edition (2019) ISBN: 978-1793471734
- Andreas Antonopoulos, Olaoluwa Osuntokun, René Pickhardt. Mastering the Lightning Network: A Second Layer Blockchain Protocol for Instant Bitcoin Payments. O'Reilly Media; 1st edition (January 4, 2022) ISBN: 978-1492054863
Software
The most practical content sessions will include both solving questions as exercises and performing more technical tasks where the use of specific tools of the subject will be combined (wallets, blockchain browsers, smart contract compilers , etc.) with the development of specific functions using the Python programming language.
Course groups and languages
The information provided is provisional until November 30. After this date, you will be able to consult the language of each group through this link. To access the information, you will need to enter the course CODE
| Type of teaching | Group | Language | Semester | Shift |
|---|---|---|---|---|
| (PAUL) Classroom practices | 450 | Catalan | first semester | morning-mixed |