Created for the purpose of preparing for the midterm of the 2018 Spring “Blockchain Technologies and Applications” course.
Last modified: 2018.05.04.
Contacts: Imre Kocsis (ikocsis@mit.bme.hu) and Attila Klenik (klenik@mit.bme.hu)
Note: you are not expected to read through all the “suggested readings and sources”. Rather, exactly as the wording says: we suggest that you read these if you want to gain a deeper understanding of the subjects and to use the references as a source for working out the self-assessment questions.
Working out these questions for yourself makes it highly likely that you will be able to pass the mid-term with ease. (Note: the mid-term itself will be naturally in Hungarian; a single choice test format is to be expected.)
Suggested readings and sources
Self-assessment questions
What is a distributed ledger?
A főkönyv nem egy helyen, egy 3. fél által közpintilag van kezelve, hanem minden résztvevőnél van egy példány, amik ~szinkronban vannak egymással
From the point of view of trust, what is the key distinguishing property of Distributed Ledger Technologies (DLT) compared to systems relying on a central party?
Nem kell 3. félben megbízni
What is the relationship between DLTs and Blockchain technologies?
Blockchain technológiák DLT-t használnak
Provide a high level description of the Blockchain data structure!
?
What are the common properties of Blockchain-based DLT technologies?
Elosztott főkönyv - nem módosítható tranzakciós napló, csoportos konszenzus - megbízhatóság, aláírt tranzakciók
What are smart contracts and what is their purpose?
Programozható tranzakciós logika, a főköny állapotának változtatására
What are the three high-level, conceptual phases of transaction processing in a Blockchain-based DLT?
Felhasználói kérés -> konszenzus -> főkönyv frissítés
In what sense are Blockchain-based DLTs similar to classic database replication?
?Konkurens hozzáférés?
What is the expected impact of DLT in the “4th industrial revolution”?
Kulcsfontosságú szerep - Megbízható tranzakció közvetlen 2 vagy több résztvevő közt
Suggested readings and sources
Self-assessment questions
What are the main parts of a Bitcoin transaction? What is an unspent transaction output? (UTXO)?
Verzió | Bemenetek | Kimenetek | Záridő
A címzett által elkölthető (szabály) Satoshi mennyiség
Draw and describe the structure of the transaction graph encoded by the Bitcoin ledger!
TX0: (In0) (Out1) (Out1) / 40k \ 50k TX1: (In0) (Out0) TX2:(In0) (Out0) (Out1) / 30k / 20k \ 20k TX3: (In0) (Out0) TX4: (In0) (Out0) TX5: (In0) (Out0) [UTXO] / 10k / 10k ----------------------------- / / ---------------------------- TX6: (In0) (In1) (Out0) [UTXO]
At the conceptual level - how does public key encryption work?
- Generálunk egy privát és egy hozzá tartozó publikus kulcsot
- A publikus kulcsot megosztjuk
- Az üzenet küldője a publikus kulcs segítségével kódolja az üzenetet
- Elküldi
- A privát kulcs segítségével dekódolható az üzenet
At the conceptual level - how do digital signatures work?
- Generálunk egy privát és egy hozzá tartozó publikus kulcsot
- A publikus kulcsot megosztjuk
- Az üzenetet aláírjuk a privát kulcs segítségével
- Elküldjük az üzenetet
- A publikus kulcs segítségével ellenőrizhető az aláírás 'valódisága'
What is an “address” in Bitcoin?
A publikus kulcs hashe
Describe at a conceptual level that in the simplest Bitcoin transaction type - “paying” to a public key hash - how nodes validate the “right to spend” of the specified inputs.
Describe the steps (rough workflow) of Bob paying an amount of Satoshis to Alice for a product or service!
What do we refer to by saying that transactions in Bitcoin (and Ethereum) are only pseudonymous, but not anonymous?
Bár az összes tranzakció nyilvános, de azokhoz nem köthető egyértelműen személy vagy cég
What is a wallet?
Menedzseli a bitcoin "számlát". Letrehozza (megossza) megossza, elkölthető kimeneteket keres, Tranzakciót készít, aláír, megoszt
What is a transaction fee in Bitcoin? How does it influence the verification time of a transaction submitted to the Bitcoin newtwork?
A blokk létrehozója számára elkülönített összeg, hogy a tranzakció belekerüljön a blokkba. Nagyobb tranzakciós illeték esetén hamarabb bekerül a tranzakció egy blokkba, így hamarabb válik érvényessé az adott tranzakció
Why is it bad practice to “wire back” funds to an address used earlier?
Privát kulcs használata. +Több cím esetén kevésbé köthető egy személyhez vagy céghez.
What is preimage resistance in the context of cryptographic functions? Why is it generally important?
A függvény minden kimenetére igaz, hogy belátható időn belül nem lehet olyan bemenetet találni, amire a függvény ugyanazt a kimenetet adja.
What is preimage resistance in the context of cryptographic functions? Why is it generally important?
-||-
What is the strict avalanche criterion in the context of cryptographic functions?
A bemenet egyetlen bit változása esetén a kimenet minden bitje 50% valószínűséggel változik meg.
What is the cryptographic puzzle that nodes in a Bitcoin network race each other to solve?
Olyan 'Nonce' érték találása, amitől a block header hash kissebb lesz a 'Target' értéknél
What is the economic incentive for nodes to remain honest? Why does it work?
A nyertes (aki először talál megfelelő Nonce értéket), kap Bitcoint
What happens with blocks that are “found”/”closed”?
?? Bekerül a blokkláncba
Why do we call this consensus approach Proof of Work? What does the existence of a “found” block “prove” (in the probabilistic sense)?
Rengeteg felesleges számítást végeznek a varsengés közben.
What is the block time goal in Bitcoin?
1 blokk / 10 perc
Is the evolving chain of blocks in a Bitcoin P2P system strictly a chain? Why?
Nem. Közel egy időben többen is találhatnak megfelelő Nonce-t
Why do we say that transaction finality is probabilistic in Bitcoin? Why is it deterministic in Hyperledger?
Mindig a leghosszabb blokkláncot tekintjük érvényesnek. ??
Is “mining” Bitcoin with off the shelf PCs profitable? Why?
Nem. PC-nek kicsi a számítási teljesítménye.
What is double spending? How does Bitcoin avoid it?
Ugyanannak a pénznek a kétszeres elköltése. A coin újra elkültéséhez a kérdéses blokktól az 'aktuális' blokkig tartó láncnál hosszabb láncot kell létrehozni. Ez ~6 hosszú blokklánc (~1óra) felett közel lehetetlen.
Suggested readings and sources
Self-assessment questions
What is the single biggest innovation of Ethereum over Bitcoin?
Szkriptelés!! Minden jobb ha lehet szkriptelni...
Smart contract
Describe the account model of Ethereum!
Egyenleg fiókhoz,
Külsőleg birtokolt fiók | Szerződéses fiók
Compare it to the account model of Bitcoin! (Trick question...)
Bitcoin account nincs
What is the block time in Ethereum?
15mp
What is the EVM? Why don’t we develop directly for it?
Ethereum virtuális gép. Bytekód. Azért mert nem vagyunk mazochisták
How does the life cycle of an Ethereum smart contract look like?
Kód megírása -> fordítás EVM bytekódra -> feltöltés és futtatás a blokkláncon
What is the difference between “gas” and “ether”? What is their relationship?
Ether a pénz, Gas az belső cucc ...
Describe the smart contract execution workflow of Ethereum step by step!
??
Describe how we can define custom “token” ledgers on top of the Ethereum ledger!
address - uint256 mapping
Does an Ethereum smart contract have to define a token? Why?
Nem? Beépített típus.
What is the ERC20 token standard? Why is it important?
Tokenek implementására szóló standard. Megmondja, hogy a tokenek a címek közt, hogyan kerülnek átvitelre.
Suggested readings and sources
Self-assessment questions
What is the difference between permissioned and unpermissioned Blockchains?
Ki írhatja?
Permissioned: Csak meghatározott résztvevők írhatnak a főkönyvbe
What is the difference between public and consortial/private Blockchains?
Ki olvashatja?
public: bárki olvashatja a főkönyvet
Define key use cases for the 3 “most meaningful” combinations and argue about their rationale!
Public - Permissionless : Bitcoin, Ethereum
Public - Permissioned : Land titles, Medicial records
Private - Permisioned : Trading system
What combinations can be implemented using Ethereum? (Hint: Enterprise Ethereum Alliance, Quorum)
Public - permissioned / permissionless ??
What combinations can be implemented using Hyperledger Fabric? (hint: there’s no native cryptocurrency notion!)
??
For consortial, permissioned Blockchains - why is it not important for the Blockchain technology to possess a native cryptocurrency?
úgyis ismerik egymást ... ??
What can be the main reasons for choosing a consortial, permissioned technology over a public, unpermissioned network for supply chain and asset tracking use cases?
Konkurrencia ne tudja nyomon követni..
Suggested readings and sources
Self-assessment questions
What are “channels” in Hyperledger Fabric?
Biztosítják, hogy csak a résztvevők láthassák a tranzakciót
What are “chaincodes” in Hyperledger Fabric? What is their relationship with channels?
Okos szerződések (smart contract), egy-egy csatornára vannak telepítve
Describe the basic programming model of Hyperledger Fabric chaincodes! (the common properties across the supported languages)
Go, JavaScript (1.1-)
Can we implement a UTXO-style cryptocurrency in Fabric with chaincodes?
Igen, https://github.com/hyperledger-archives/fabric/tree/master/examples/chaincode/go/utxo
And does it make sense to do so? :) Why?
Há'hogyne... Memáméne
Draw/describe the basic relationships of organizations, peers, ledgers and chaincodes in Hyperledger Fabric!
Is the system pseudonymous?
What does it mean that the system implements an “execute-order-validate” architecture? (I.e. describe the key steps of transaction processing and consensus)
Why is this better for the intended usage, than “Proof of Work” (mining)?
Suggested readings and sources
Self-assessment questions
With some exceptions (e.g. Hyperledger Composer), smart contracts in Blockchain platforms don’t support “calling out” to external systems and services from a smart contract execution, as this can lead to consensus failures. Why?
külső hívás eredménye változhat (időzóna, tűzfal, autentikáció); rekurzió
Instead, we generally use so-called oracles. What are these? What trust considerations have to be made?
Kapcsolatot biztosít a valós világ és a blokklánc közt.