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 2025 #8501

Open
5 tasks
synctext opened this issue Mar 10, 2025 · 0 comments
Open
5 tasks

Blockchain Engineering - class of 2025 #8501

synctext opened this issue Mar 10, 2025 · 0 comments

Comments

@synctext
Copy link
Member

DRAFT: TO BE FINISHED before first lecture: 23 April 2025 8:45am

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 - Mekelweg 4, Building 36, Lecture Hall D@ta (36.HB.01.630)

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.

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

No branches or pull requests

3 participants