Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blockchain Engineering - class of 2024 #7691

Open
5 tasks
synctext opened this issue Nov 14, 2023 · 1 comment
Open
5 tasks

Blockchain Engineering - class of 2024 #7691

synctext opened this issue Nov 14, 2023 · 1 comment
Assignees

Comments

@synctext
Copy link
Member

synctext commented Nov 14, 2023

Master course - Blockchain Engineering CS4160 (TU Delft)

All organisational matters in one place! Brightspace: enrolment and announcements.

Class schedule

On-campus lectures location: DELFT CAMPUS - Drebbelweg-Instruction Room 4 (35.1.170)

Week Description
3.1 course outline slides and presentation of available projects and formation of teams (each 5 students)
(14Feb) 8:45 - 9:45 : present all available projects
  9:45 - 10:30 : self-organise and form teams of 5 students. Professors available for questions
3.2 Networking foundations for chains (Bulat)
IPv8 simulator
3.3 Introduction to blockchains, Bitcoin, ledger technology, and DAO (slides) by (Can: TU Delft & IOTA Foundation)
  short 10 minute introduction to Superapp (Rowdy)
3.4 Consensus models and algorithms (Jeremie)
3.5 General lessons from 14 years of ledger science experience. Additional detailed reading: IPv8 documentation, the tutorial and Trustchain.
3.6 Who is in Charge: Centralised and decentralised infrastructures (Dr. Leonard, Authority Financial Markets (AFM)) (final class lecture)

Best in-depth scientific overview of "Blockchain Engineering": "Understanding blockchain: definitions, architecture, design, and system comparison"

On-chain democracy

Draft 2024 project: "Blockchain democracy and self-governance". The "Blockchain Engineering" master course experiment we will determine how easy {or hard} it is to create democracy. Anybody using a smartphone can contribute to the deliberation, democratic decision making, and self-governance of the ecosystem. The basic building blocks are "enhancement description", "code specification", "code proposal", "code modification", and "code upgrade".

  • "Blockchain for democracy", design the distributed ledger to support democratic decision making. People vote on new features.
  • Anybody can vote and influence the top proposal

The above idea is divided into 3 projects you can select for this course:

  • Democracy-1: Blockchain networking
    • Replay historical voting rounds on the live network. Emulate 10..50 identities from a single smartphone.
    • Understand and re-use existing ready-to-go datasets with DAO votes.
    • Create transaction blocks within Trustchain in a custom IPv8 community using Kotlin superapp
    • Share votes using a ledger-based gossip protocol
    • Binary transfer of bulk votes using QUIC or uTP.
    • The outcome of your entire project is a single number. Remember, running code is required for a passing grade 💥. Your focus is the amounts of blockchain-data bits you can transfer between two phones.
    • BONUS, add carrier-grade NAT puncturing
  • Democracy-2: Cypto Core
    • Analyse existing running code with multi-sig, taproot, Schnorr signatures, and threshold voting
    • Get existing code running with 4 laptops with Android emulators or real phones. Add new debug dashboard of connected peers with external IPv4, last-response-time, time-outs, new peers discovered, and alerts for incoming packets.
    • Identify the exact location of security vulnerabilities such as lack of message signing, lack of pre-commitment, lack of leader election (or leaderless mode), and lack of FROST-type of security guarantees.
    • FIX and craft hardened code
  • Democracy-3 self-evolving blockchain
    • On-chain kickstarter model for discovery and funding of plugins. Or scientific formulation; engineer a ledger-based system which has an internal competitive market for expansions and mutations
    • Democratic decision process on which mutations are considered good. When approved by threshold voting code is deployed to all users. Bounty is a multi-sig Bitcoin payment for programmers of mutations. This is based on the running code of a shared wallet and collective money.
    • Code and system upgrade using plugins, we have prior permissionless code execution. See running code of Android code which bypasses censorship by the Google Play Store.

  • Re-produce prior efforts and identify exact code location of known problems such as connectivity of peers, DHT lookup, and bulk data transfer.
  • FIX and craft hardened code

idea of auto-signatures when talking to somebody (randevouz). Registry of responsive voters.
Best to have 2+ teams work on 1 topic. Easy to compare results. Less choice (3 sub-projects) versus broad choice (5 sub-projects).

Learning goals of this course.

Student is able to:

  • Engineer systems with core distributed ledger concepts (replication, consensus)
  • Engineer systems with state-of-the-art operational blockchain-based systems
  • Create real-world applications on top of ledger technology.
  • Ability to reason with the open challenges (scalability, ethics, and trust) in distributed ledgers

Grading

The following grading scheme is used. It prepares you for the more complex master thesis grading scheme.

Please circle what is applicable ≤5 (fail) 6 (sufficient) 7 (satisfactory) 8 (good) 9 (very good) 10 (excellent)
Quality of work (50%) No running code. Live demo failed. No test code. Work done is not functional. Minimal running code. No test code. Work done has minimal significance. Work done has some significance. Work has some contribution to the state-of-the-art in ledger science. Work has contributed to the state-of-the-art in ledger science. Work has contributed significantly to the state-of-the-art in ledger science
Quality processes (20%) No unit testing and no stability Minimal unit testing and minimal stability Decent code coverage, stability, and quality assurance Good testing with unit,module, and integration testing. Great test code is the majority of produced code. Excellent test code with excellent quality assurance
Planning (20%) No weekly progress reporting. No compiling code in Week 2. Failing mid-term evaluation. No effective group communication and cooperation minimal progress reporting, compiling code, and group communication. Sufficient progress reporting, compiling code, and group communication. Good progress reporting, compiling code, and group communication.
Documentation (10%) no documentation Minimal documentation Understandable documentation in required format Good documentation for target audience Very good documentation Excellent documentation with in-depth technical and scientific coverage

Starting point for your code

HOMEWORK: get this to compile in Week 2.

@under-tone
Copy link

under-tone commented Feb 1, 2024

Project "health-1"

The European Commission is currently investigating how health data can be used to personalize medicine and improve healthcare innovations. A tremendous amount of medical data is generated. However, because of strict regulations and lack of standardization, many data owners are hesitant to share this data. The European Health Data Space is proposed as a standard for

  1. giving people direct control of their personal data, and
  2. enable health data to be used for research and other purposes.

For this project, you are tasked with creating a blockchain system that enables the 2nd goal. The network, consisting of regulators, medical data providers and research institutions, uses a permissioned blockchain to track queries and their responses. Regulators are tasked with maintaining the blockchain, but do not actively participate in the network otherwise. Medical data providers and research institutions should be able to exchange data and provide proof of these transactions to the blockchain.

During the course, you and your teammates create a blockchain data exchange system based on Hyperledger Fabric. Pair this with a public key infrastructure system for signing and verification of signatures. To realize the data exchange and provide the proof of the transactions, you develop a modular interface/API. Regulators have an interface to add blockchain participants and set permissions. Authenticated researchers have a web interface to see statistical analysis of the data available on the blockchain (i.e., the data is stored on the blockchain). For example, the number of (medical) devices in a certain area, the average age of people using such devices based on a parameter, the access information and so on. The blockchain system should be extendable, for example, such that new data types can be added easily.

This project is supervised by professor Z. Erkin and directly related to ongoing research within the SDSI group. This project will be supported by personnel from the SDSI group, and can be taken by a maximum of two groups.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants