Hands-on Python exercises for practical learning.
Clear explanations of core blockchain principles.
- Introduction to Blockchain â Understanding the origins, principles, and impact of blockchain technology.
- Blockchain as a Data Structure â Exploring how transactions are stored, linked, and verified through cryptographic hashing.
- Consensus Algorithms â Studying how networks achieve agreement using Proof-of-Work (PoW), Proof-of-Stake (PoS), and other mechanisms.
- Nodes & Network Architecture â Learning how blockchain networks are structured and how nodes maintain the distributed ledger.
- Smart Contracts â Implementing self-executing contracts that automate trustless agreements.
- 1982
- 1995
- 2008
- 2015
Réponse: 1
Pourquoi ?
La premiĂšre mention d'un concept de blockchain remonte Ă 1982, dans une thĂšse de David Chaum sur les bases de donnĂ©es sĂ©curisĂ©es. Ce nâest quâen 2008 que Satoshi Nakamoto a proposĂ© le Bitcoin, qui a utilisĂ© la premiĂšre implĂ©mentation rĂ©elle dâune blockchain. Les autres dates ne correspondent pas Ă l'invention du concept.
- Oui
- Non
Réponse: 2
Pourquoi ?
Les transactions Bitcoin ne sont pas anonymes mais pseudonymes. Elles sont publiquement visibles sur la blockchain et associĂ©es Ă des adresses, ce qui permet de retracer lâhistorique des transactions. Avec des analyses avancĂ©es, il est possible dâidentifier les utilisateurs.
- 1
- 24%
- 33%
- 49%
- 66%
- 74%
Réponse: 3 et 4
Pourquoi ?
Dans le problĂšme des gĂ©nĂ©raux byzantins, une blockchain tolĂšre jusqu'Ă 1/3 (â33%) de nĆuds malveillants dans un consensus Byzantine Fault Tolerant (BFT). Pour les blockchains basĂ©es sur le Proof-of-Work (PoW), un attaquant doit contrĂŽler plus de 50% (donc 49% est encore sĂ»r) du rĂ©seau pour compromettre la sĂ©curitĂ©.
- Immutabilité
- Sécurité
- Centralisation de l'autorité
- Anonymat
- Adaptabilité
- Automatisation
Réponse: 1, 2, 5, 6
Pourquoi ?
- ImmutabilitĂ© : Une fois une transaction enregistrĂ©e, elle ne peut pas ĂȘtre modifiĂ©e.
- Sécurité : Grùce au chiffrement et aux mécanismes de consensus, la blockchain est sécurisée.
- AdaptabilitĂ© : Les blockchains Ă©voluent et sâadaptent Ă diffĂ©rents cas dâusage.
- Automatisation : Les smart contracts permettent dâexĂ©cuter automatiquement des actions.
Les mauvaises réponses :
- Centralisation de l'autorité : Faux, la blockchain est décentralisée.
- Anonymat : Faux, elle est pseudonyme (les transactions sont publiques).
- 10 euros
- 50 centimes
- 7500 euros
- Rien car c'est de la pure spéculation
Réponse: 2
Pourquoi ?
En 2010, le Bitcoin valait moins d'un centime d'euro. 200 BTC avaient donc une valeur extrĂȘmement faible, environ 50 centimes.
- Au maximum 1/2 patriotes
- Au maximum 3/4 patriotes
- Au maximum 1/3 traĂźtres
- Au maximum 1/2 traĂźtres
Réponse: 3
Pourquoi ?
Le problĂšme des gĂ©nĂ©raux byzantins Ă©tablit quâun systĂšme peut tolĂ©rer jusquâĂ 1/3 de traĂźtres tout en garantissant un consensus correct. Si le nombre de traĂźtres dĂ©passe 33%, il devient impossible dâassurer un consensus fiable.
Si une blockchain tourne sur 100 machines dont 3 frauduleuses, combien de machines faut-il détruire au minimum pour altérer la blockchain ?
- 95
- 6
- 51
- 91
Réponse: 1
Pourquoi ?
Pour prendre le contrÎle du réseau, un attaquant doit posséder plus de 50% des machines. Ici, il faudrait donc détruire 95 machines, laissant ainsi 5 machines actives, dont 3 frauduleuses, ce qui donne une majorité malveillante.
- Les restes de la veille
- Des transactions
- Des jeux vidéos
- Les photos de la derniÚre soirée
Réponse: 2, 3, 4
Pourquoi ?
Une blockchain peut stocker des transactions financiĂšres, des applications dĂ©centralisĂ©es (dont des jeux vidĂ©o) et mĂȘme des fichiers multimĂ©dias comme des images.
- Le client
- L'autorité de signature
- Le marchand
- Un observateur de la transaction
Réponse: 3, 4
Pourquoi ?
La signature aveugle permet dâauthentifier une transaction sans rĂ©vĂ©ler lâidentitĂ© du client. Seuls l'autoritĂ© signataire et le client connaissent lâidentitĂ©, mais le marchand et les observateurs ne la voient pas.
- A microprocessor
- A Data structure
- A software
- A cryptocurrency
Réponse: 2
Pourquoi ?
Une blockchain est une structure de donnĂ©es qui enregistre des blocs de transactions liĂ©s cryptographiquement. Elle n'est ni un microprocesseur, ni un logiciel en soi, ni une cryptomonnaie (Bitcoin est une cryptomonnaie, mais pas la blockchain elle-mĂȘme).
- A barcode
- A hand signature
- A coffee stain
- A bit of wax hit by your family's treasured ring
Réponse: 1, 2, 4
Pourquoi ?
- Un code-barres peut ĂȘtre utilisĂ© pour vĂ©rifier l'authenticitĂ© dâun document, car il contient des informations vĂ©rifiables.
- Une signature manuscrite est une méthode reconnue légalement pour valider des documents.
- Un sceau en cire était historiquement utilisé pour authentifier des documents officiels.
Les fausses réponses :
- Une tache de cafĂ© ne suit aucun protocole dâauthentification et ne prouve rien.
- His/her statement
- His/her handwriting
- His/her blood
- His/her name
Réponse: 3, 4
Pourquoi ?
- Le nom est essentiel pour qu'un certificat puisse ĂȘtre associĂ© Ă une personne spĂ©cifique. Sans ce nom, le certificat ne peut pas ĂȘtre attribuĂ© Ă un individu prĂ©cis.
- Le sang peut ĂȘtre utilisĂ© dans des mĂ©thodes biomĂ©triques d'authentification ultra-sĂ©curisĂ©es, car l'ADN contenu dans le sang est unique Ă chaque individu. Cela garantit une identification fiable.
Pourquoi les autres réponses sont fausses ?
- La dĂ©claration (statement) nâa aucune valeur dâauthentification, car une simple dĂ©claration verbale ou Ă©crite ne prouve pas lâidentitĂ© de quelqu'un de maniĂšre vĂ©rifiable.
- L'Ă©criture manuscrite (handwriting) peut ĂȘtre imitĂ©e ou falsifiĂ©e, ce qui la rend insuffisante pour garantir l'authenticitĂ© dâun certificat. Contrairement au sang ou Ă une clĂ© cryptographique, lâĂ©criture ne fournit pas un identifiant unique et infalsifiable.
The representation of 47 in base 4 is:
- 301
- 233
- 11
- 434
- 323
Reponse: 2
Pourquoi: 233 = 2*4^2 + 3*4^1 + 3*4^0 = 47
In the assignment 1 hashing, which line causes the one-way characteristic?
output += ord(characters)output ^= (output * 31)output %= 2**32- the integer limit
Reponse: 2
Pourquoi avec un exemple concret:
Prenons une valeur initiale :
output = 10
character = 'A' # 'A' a une valeur ASCII de 65Regardons ce que chaque ligne ferait :
-
output += ord(character)output = 10 + 65 = 75- â RĂ©versible : On peut simplement soustraire 65 pour retrouver l'entrĂ©e.
-
output ^= (output * 31)(Bonne réponse)output = 10 ^ (10 * 31) = 10 ^ 310- Convertissons en binaire :
- 10 = 00001010
- 310 = 100110110
- XOR = 100100100 (292 en décimal)
- đ« IrrĂ©versible : Le XOR mĂ©lange les bits, rendant impossible de retrouver 10 juste avec 292. Chaque petit changement en entrĂ©e donne une sortie complĂštement diffĂ©rente (effet avalanche).
-
output %= 2**32- Si
outputdĂ©passe 2^32, on prend le reste de la division. - â Ce n'est pas un effet "one-way", juste une limitation de taille.
- Si
-
the integer limit
- â Ne change pas directement la propriĂ©tĂ© de hachage, c'est juste une contrainte mĂ©moire.
Which way interests us most?
- The private key encrypts, the public key decrypts
- The public key encrypts, the private key decrypts
Reponse: 1
Pourquoi ?
Dans la signature numĂ©rique, la clĂ© privĂ©e chiffre (signer) et la clĂ© publique dĂ©chiffre (vĂ©rifier). Cela permet Ă tout le monde de vĂ©rifier quâune signature vient bien du propriĂ©taire de la clĂ© privĂ©e.
Pourquoi la réponse 2 est fausse ?
Si la clĂ© publique chiffrait, tout le monde pourrait chiffrer un message et seul le propriĂ©taire de la clĂ© privĂ©e pourrait le lire. Câest le cas du chiffrement asymĂ©trique utilisĂ© pour sĂ©curiser les messages, mais pas pour la signature numĂ©rique.
Among the following, which ones should better be added to the payload?
- The recipient
- The signature date
- A link to another certificate
- The length of a document stored inside the certificate
Reponse: 1, 3
Pourquoi ?
Le destinataire (recipient) est important car il indique Ă qui est destinĂ© le certificat. Un lien vers un autre certificat permet dâassurer une continuitĂ© et de valider des rĂ©fĂ©rences.
Pourquoi les autres réponses sont fausses ?
La date de signature peut ĂȘtre importante, mais elle est souvent stockĂ©e ailleurs (mĂ©tadonnĂ©es). La longueur du document est inutile car elle ne change pas la validitĂ© du certificat.
If Charlie wants the blockchain to be valid again, what can he do?
- add useless data in the tampered block and get lucky
- change the parent property of next block
- change the parent property of all next blocks
- Sign it
Reponse: 1, 3
Pourquoi ?
Ajouter des donnĂ©es et recalculer le hash peut, par chance, recrĂ©er une validitĂ©, mais c'est improbable. Changer tous les blocs suivants permet de reconstruire une chaĂźne valide en manipulant lâhistorique.
Pourquoi les autres réponses sont fausses ?
Modifier uniquement le parent du bloc suivant ne suffit pas, car le hash du bloc actuel est basé sur les précédents. Signer ne rend pas le bloc valide si ses données sont déjà corrompues.
What means can store a wallet?
- .py file
- Exchange website (Binance, Coinbase,...)
- A post-it
- Your brain
Reponse: 1, 2, 3, 4
Pourquoi ?
Un fichier .py peut contenir une clé privée. Un exchange (Binance, etc.) stocke les wallets numériques. Un post-it peut contenir la phrase de récupération du wallet. Un cerveau peut mémoriser une phrase mnémonique pour restaurer un wallet.
If I get one of Alice's certificate, change its issuer to my public key and I sign it. Is it authentic?
- Yes
- No
Reponse: 1
Pourquoi ?
En remplaçant l'Ă©metteur et en le signant avec une nouvelle clĂ© privĂ©e, le certificat devient valide sous cette nouvelle identitĂ©. Ce nâest plus lâoriginal, mais il est bien authentique pour la nouvelle signature.
I received the hash of a certificate. Using this hash I can get:
- its issuer
- its signature
- its creation date
- whether this certificate is identical to another one
Reponse: 4
Pourquoi ?
Un hash permet uniquement de vérifier si deux certificats sont identiques, car le hash est unique pour chaque document.
Pourquoi les autres réponses sont fausses ?
L'émetteur, la signature et la date ne sont pas stockés dans le hash, seul un résumé du contenu est généré.
I share my RSA private keys with my parents. They can:
- sign certificates as me
- retrieve "p" and "q" that were used to generate it
- Change a certificate I put yesterday in the blockchain
- Verify that I signed some certificate
Reponse: 1, 4
Pourquoi ?
La clé privée permet de signer des documents : si vos parents la possÚdent, ils peuvent se faire passer pour vous et signer en votre nom. Ils peuvent aussi vérifier vos signatures, car ils ont votre clé privée et peuvent recalculer les valeurs pour voir si elles correspondent.
Pourquoi les autres réponses sont fausses ?
Ils ne peuvent pas retrouver "p" et "q" : ces valeurs ont été utilisées pour générer la clé, mais une fois la clé privée créée, elles ne sont plus accessibles. Ils ne peuvent pas modifier un certificat déjà sur la blockchain, car celle-ci est immuable.
The black hole...:
- can sign certificates
- can receive bitcoins
- can check that a signature is authentic
- owns a public key
Reponse: 2, 4
Pourquoi ?
Un "black hole" est une adresse oĂč l'on peut envoyer des bitcoins, mais sans clĂ© privĂ©e pour les rĂ©cupĂ©rer, donc ils sont perdus Ă jamais. Toute adresse possĂšde une clĂ© publique associĂ©e, mĂȘme si elle nâa pas de clĂ© privĂ©e accessible.
Pourquoi les autres réponses sont fausses ?
Le "black hole" ne peut pas signer de certificats, car il ne possĂšde pas de clĂ© privĂ©e associĂ©e. Il ne peut pas vĂ©rifier des signatures, car ce nâest quâune adresse, pas un systĂšme de validation.
The blockchain police shows me a certificate with my name on it, my signature and some data, because they suspect a fraud. What information can I provide them to show that it is legit?
- My private key
- The signature date
- Give them money to leave
- Nothing
Réponse: 4
Pourquoi ?
Une signature numĂ©rique est vĂ©rifiable publiquement avec une clĂ© publique. Vous nâavez rien Ă prouver : il suffit quâils vĂ©rifient la signature eux-mĂȘmes.
Pourquoi les autres réponses sont fausses ?
Donner votre clĂ© privĂ©e est dangereux, car elle permettrait de voler votre identitĂ© numĂ©rique. La date de signature nâest pas suffisante pour prouver lâauthenticitĂ©. Tenter de les corrompre est illĂ©gal (et ne garantit pas quâils arrĂȘteront leur enquĂȘte).
If anyone can add blocks to the blockchain, which of these properties becomes invalid?
- Immutability
- Decentralization
- Resilience
- Anonymity
Réponse: 1, 3
Pourquoi ?
LâimmuabilitĂ© est brisĂ©e, car si tout le monde peut ajouter des blocs sans restriction, un attaquant pourrait modifier la chaĂźne Ă sa guise. La rĂ©silience (capacitĂ© de rĂ©sistance) est compromise, car sans contrĂŽle, le rĂ©seau pourrait ĂȘtre facilement perturbĂ© par des ajouts frauduleux.
Pourquoi les autres réponses sont fausses ?
La dĂ©centralisation ne change pas, car cela dĂ©pend de la gouvernance du rĂ©seau, pas du fait que tout le monde puisse ajouter des blocs. Lâanonymat reste prĂ©servĂ©, car mĂȘme si nâimporte qui peut Ă©crire dans la blockchain, cela ne signifie pas que les identitĂ©s sont exposĂ©es.
I am mining bitcoin. In what order do I need to try nonces to maximize my chances?
- In ascending order (0, 1, âŠ)
- In descending order (2^32, 2^32-1, âŠ)
- Doesnât matter
- Other (community is sharing algorithms everyday)
Réponse: 3
Pourquoi ?
Le minage est une recherche alĂ©atoire : lâordre dans lequel les nonces sont testĂ©s nâa aucun impact sur les chances de succĂšs. Les mineurs utilisent des algorithmes optimisĂ©s qui ne suivent pas nĂ©cessairement un ordre strict (ascending ou descending).
Pourquoi les autres réponses sont fausses ?
Essayer en ordre croissant ou décroissant ne change rien, car le hash est imprévisible. La communauté partage des algorithmes, mais cela ne garantit pas un ordre optimal unique.
Using a 51% attack, what can the attacker do?
- Create bitcoins
- Cancel transactions
- Blacklist people
- Steal bitcoins
Réponse: 2, 3
Pourquoi ?
Un attaquant contrĂŽlant plus de 50% du rĂ©seau peut rĂ©organiser la blockchain, annulant des transactions passĂ©es (double dĂ©pense). Il peut censurer certaines transactions et empĂȘcher certaines adresses dâenvoyer ou recevoir des fonds (blacklistage).
Pourquoi les autres réponses sont fausses ?
Il ne peut pas crĂ©er de nouveaux bitcoins, car lâĂ©mission est contrĂŽlĂ©e par le protocole. Il ne peut pas voler directement des bitcoins, sauf sâil annule des transactions aprĂšs quâelles ont Ă©tĂ© confirmĂ©es.
Which of the following concepts are deterministic?
- The validity of a signature
- The shape of a coffee stain on paper
- The sentence for a crime
- The results of presidential elections
Réponse: 1, 2, 3, 4
Pourquoi ?
Une signature est dĂ©terministe : une signature donnĂ©e pour un mĂȘme message est toujours vĂ©rifiable. La forme d'une tache de cafĂ© est dĂ©terminĂ©e par les lois de la physique, donc mĂȘme si elle semble alĂ©atoire, elle est en rĂ©alitĂ© dĂ©terminĂ©e par des facteurs physiques prĂ©cis. Une sentence pour un crime suit un cadre juridique dĂ©fini, donc elle est prĂ©dictible dans un systĂšme lĂ©gal structurĂ©. Les rĂ©sultats dâĂ©lections sont dĂ©terminĂ©s par les votes, mĂȘme si influencĂ©s par de nombreux facteurs.
"The forger is always Alice" is a consensus algorithm
- Yes
- No
Réponse: 1
Pourquoi ?
Un consensus algorithmique est un ensemble de rĂšgles dĂ©finissant qui peut ajouter un bloc Ă la blockchain. Dire quâAlice est toujours la forgeron est une rĂšgle simple (mĂȘme si trĂšs mauvaise !), donc câest bien un algorithme de consensus, mĂȘme sâil ne respecte pas lâidĂ©e de dĂ©centralisation.
Pourquoi la réponse "No" est fausse ?
Ce nâest pas un bon algorithme, mais câest quand mĂȘme un algorithme : il y a une rĂšgle claire qui permet de dĂ©signer le forgeron.
The hash of latest block is 42. Which of those 4 tickets (whose hash is given) is the big winner of Proof-of-Stake?
- -35
- 120
- 4782374
- 420
Réponse: 1
Pourquoi ?
Dans PoS, le gagnant est gĂ©nĂ©ralement dĂ©terminĂ© par une rĂšgle oĂč le hash dâun ticket est comparĂ© Ă celui du dernier bloc. Le plus proche du hash prĂ©cĂ©dent (42) est -35.
Pourquoi les autres réponses sont fausses ?
120, 4782374, et 420 sont plus éloignés de 42 que -35, donc ils ne sont pas choisis.
In Proof-of-Stake (PoS) can I at any point know how many tokens I should have staked to be guaranteed to be the next forger?
- Yes
- No
Réponse : 1
Pourquoi ? PoS fonctionne gĂ©nĂ©ralement en choisissant un forgeron en fonction du nombre de tokens mis en jeu. Si une personne dĂ©tient suffisamment de tokens, elle peut sâassurer dâĂȘtre sĂ©lectionnĂ©e en contrĂŽlant une part majoritaire du rĂ©seau.
Pourquoi la rĂ©ponse "No" est fausse ? PoS est basĂ© sur des probabilitĂ©s pondĂ©rĂ©es par les tokens stakĂ©s, donc avec assez de tokens, on peut garantir dâĂȘtre choisi.
Delphine and Bob find at the same time a valid nonce for next block. Who wins?
- The one who has more zeros
- Both until some point
- The eldest on the blockchain
- The richest
Réponse : 2
Pourquoi ? Lorsquâun fork temporaire se produit (deux blocs valides trouvĂ©s en mĂȘme temps), les deux coexistent jusquâĂ ce quâun autre bloc vienne les dĂ©partager. Le rĂ©seau suit la chaĂźne la plus longue (celle qui accumule le plus de travail), donc au bout dâun certain temps, un des deux blocs sera abandonnĂ©.
Pourquoi les autres réponses sont fausses ?
- Avoir plus de zĂ©ros ne garantit pas dâĂȘtre sĂ©lectionnĂ©.
- LâanciennetĂ© nâa pas dâimpact sur qui gagne.
- La richesse ne joue pas de rĂŽle en Proof-of-Work (PoW).
In a PoW (Proof-of-Work) blockchain, which is true?
- There is a good chance we have two blocks with the same hash in the blockchain
- The more zeros there is in the hash, the better the reward
- There can be blocks with no certificates in it
- In some rare cases (excluding 51% attacks), transactions can be canceled
Réponse : 3, 4
Pourquoi ?
- (3) "Il peut y avoir des blocs sans certificats" : Un bloc contient des transactions, mais il peut arriver qu'un bloc soit vide (sans transactions). Cela arrive si un mineur trouve un bloc trĂšs rapidement aprĂšs le prĂ©cĂ©dent et quâaucune transaction nâa encore Ă©tĂ© ajoutĂ©e au mempool. Cela ne compromet pas la validitĂ© du bloc, car ce qui compte, c'est qu'il respecte les rĂšgles de la blockchain (ex : bonne structure, bon hash, etc.).
- (4) "Des transactions peuvent ĂȘtre annulĂ©es dans certains cas" : Parfois, une transaction peut ĂȘtre annulĂ©e si elle fait partie dâun bloc qui devient orphelin. Un bloc est "orphelin" si un autre mineur a trouvĂ© un autre bloc valide en mĂȘme temps, et que le rĂ©seau dĂ©cide de suivre lâautre chaĂźne plus longue. Les transactions du bloc abandonnĂ© retournent dans le mempool et doivent ĂȘtre incluses dans un autre bloc.
Pourquoi les autres réponses sont fausses ?
- (1) "Deux blocs peuvent avoir le mĂȘme hash" : Faux, car un bon algorithme de hachage comme SHA-256 rend extrĂȘmement improbable la gĂ©nĂ©ration de deux blocs ayant exactement le mĂȘme hash. MĂȘme une petite modification dans un bloc change totalement son hash (effet avalanche).
- (2) "Plus il y a de zéros dans le hash, meilleure est la récompense" : Faux, le nombre de zéros dans le hash indique la difficulté de minage, mais la récompense est fixée par le protocole (ex : 6.25 BTC pour un bloc Bitcoin actuellement). Avoir un hash plus difficile ne donne pas une meilleure récompense, cela rend juste le minage plus long.
Calculating the hash of a block requires 1 second. If the current PoW difficulty is 2 zeros, how much time in average is needed to forge a block?
- 16 seconds
- 104 seconds
- 128 seconds
- 178 seconds
- 256 seconds
Réponse : 4
Pourquoi ? Dans Proof-of-Work (PoW), un mineur doit trouver un hash qui commence par un certain nombre de zĂ©ros en notation hexadĂ©cimale (ex : 00xxxx...). Chaque chiffre en hexadĂ©cimal (0-9 et A-F) a 16 valeurs possibles. Si on veut 2 zĂ©ros au dĂ©but, cela signifie que les deux premiers chiffres hexadĂ©cimaux doivent ĂȘtre "00".
ProbabilitĂ© d'obtenir un hash valide : La probabilitĂ© quâun seul chiffre hexadĂ©cimal soit 0 est : 1/16. La probabilitĂ© que les deux premiers chiffres soient "00" est donc : 1/16 Ă 1/16 = 1/256.
Temps moyen pour trouver un hash valide : Si on gĂ©nĂšre un hash par seconde, alors en moyenne, il faudra 256 essais pour trouver un hash correct. Mais en pratique, la premiĂšre solution peut ĂȘtre trouvĂ©e avant dâavoir testĂ© toutes les possibilitĂ©s. Le temps moyen suit une loi exponentielle, et la mĂ©diane est obtenue avec la formule : (255/256)đĄ = 0.5. En rĂ©solvant cette Ă©quation logarithmique, on obtient 178 secondes en moyenne pour qu'un mineur trouve un bloc valide.
Do people need to communicate to choose next forger?
- Yes
- No
Réponse : 2
Pourquoi ? Dans PoW, il nây a pas besoin de communication directe pour Ă©lire le prochain mineur. Chaque mineur travaille seul sur un problĂšme cryptographique, et celui qui trouve la solution en premier envoie son bloc au rĂ©seau. Tous les nĆuds vĂ©rifient indĂ©pendamment que ce bloc est valide, sans besoin de concertation.
Pourquoi la rĂ©ponse "Yes" est fausse ? Contrairement Ă PoS (Proof-of-Stake) oĂč un validateur est choisi, ici câest une compĂ©tition ouverte oĂč tout le monde essaie de trouver la solution le plus vite possible. Aucun vote, aucun message entre les mineurs nâest nĂ©cessaire pour dĂ©cider du gagnant. C'est juste une course mathĂ©matique.
On a new blockchain, Alice is the default forger. Bob decides to stake 1, Charlie 2 and Delphine 3. Who is the likeliest forger for block 1?
- Alice
- Bob
- Charlie
- Delphine
- Everyone
Réponse : 1
Pourquoi ? Dans certaines blockchains, le premier bloc (genesis block) est toujours forgĂ© par un compte par dĂ©faut (ici Alice). Les mises (stakes) des autres participants ne sont prises en compte quâaprĂšs ce premier bloc.
Pourquoi les autres rĂ©ponses sont fausses ? Bob, Charlie et Delphine ne peuvent pas ĂȘtre sĂ©lectionnĂ©s pour le premier bloc car leurs stakes ne comptent pas encore.
Which of the following systems are decentralized?
- Sending/receiving parcels
- Gossips
- An election
- An epidemic
Réponse : 2, 4
Pourquoi ?
- Les rumeurs (gossips) se propagent sans un point central de contrÎle, donc c'est un réseau décentralisé.
- Une épidémie se propage aussi de maniÚre décentralisée, par interactions locales.
Pourquoi les autres réponses sont fausses ?
- Lâenvoi de colis dĂ©pend de services centralisĂ©s (ex : La Poste, FedEx).
- Une élection est généralement organisée par un gouvernement ou une institution centrale.
How could you know in advance that a file was not fraudulent?
- Its title is right
- Its file extension is right
- It comes from the right IP address
- By downloading it from multiple sources
- There is no guarantee
Réponse : 5
Pourquoi ? Aucune de ces mĂ©thodes ne garantit Ă 100% quâun fichier est lĂ©gitime. Un titre ou une extension peuvent ĂȘtre falsifiĂ©s. Un fichier peut provenir dâune IP lĂ©gitime mais ĂȘtre compromis. TĂ©lĂ©charger depuis plusieurs sources ne prouve pas que le fichier est authentique.
Is it mandatory to keep a full copy of the blockchain to be a validator?
- Yes
- No
Réponse : 2
Pourquoi ? Un validateur dans un rĂ©seau Proof-of-Stake (PoS) ou mĂȘme Proof-of-Work (PoW) nâa pas nĂ©cessairement besoin dâavoir une copie complĂšte de la blockchain. Un validateur peut fonctionner avec une version "light" de la blockchain qui ne conserve que les headers des blocs et les informations nĂ©cessaires Ă la validation des transactions. Des nĆuds "light" (clients lĂ©gers) permettent dâĂ©conomiser du stockage tout en participant Ă la validation.
Pourquoi la réponse "Yes" est fausse ? Seuls les "full nodes" conservent toute la blockchain, mais un validateur peut utiliser un "light client" qui se connecte aux full nodes pour vérifier les blocs sans les stocker entiÚrement.
Alice owns no node/validator. Can she stake?
- Yes
- No
Réponse : 1
Pourquoi ? Dans un systĂšme Proof-of-Stake (PoS), il est possible de staker ses tokens sans possĂ©der de nĆud complet. Alice peut dĂ©lĂ©guer ses tokens Ă un validateur existant (exemple : sur Ethereum 2.0, Cardano, Solana). Cela permet aux petits investisseurs de participer Ă la sĂ©curisation du rĂ©seau sans avoir dâinfrastructure technique.
Among the following tests, which are mandatory for validating a block sent by another node?
- All of its certificates are more recent than any other in previous blocks
- Its forger is right
- All of its certificates are unique
- The sending node never failed me
Réponse : 2, 3
Pourquoi ?
- (2) "Its forger is right" : Un bloc doit ĂȘtre signĂ© par un forgeron valide (câest-Ă -dire un mineur en PoW ou un validateur en PoS). Si le forgeron nâa pas Ă©tĂ© Ă©lu par le protocole, le bloc est invalide.
- (3) "All of its certificates are unique" : Chaque certificat (transaction, signature) doit ĂȘtre unique pour Ă©viter les doublons et les fraudes (comme la double dĂ©pense).
Pourquoi les autres réponses sont fausses ?
- (1) "All of its certificates are more recent than any other in previous blocks" : Faux, car un bloc peut contenir des transactions plus anciennes qui nâont pas encore Ă©tĂ© confirmĂ©es. Lâordre exact des transactions nâa pas besoin dâĂȘtre strictement chronologique.
- (4) "The sending node never failed me" : Faux, car la validation dâun bloc repose sur les rĂšgles cryptographiques et non sur la "confiance" envers un nĆud.
In a fully decentralized network, where all machines are connected to all other machines, which mathematical function describes the growth of the amount of connections in total?
- N
- NÂČ
- N^3
- 2^N
- N!
Réponse : 2
Pourquoi ? Dans un rĂ©seau totalement connectĂ©, chaque machine est connectĂ©e Ă toutes les autres. Le nombre total de connexions possibles dans un rĂ©seau complet est donnĂ© par la formule des combinaisons : đ¶(đ,2) = đ(đâ1)/2 â đÂČ. Cela signifie que si N machines sont prĂ©sentes, le nombre de connexions croĂźt proportionnellement Ă NÂČ.
In the following network, 1 connected to 2,3 2 connected to 1,3,4,5 3 connected to 1,2,4 4 connected to 2,3 5 connected to 2 every connection works and needs 1 second to send data. Alice inputs a certificate on node 1. How much time passes before Alice can be sure it is going to be in the next block?
- 1 second
- 2 seconds
- 3 seconds
- 4 seconds
Réponse : 2
Pourquoi ? Chaque connexion prend 1 seconde pour transmettre lâinformation.
Propagation des données dans le réseau :
- Ă t = 1s : Le certificat est transmis aux nĆuds 2 et 3.
- Ă t = 2s : Les nĆuds 2 et 3 retransmettent aux autres (4 et 5).
Tous les nĆuds ont maintenant le certificat aprĂšs 2 secondes.
Pourquoi les autres réponses sont fausses ?
- 1 seconde : Faux, car le certificat nâa atteint que 2 nĆuds Ă ce stade.
- 3 ou 4 secondes : Faux, car la propagation sâeffectue en 2 Ă©tapes seulement.
I lost my private key. Who can give it back to me?
- I can find it in the blockchain
- Any node
- The last node I sent a certificate to
- No one. It's lost forever
Réponse: 4
Pourquoi? Une clĂ© privĂ©e nâest jamais stockĂ©e dans la blockchain. Elle est gĂ©nĂ©rĂ©e localement et nâest connue que par son propriĂ©taire. Si vous la perdez, personne ne peut la rĂ©cupĂ©rer.
Pourquoi les autres réponses sont fausses?
- "Dans la blockchain" : Impossible, car seule la clé publique est exposée.
- "Un nĆud peut la retrouver" : Faux, les nĆuds nâont aucun accĂšs aux clĂ©s privĂ©es des utilisateurs.
- "Le dernier nĆud que jâai utilisĂ©" : Faux, la blockchain ne stocke pas cette information.
In a 4-node network, each directly connected to all others, we forge a 1 MB block. What amount of data in total will transit on the network?
- 3 MB
- 6 MB
- 12 MB
- 18 MB
Réponse: 3
Pourquoi? Chaque nĆud doit envoyer le bloc de 1 MB aux 3 autres. Il y a 4 nĆuds, donc 4 Ă 3 = 12 MB en circulation.
In which situation can I add an illegal certificate to the blockchain?
- I own >50% of the staked tokens
- I own >50% of the network validators
- I know everyone's private keys
- Never
Réponse: 2
Pourquoi? Dans Proof-of-Stake (PoS), un attaquant contrĂŽlant plus de 50% des validateurs peut censurer ou modifier des blocs. Il peut inclure des certificats frauduleux et forcer leur validation.
Pourquoi les autres réponses sont fausses?
- "PossĂ©der >50% des tokens" : Pas suffisant, car il faut aussi ĂȘtre validateur actif.
- "Connaßtre toutes les clés privées" : Cela permettrait de voler des fonds, mais pas de modifier directement la blockchain.
- "Jamais" : Faux, un attaquant avec >50% des validateurs peut manipuler la blockchain.
Can I cancel a certificate?
- No
- Yes, until it reaches a validator
- Yes, until a block containing it has been forged
- Yes
Réponse: 3
Pourquoi? Une transaction (certificat) est annulable tant quâelle nâa pas Ă©tĂ© incluse dans un bloc. Une fois quâun bloc est validĂ©, elle devient immuable.
Pourquoi les autres réponses sont fausses?
- "Non" : Faux, car avant dâĂȘtre confirmĂ©e, une transaction peut ĂȘtre annulĂ©e ou remplacĂ©e.
- "JusquâĂ un validateur" : Faux, un validateur peut encore dĂ©cider de ne pas inclure la transaction.
- "Toujours annulable" : Faux, aprĂšs inclusion dans un bloc, câest dĂ©finitif.
What's the supposed name of the inventor of Bitcoin?
- Satoshi Nakamoto
- Hayao Miyazaki
- Ryohei Arisu
- Eiichiro Oda
Réponse: 1
Pourquoi? Satoshi Nakamoto est le pseudonyme du créateur de Bitcoin et du whitepaper de 2008. Son identité reste inconnue, et il a disparu des médias en 2011.
Pourquoi les autres rĂ©ponses sont fausses? 2. Hayao Miyazaki : RĂ©alisateur de films dâanimation japonais (Studio Ghibli). 3. Ryohei Arisu : Personnage fictif de Alice in Borderland. 4. Eiichiro Oda : CrĂ©ateur du manga One Piece.
Which mechanism makes the third party obsolete?
- The consensus algorithm
- The signature process
- The distinction between validators and nodes
- The hashing chain between blocks
Réponse: 1
Pourquoi? Le consensus algorithmique (PoW, PoS, etc.) permet au rĂ©seau dâatteindre un accord dĂ©centralisĂ© sans intermĂ©diaire. Il remplace les tiers de confiance (banques, notaires, etc.) en garantissant la validitĂ© des transactions.
Pourquoi les autres rĂ©ponses sont fausses? 2. La signature garantit lâauthenticitĂ©, mais pas lâĂ©limination dâun tiers de confiance. 3. La distinction entre nĆuds et validateurs est une structure interne, elle ne remplace pas un tiers. 4. La chaĂźne de hash sĂ©curise les blocs, mais ne supprime pas directement le besoin dâun intermĂ©diaire.
Among the following flaws of third parties, which ones are addressed by blockchain technologies in general?
- Speed
- Trust
- Bias
- Fees
- Privacy
Réponse: 2, 3
Pourquoi? 2. La blockchain remplace la "confiance" par des rÚgles cryptographiques. Les utilisateurs n'ont pas besoin de faire confiance à une banque ou une entité centrale. 3. La blockchain élimine les biais humains, car les rÚgles sont fixées dans le protocole et appliquées de maniÚre impartiale.
Pourquoi les autres réponses sont fausses?
- La vitesse dĂ©pend de la blockchain : certaines sont lentes (Bitcoin), dâautres rapides (Solana). Ce nâest pas une garantie.
- Les frais existent toujours (ex : gas fees sur Ethereum), mĂȘme sâils sont parfois rĂ©duits.
- La vie privĂ©e nâest pas forcĂ©ment garantie : la plupart des blockchains publiques (Bitcoin, Ethereum) sont transparentes.
Who decides the logic that results from all kinds of statements?
- The issuer of the statement
- The official blockchain software
- The validators
- The next forger
Réponse: 2
Pourquoi? Les rĂšgles de la blockchain sont dĂ©finies dans son code source (le logiciel officiel). Chaque participant applique les mĂȘmes rĂšgles pour Ă©viter toute divergence.
Pourquoi les autres réponses sont fausses?
- LâĂ©metteur dâune transaction ne dĂ©cide pas des rĂšgles, il ne fait que proposer une action.
- Les validateurs appliquent les rÚgles, mais ne les créent pas.
- Le forgeron ne change pas les rĂšgles, il applique seulement le protocole existant.
If Bob is out of money, what can happen?
- He gets debts
- The smart contracts consider Aliceâs flat to be free of rent
- The smart contract removes Bobâs rental certificate from the blockchain
- The smart contract gives 3 months to Bob to pay
Réponse: 1, 2, 4
Pourquoi?
- Un smart contract peut enregistrer des dettes si câest programmĂ© ainsi.
- Sâil nây a pas de paiement, le contrat peut conclure que le bien devient gratuit.
- Un dĂ©lai de paiement peut ĂȘtre inclus dans la logique du contrat.
Pourquoi la réponse 3 est fausse? Un smart contract ne peut pas supprimer des données de la blockchain, tout est immuable.
Why are Smart Contracts using the term "Contract"?
- Because it involves more than one party in the process
- Because it is legally binding
- Because it is signed
- Because it describes a fixed set of rules
Réponse: 4
Pourquoi? Un smart contract dĂ©finit des rĂšgles fixes que tout le monde doit suivre. Contrairement Ă un contrat classique, il sâexĂ©cute automatiquement selon son code.
Each user only has one identity on the blockchain
- Yes
- No
Réponse: 2
Pourquoi? Un utilisateur peut crĂ©er autant dâadresses blockchain quâil le souhaite. Rien ne lie une adresse Ă une personne rĂ©elle.
Pourquoi la rĂ©ponse 1 est fausse? Contrairement aux systĂšmes centralisĂ©s, il nây a pas de "compte unique" sur la blockchain.
Is it a good thing that the source code of the smart contract is public?
- Yes
- No
- Both
Réponse: 3
Pourquoi? Avantage : Transparence et auditabilité par tous. Inconvénient : Un attaquant peut analyser le code pour y trouver des failles.
How do you "burn" cryptocurrencies?
- You send it to yourself
- You send a negative amount
- You send it to the black hole
- It is up to the blockchain to provide such a feature
Réponse: 3
Pourquoi? Une adresse "black hole" (sans clé privée connue) est utilisée pour envoyer définitivement des cryptos sans possibilité de récupération.
What is handled differently between smart contracts and traditional algorithmics?
- Randomness
- Data storage
- Permissions
- Time management
Réponse: 1, 4
Pourquoi?
- Randomness : Les blockchains ne peuvent pas générer du hasard de maniÚre classique. Elles utilisent des oracles ou des méthodes complexes comme les VRF.
- Time management : Il nây a pas de notion de "temps rĂ©el", on utilise le numĂ©ro du bloc comme rĂ©fĂ©rence temporelle.
In arts, to increase the value of an NFT collection, you can...
- "Burn" the contract
- Forbid the transfer of NFTs
- Code it the simplest way possible
- Store the pictures on a blockchain
Réponse: 1, 3, 4
Pourquoi?
- "Burner" le smart contract rĂ©duit lâoffre et peut augmenter la raretĂ© des NFTs.
- Un code simple évite les bugs et rend les NFTs plus sûrs.
- Stocker les images sur une blockchain garantit leur pérennité.
Pourquoi la rĂ©ponse 2 est fausse? Interdire les transferts rĂ©duit la liquiditĂ© et lâintĂ©rĂȘt de lâĆuvre.
NFT stands for...
- Non Fungible Token
- Tokens non gongibles
- No finding technology
- No Forge Token
Réponse: 1
Pourquoi? NFT signifie "Non-Fungible Token", ce qui signifie qu'il est unique et ne peut pas ĂȘtre Ă©changĂ© Ă l'identique comme une cryptomonnaie classique.
Delphine transfers her NFT to Bob but mistypes one character of his public key. What happens?
What happens if you send an NFT to an incorrect address?
- The NFT is burnt
- The contract refuses the transfer
- The contract owner gets the NFT
- It depends on how the contract is coded
Réponse : 4
Pourquoi ? Tout dépend du smart contract :
- Sâil nâexiste pas dâadresse associĂ©e Ă la clĂ© erronĂ©e, les fonds peuvent ĂȘtre perdus dĂ©finitivement (burn involontaire).
- Certains contrats implémentent des protections, comme une vérification préalable de l'adresse du destinataire.
Pourquoi les autres réponses sont fausses ?
- LâNFT peut ĂȘtre perdu, mais pas nĂ©cessairement "brĂ»lĂ©" (envoyĂ© dans une adresse black hole).
- La plupart des smart contracts n'ont pas de mécanisme de correction automatique.
- Le propriĂ©taire du contrat ne reçoit pas lâNFT, sauf si le contrat le prĂ©voit.
What is a blockchain?
- A data structure
- An autonomous software
- A cryptocurrency
- A deterministic ledger
Réponse : 1
Pourquoi ? Une blockchain est avant tout une structure de données (data structure) sous forme de blocs liés cryptographiquement.
Pourquoi les autres rĂ©ponses sont fausses ? 2. "Un logiciel autonome" : Une blockchain repose sur des logiciels, mais elle nâest pas elle-mĂȘme un logiciel autonome. 3. "Une cryptomonnaie" : Bitcoin utilise une blockchain, mais toutes les blockchains ne sont pas des cryptomonnaies. 4. "Un ledger dĂ©terministe" : Une blockchain est un registre, mais peut contenir des processus non totalement dĂ©terministes (ex : smart contracts).
What is the process that ensures the validity of a certificate?
- The consensus algorithm
- The hashing
- The signature
- The staking
Réponse : 3
Pourquoi ? La signature cryptographique garantit l'authenticitĂ© dâun certificat et permet de vĂ©rifier qu'il n'a pas Ă©tĂ© falsifiĂ©.
Pourquoi les autres réponses sont fausses ?
- Le consensus valide des blocs entiers, pas chaque certificat individuellement.
- Le hashing sĂ©curise le stockage, mais ne prouve pas lâauthenticitĂ© dâun certificat.
- Le staking est un mĂ©canisme dâincitation dans PoS, pas un moyen de validation de certificats.
Given you have the public key of your neighbor, what can you do?
- Issue certificates on his behalf
- Find his private key
- Steal cryptocurrency from him
- Check what certificates he issued in the blockchain
Réponse : 4
Pourquoi ? Avec une clĂ© publique, on peut vĂ©rifier les transactions et certificats quâelle a signĂ©s.
Pourquoi les autres réponses sont fausses ?
- "Ămettre des certificats en son nom" : Impossible sans sa clĂ© privĂ©e.
- "Trouver sa clé privée" : Cryptographiquement infaisable avec RSA ou ECDSA.
- "Voler des cryptos" : Impossible sans la clé privée pour signer des transactions.
What is a consensus algorithm?
- A process of exchanging information between nodes to agree on a forger
- A deterministic algorithm that generates blocks
- A rule that dictates whether a block should be accepted or not
- An algorithm that broadcasts blocks in a peculiar manner
Réponse : 3
Pourquoi ? Le consensus dĂ©termine quelles transactions/blocs sont valides et doivent ĂȘtre acceptĂ©s par le rĂ©seau.
Which of the following is true?
- Hashing is algorithmically reversible
- Hashing always produces a different outcome for the same input
- Hashing always produces a different outcome for different inputs
- Hashing produces very different outputs for almost identical inputs
Réponse : 4
Pourquoi ? Une lĂ©gĂšre modification de lâentrĂ©e entraĂźne un changement drastique du hash (effet avalanche).
Pourquoi les autres réponses sont fausses ?
- Le hashing est irréversible par définition.
- Une mĂȘme entrĂ©e donne toujours le mĂȘme hash.
- Des entrĂ©es diffĂ©rentes peuvent exceptionnellement produire le mĂȘme hash (collision).
To write data in a smart contract, I must...
- Run the smart contract on my local machine
- Ask at least 51% of nodes to do it for me
- Issue a new certificate
- Change the certificate that declared the smart contract
Réponse : 3
Pourquoi ? Lâajout de donnĂ©es passe par une transaction signĂ©e qui modifie lâĂ©tat du contrat.
Which of the following is not a valid hash in base 32?
- 0110010011
- 0000000000
- 47bbe6ac80
- w6453jkhu6
Réponse : 4
Pourquoi ? En base 32, on utilise les chiffres de 0 Ă 9 et les lettres de A pour 10 Ă V pour 31. "w" et "u" ne sont pas des caractĂšres valides en base 32.
What is true about Proof-of-Work and Proof-of-Stake?
- They both calculate who the next forger is
- They were created by the same person
- PoW checks block validity faster than PoS
- PoS ensures newcomers have the same chances to forge than old players
Réponse : 3
Pourquoi ? PoW valide plus rapidement car chaque nĆud peut vĂ©rifier le hash du bloc immĂ©diatement. PoS nĂ©cessite plus de vĂ©rifications pour savoir si un validateur est lĂ©gitime.
Pourquoi les autres réponses sont fausses ?
- Les mécanismes sont trÚs différents : PoW = compétition, PoS = sélection basée sur la mise.
- PoW a été inventé avec Bitcoin (Satoshi Nakamoto), PoS est venu plus tard (Sunny King).
- Les anciens validateurs ont souvent plus de poids en PoS.
Assuming you would want to write a blockchain for a private company, what consensus algorithm would you rather use?
- Proof-of-Work
- Proof-of-Stake
- Delegated Proof-of-Stake
- Proof-of-Authority
- Proof-of-Burn
Réponse : 4
Pourquoi ? Proof-of-Authority (PoA) est idĂ©al pour les blockchains privĂ©es, car il repose sur un nombre limitĂ© de validateurs de confiance (ex : administrateurs de lâentreprise). Il est plus rapide et plus efficace que PoW ou PoS, car il ne nĂ©cessite pas une compĂ©tition pour le minage. Les entreprises prĂ©fĂšrent un modĂšle centralisĂ© oĂč les dĂ©cisions sont validĂ©es par des nĆuds approuvĂ©s plutĂŽt que par des mineurs ou des validateurs alĂ©atoires.
Pourquoi les autres réponses sont fausses ?
- PoW : Consomme trop dâĂ©nergie et est inutilement complexe pour une entreprise privĂ©e.
- PoS : Moins efficace que PoA pour un environnement centralisé.
- DPoS : NĂ©cessite une gouvernance communautaire, ce qui nâest pas optimal pour une entreprise privĂ©e.
- PoB : BasĂ© sur la destruction de jetons, inadaptĂ© Ă une blockchain dâentreprise.
Why is the Byzantine Generals Problem, while still being a good illustration, a somehow misleading explanation of what consensus algorithms are?
- Because it involves a third party
- Because it is restricted to a binary output being attack/retreat
- Because the decision needs to be taken at a specific time
- Because the generals exchange messages
Réponse : 4
Pourquoi ? Le problĂšme des gĂ©nĂ©raux byzantins suppose que les nĆuds Ă©changent des messages directement pour parvenir Ă un consensus. Dans les blockchains, ce consensus est souvent atteint de maniĂšre probabiliste (ex : PoW) ou en fonction de rĂšgles Ă©conomiques (ex : PoS), pas uniquement par des messages directs.
We are at block 42 of a Proof-of-Stake blockchain. Alice staked 2 yet, and Bob staked 4. How much should Alice stake right now to have 60% chances of forging block 43?
- 2
- 4
- 6
- She can't
Réponse : 4
Pourquoi ? Dans Proof-of-Stake (PoS), la sélection du forgeron du prochain bloc (ici, le bloc 43) se fait en fonction de la mise (stake) placée avant un certain moment.
Actuellement, Alice a 2 tokens misĂ©s. Bob a 4 tokens misĂ©s. Le processus de sĂ©lection fonctionne sur la proportion de tokens stakĂ©s. Actuellement, Alice a 2 / (2+4) = 33,3% de chances dâĂȘtre sĂ©lectionnĂ©e, et Bob a 66,7%. Pour quâAlice ait 60% de chances, il faudrait quâelle ait misĂ© une quantitĂ© supĂ©rieure Ă celle de Bob avant le dĂ©but du tirage.
Pourquoi Alice ne peut pas modifier ses chances maintenant ? Le staking a déjà été pris en compte au bloc 42, donc ajouter des tokens aprÚs ne change rien pour la sélection du bloc 43. Elle pourra augmenter ses chances pour les blocs suivants, mais pas pour celui en cours.
Which of the following can cause cryptocurrencies to be created outside of the scope allowed by the blockchain software?
- If someone holds all the private keys of all blockchain users
- An update of the programming language the blockchain software uses
- A 51% attack that aims at reverting a specific certificate
- Reworking the blockchain software and deploying it on my node
Réponse : 2
Pourquoi ? Si la blockchain est écrite dans un langage de programmation (ex : Solidity pour Ethereum), une mise à jour de ce langage peut introduire des failles. Un bug dans la mise à jour pourrait permettre la création de tokens non autorisés (ex : un bug similaire a déjà causé des problÚmes dans Ethereum avec un smart contract mal conçu).
Pourquoi les autres réponses sont fausses ?
- Détenir toutes les clés privées ne permet pas de créer de nouvelles cryptos, juste de voler celles existantes.
- Une attaque 51% permet dâannuler des transactions mais ne crĂ©e pas de nouvelles cryptos hors protocole.
- Modifier le logiciel de son propre nĆud nâa aucun impact sur le protocole global de la blockchain.