Glossary Rough Drafts by the community


#1

For everyone working on @padpad’s glossary. :slight_smile: We can put our definitions here and hash out (pun intended) any discrepancies. I am not sure I am getting all these terms correct or if they are clear. I’d love feedback. Once this rough draft is done, @padpad would you do the honor of submitting it to GitHub repo?


#2

Defined words list:

  • Hash function: A hash function is any function that can be used to map data of arbitrary size to data of a fixed size. Think of it as like the fingerprint of the data. Its unique to that piece of data.

  • Preimage: the input to the hash function

  • Tha hash: the output of the hash function

  • Preimage Resistance: You can’t go backward. Can’t use your output to find the input.

  • Second Preimage Resistance: You can’t find a preimage that matches the preimage of the original data that is hashed.

  • Collision Resistance: You can’t get the same hash with the different inputs

  • Random Oracle: Hashes are as random as a random number generator. You can use hashes for randomness.

  • Onion hashing: Using the layers of hashing (ie finding the hash of a hash of a hash) to generate a source of randomness.

  • Encryption: The process of turning a clear-text message (often called Plaintext) into a data stream which looks like a meaningless and random sequence of bits (called ciphertext). The process of turning ciphertext back into plaintext is called decryption.

  • Cryptography: Deals with making communications secure.

  • Cryptoanalysis: Deals with breaking ciphertext, that is, recovering plaintext without knowing the key.

  • Cryptology: A branch of mathematics which deals with both cryptography and cryptoanalysis.

  • Symmetric algorithms: Use the same key for encryption and decryption. These algorithms require that both the sender and receiver agree on a key before they can exchange messages securely.

  • Public-key algorithms (also known as asymmetric algorithms): Use two different keys (a key pair) for encryption and decryption. The keys in a key pair are mathematically related, but it is computationally infeasible to deduce one key from the other. These algorithms are called “public-key” because the encryption key can be made public. Anyone can use the public key to encrypt a message, but only the owner of the corresponding private key can decrypt it.

  • Public Key: Like your email or username. The public facing side of your identity online.

  • Private Key: The password to your email or username. Its kept secret. Only you know this and can use this key to sign.

  • State: A snapshot of data at a particular moment in time (see video here)

  • State transition: A function that takes the state then transforms it into another state. (see video here)

  • Cryptoeconomics: the study and application of both economics and cryptography to the emerging field of blockchain.

  • Consensus: The act of reaching agreement between parties.

  • Porous Boundaries: Protocols where the users of the protocol can become miners and validators.

  • Rigid Boundaries: Protocols where users of the protocol can NOT become validators/minners

  • Blocks: Groups of transaction and other their associated meta data.

  • Minners/validators: Decides on the order of transaction by voting for it through different cryptographic protocols such proof of work or proof of stake.

  • Checkpoint (Ethereum): the last block under consideration for finality for a given epoch.

  • Discouragement attack: an attack where an adversary burns resources to decrease payoff for others in the network.

  • Epoch (Ethereum): a length of time measured in blocks. As of today’s specs, an epoch is 100 blocks and spans between two checkpoints.

  • Finality: The point at which a block has been decided upon by a client to never revert. In PoW rather there is no finality, only deeper block confirmations.

  • Fork choice rule: the rules for traversing a dag in order to find the canonical chain.

  • Proof of work: a consensus mechanism where resources are burned to verify transactions.

  • Proof of stake: a consensus mechanism where validators stake a number of tokens proportional to their voting power in finalizing blocks.


#3

Idea: For stuff @karl already explained in videos (state, hash and signature properties), we can keep the difinations super short and just link to the video. That will be helpful. For all other glossary terms not covered by karl, I was thinking @K-Ho (or anyone else) could do videos on them. That be a super cool way to contribute. :smiley:


#4

Yet to be defined words/In the process


Vitalik has a post on this. referrer to that. Link here:

  • Centralized nodes: One node controls the network. Fault tolerance is low.

  • Distributed nodes:

  • Decentralized nodes:


  • Decentralized Consensus: Consensus arrived from many parties

  • Nonce:

  • Central Operator:

  • Censorship Resistance:

  • Reorganization/Reorg:

  • Blockchain: _"An order of a chain of blocks that determine the order of transactions such that it prevents double spending. "

  • Selfish mining - The act of mining blocks ahead of the network without broadcasting the blocks.

  • Rate limiting -

  • Verifiable delay functions -

  • Randomness beacon - A source of randomness that is cryptographic ally ensured.

  • Burning Crypto - The act of destroying a crypto (often by sending to an irretrievable address). Assuming demand stays the same, the effect of this reduced supply means a price increase per coin.


#5

thank you @DmSuja. I will work on some of these after work


#6

I think a glossary of terms in plain English is a really good idea. Would anyone be interested in a list which references the way these terms are used in more formal/rigorous settings, as modern cryptography has rather specific notions of computational adversaries. Perhaps something like this?
(based on notes by Pass, Shelat: http://www.cs.cornell.edu/courses/cs4830/2010fa/lecnotes.pdf - not
really to turn the thing into a algorithms/cryptography course, but to give an idea of how these notions are formalized)

Turing machine:

A useful model of computation devised by Alan Turing in 1936. Essentially a machine with a head
that operates on tape with symbols (“memory”). The machine can take on a particular state,
has a tape of cells through it, each cell carrying a symbol, with a special blank symbol.
The machine has a head (“memory bus”) which is
at a particular cell at a time, and can read the symbol on that cell and move left or right. It also has a table
of transition rules (the “program”). When the machine in a particular state reads a symbol, it moves to the next state and takes an action, writing or erasing the symbol, or moving the head one cell left or right.

Probabilistic Polynomial-time Turing machine (p.p.t.):

A Turing machine with an extra random tape, where each bit of the random tape is uniformly and independently chosen. This is a randomized algorithm. It further halts in a time
proportional to some polynomial power of the input length.

One-way function:

A function that is “easy” to compute, but “hard” to invert, in the sense that random guessing
succeeds with “negligible” probability, i.e. for a given input length to the function, say n, the probability of
a successful guess is smaller than the inverse of any fixed polynomial, n^{-c}.

Negligible function:

A function epsilon(n) that is aymptotically smaller than the inverse of any fixed polynomial, i.e. there exists
some n_0 for which epsilon(n) <= n^{-c} for all n > n_0.

Hash function:

Intuitively, a hash function is any function that can be used to map data of arbitrary size to data of a fixed size. It should be a p.p.t.

Collision resistant hash function:

The probability of the hash function having a collision is a negligible function in the input length.

Cryptography: “secret writing” in Greek - the study of concealing communications between two parties
in an adversarial environment.

Let me know what you all think - too much math, too little math, ideas for a nice user interface to balance the level of mathiness, etc.


#7

Love it! Honestly, I got lost on negligible function. :sweat_smile: Hmmm, since this course is being taught with cute gerbils, I think plain English is the way to go. As simple as we can make it. However, I think if it sounds easy, then its cool. Like your one-way function definition was on point. Not too much math, not too little math. It was just right.

Also, abbreviations, maybe those could also potentially make things difficult for reader. Like for the hash function definition, what does the ppt stand for?


#8

Sorry, p.p.t. stands for the probabilistic polynomial-time Turing machine - it basically formalizes some idea of a algorithm that is guessing. That definition was problematic, probably something like this would be better:
(see http://cs.wellesley.edu/~cs310/)

Intuitively, a hash function is any function that can be used to map data of arbitrary size to data of a fixed size. It should run in polynomial time. (will think more about how to present this definition)

Negligible function:

A function epsilon(n) that is asymptotically smaller than the inverse of any fixed polynomial, i.e. there exists
some n_0 for which epsilon(n) = n^{-c} for all n >n_0, so there is some constant above which this function gets very very small in this previously mentioned manner.

BTW if any of the moderators are reading this, enabling \LaTeX on this forum would be very helpful!


#9

This is really cool. A lot of the initial friction of learning any new field/discipline is just getting past the terminology to understand core concepts. Having these in a clear and organized format would be great for people new to cryptoeconomics, but also as a reference point or checklist for anyone exploring new cryptoeconomic problems/protocols.

Do you guys think it would be useful to organize the glossary by sections, maybe like:

computer science basics:

  • state
  • nodes
  • graphs
  • randomness/entropy
  • etc…

game theory basics:

  • equilibrium
  • Nash equilibrium
  • perto optimal
  • prisoners dilemma
  • iterated v finite games

crypto:

  • tools/methods for verification (hashes, merkle trees, etc…)
  • security (as in pub/private key security, not protocol level security)

economics:

  • incentives (rewards/punishments, slashing, block rewards, etc…)
  • types of value (financial rewards, reputation, voting power)

meta cryptoeconomics: combining tools to make secure systems

  • protocol level security (aligning incentives to ideally make the perto optimal outcome also the dominant strategy with no incentive to deviate (Nash))
  • incentives in iterative games vs finite games with reputation and compounding value
  • where we need security vs where it’s nice to have (esp relevant for plasma chains where only account balances/tokens need to be stored on the parent chain)
  • voting (QV, correlated slashing, commit/reveal schemes)

If so, happy to help expand on these or any other concepts that would be useful. I’m new here though so not sure what the best way to contribute is :slight_smile:


#10

Bro, DO IT! :smiley: That is all.


#11

And then submit a PR here, or is there a newer version of the glossary somewhere?


#12

Well, I thought if everyone did pull requests, we might have excess or work or work that was unimportant to the overall goal. Like I was thinking the github was like the blockchain, and this thread as the lightening network. We can do all the rough work here and finalize everything here. Then once we all agree, submit the glossary for pull request there with everyone who participated here as coauthors. That way everyone gets their proper credit, its easier for @karl and @jinglebells and we all get an awesome glossary! :slight_smile:


#13

Ummm not to be difficult, but GitHub is literally the world’s most widely used tool for version control and open source project management. It tracks history, changes, and gives credit to contributors. This allows a diverse set of participants to get a clear view of a project and participate. The only thing that’s missing is a voting mechanism for distributed consensus (which colony.io is working on). As of right now, no one has forked the code for the glossary (besides me earlier today) or submitted a PR. That being said, cryptoeconomics.study is (from what I can tell) a community driven project that got a grant from the Ethereum Foundation to help people understand cryptoeconomics. I find it hard to imagine that reviewing PRs would be too much work (as there aren’t any), and if it is, then it seems like someone from the community could be included to help with that process. I dunno… manually keeping a rolling list of ideas, keeping track of who did what, and then merging them into a doc via a chat forum sounds frustratingly inefficient. What am I missing?


#14

Maybe your right. With the book, everyone started to work on and submit ideas via PR but then we ended up with too many cooks in the kitchen.

I think right now, since the community is smallish, we can hash things out here then do a final version to submit as a PR. In terms of credit, like I said in the beginning, it was @padpad’s idea. So I don’t mind if he submits it and adds us as coauthors. And everyone can still track back who did what via the chat forum.

Lol, thinking out lout here, @padpad is the central operator, everyone else is transacting info about the glossy and the final state of it.

To make this more efficient each of us can take on roles. For me, I like identifying words. @yaliu14 like to define them. @burrrata you like to categorize them. So each of us can do one of those functions so everyone isn’t doing everything.

Anyways these are my thoughts.


#15

This is my current draft which was made from aggregating stuff here and taking notes while reading in the last 24hrs. There’s many things missing so it’ll grow at least 2-3X. Also, all the current concepts need to be clarified with references and examples added. It’s mainly a consolidation of notes to help myself better understand the space and get all the core concepts in one place.
If that’s helpful I’m happy to share/collaborate, but if it’s more complex/verbose than what is appropriate for the book/course then that’s ok too and I’ll just keep working on it on my own. Either way, I see forums as a space for humans to coordinate around general ideas, but version management software like github as a way to merge and maintain complex and growing data. If you want to follow, fork, or extend any of this it’ll all be available here: https://github.com/burrrata/book

Computer Science

  • state
  • nodes
  • graphs
  • randomness/entropy
  • psuedo anonymity and data correlation
  • privacy vs anonymity
  • etc…

Ledger:

A record of information.

State:

A snapshot of a ledger at a particular moment in time.

Distributed Ledger:

A ledger that is distributed amongst multiple parties who agree on it’s state.

State transition:

A function that takes the state then transforms it into another state.

Consensus:

The act of reaching agreement between parties.

Game Theory:

  • equilibrium
  • Nash equilibrium
  • perto optimal
  • prisoners dilemma
  • iterated v finite games

Crypto

  • verification: hashes, merkle trees, commitment schemes
  • security: digital signatures (pub/private key encryption)

Cryptography:

Deals with making communications secure and verifiable.

Cryptoanalysis:

Deals with breaking ciphertext, that is, recovering plaintext without knowing the key.

Cryptology:

A branch of mathematics which deals with both cryptography and cryptoanalysis.

Hashes

  • Hashes allow us to fingerprint some information with a short name. Anyone can take the hash of some file and save it. You can then use this hash to prove to others that you (a) have seen the file before (b) no one has tampered with the file.
  • a secure hash has several properties: avalanche effect, preimage resistance, etc…

For example, the Bitcoin whitepaper has a certain hash. A while ago the Bitcoin Core foundation wanted to change the official URL of the whitepaper. They wanted it to point to an “improved” version of this whitepaper that Satoshi wrote. Since they control the bitcoin.org URL they can do this. A long time ago someone with foresight saved the hash of this whitepaper in the Blockchain. This means it’s very easy to see if someone well-intentional changes the original file.ered with the file.

Preimage:

the input to the hash function

Digest/Hash:

the output of the hash function

Preimage Resistance:

it is computationally infeasible to find the input to a hash funciton given it’s output.

Collision Resistance:

a hash funciton produces a unique output for every unique input. A “collision” would be if H(a) = H(b).

Encryption:

The process of turning a clear-text message (often called Plaintext) into a data stream which looks like a meaningless and random sequence of bits (called ciphertext). The process of turning ciphertext back into plaintext is called decryption.

Symmetric Key Encryption:

Use the same key for encryption and decryption. These algorithms require that both the sender and receiver agree on a key before they can exchange messages securely.

Public-key algorithms (also known as asymmetric algorithms):

Use two different keys (a key pair) for encryption and decryption. The keys in a key pair are mathematically related, but it is computationally infeasible to deduce one key from the other. These algorithms are called “public-key” because the encryption key can be made public. Anyone can use the public key to encrypt a message, but only the owner of the corresponding private key can decrypt it.

Public Key:

these can be public facing and are often like an address that anyone can send information to.

Private Key:

every public address has a unique private key. Whoever controls the private key controls the address. While anyone can send data to the public key, only the private key can autorize data to be sent out from the address. This means that you can prove to others that you wrote a certain message. For example, that you authorized a transaction, voted, or posted some content at a certain time before anyone else.

Commitment Scheme

a cryptographic primitive that allows one to commit to a chosen value (or chosen statement) while keeping it hidden to others, with the ability to reveal the committed value later.[1] Commitment schemes are designed so that a party cannot change the value or statement after they have committed to it: that is, commitment schemes are binding. Commitment schemes have important applications in a number of cryptographic protocolsincluding secure coin flipping, zero-knowledge proofs, and secure computation.

A way to visualize a commitment scheme is to think of a sender as putting a message in a locked box, and giving the box to a receiver. The message in the box is hidden from the receiver, who cannot open the lock themselves. Since the receiver has the box, the message inside cannot be changed—merely revealed if the sender chooses to give them the key at some later time.

Interactions in a commitment scheme take place in two phases:

  • the commit phase during which a value is chosen and specified
  • the reveal phase during which the value is revealed and checked

Economics:

  • incentives (rewards/punishments, slashing, block rewards, etc…)
  • types of value (financial rewards, reputation, voting power, privilege => the right to make a certain decision)

Bitcoin Example:

In Bitcoin, when a miner finds a block they get a direct reward of some Bitcoin. More generally we can call this a token reward. The miner also has the privilege to decide which transactions to include in that block, and they generally choose transactions with the highest fees attached.

PoS Example:

In proof of stake nodes put down a security deposit, but if they behave badly this deposit gets taken away.

Blockchain Specific Stuff

  • checkpoint
  • epoch
  • finality
  • fork choice rule
  • proof of work
  • proof of stake

Checkpoint (Ethereum):

the last block under consideration for finality for a given epoch.

Epoch (Ethereum):

a length of time measured in blocks. As of today’s specs, an epoch is 100 blocks and spans between two checkpoints.

Finality:

The point at which a block has been decided upon by a client to never revert. In PoW rather there is no finality, only deeper block confirmations.

Fork choice rule:

the rules for traversing a dag in order to find the canonical chain.

Epoch (Ethereum):

a length of time measured in blocks. As of today’s specs, an epoch is 100 blocks and spans between two checkpoints.

Finality:

The point at which a block has been decided upon by a client to never revert. In PoW rather there is no finality, only deeper block confirmations.

Centralized nodes:

One node controls the network. Fault tolerance is low.

Distributed nodes:

Decentralized nodes:

Decentralized Consensus: Consensus arrived from many parties

Nonce:

Central Operator:

Censorship Resistance:

Reorganization/Reorg:

Blocks:

Groups of transactions and other their associated meta data that are cryptographically signed and appended to a chain of such blocks.

Minners/validators:

Decides on the order of transaction by voting for it through different cryptographic protocols such proof of work or proof of stake.

Selfish mining:

The act of mining blocks ahead of the network without broadcasting the blocks.

Porous Boundaries:

Protocols where the users of the protocol can become miners and validators.

Rigid Boundaries:

Protocols where users of the protocol can NOT become validators/minners

Checkpoint (Ethereum):

the last block under consideration for finality for a given epoch.

Rate limiting:

Verifiable delay functions:

Randomness beacon:

A source of randomness that is cryptographically secure. #! HOW? offchain oracle services via quantum measurements, radioactive decay, or lavalamps?

Burning:

The act of destroying a crypto (often by sending to an irretrievable address). Assuming demand stays the same, this reduces supply and thus increases the value per token.

Meta: combining tools to make secure cryptoeconomic mechanisms

  • protocol level security (aligning incentives to ideally make the perto optimal outcome also the dominant strategy with no incentive to deviate (Nash)): PoW, PoS
  • incentives in iterative games vs finite games with reputation and compounding value
  • where we need security vs where it’s nice to have (esp relevant for plasma chains where only account balances/tokens need to be stored on the parent chain)
  • voting (QV, correlated slashing, commit/reveal schemes)
  • attacks and defenses

Blockchain: a merklized linked list of blocks where each new block commits a group of transactions/data to the previous one via a hash function, forming a chain of blocks. In order to commit a group of transactions/data, you need to solve a very very complicated puzzle. If one were to try to retroactively change the data in a previous block, you would need quite a bit of compute power to solve all the puzzles between the current block and the block being changed. Considering that all the computers mining blocks (solving puzzles and committing information) on the bitcoin blockchain vastly surpass the compute power of all the world’s supercomputers combined… this seems unlikely. Not impossible, but unlikely.

  • hashes verify the data’s authenticity
  • public/private key crypto secures your account
  • economic incentives reward people for solving puzzles to secure the network and commit data

#! this needs to be expanded

Other Stuff:

  • convergence (of blocks, towards a shared truth)
  • validity (ensure you have the funds and you signed transaction)
  • data availability (you can inspect full historical data)
  • non-censorship (if you pay a fee your transaction gets included)
  • P+epsilon attacks (taking over a network by bribing participants and paying $1)
  • Vickrey auctions (efficient price allocation with private information)
  • Fault attribution (punishing bad behavior when you don’t know exactly what happened)
  • Dominant assurance contracts (making public goods financing a self-interest)
  • Cryptoeconomic security margin (how much do you have to pay to take over a network)

#! Add bitcoin as a cannonical example of cryptoeconomics in action? (https://discuss.status.im/t/cryptoeconomics-what-is-it-about-and-why-should-you-care/78)

Discouragement attack:

an attack where an adversary burns resources to decrease payoff for others in the network.

Fork choice rule:

the rules for traversing a dag in order to find the canonical chain.

PoW (Proof of Work):

a consensus mechanism where resources are burned to verify transactions.

PoS (Proof of Stake):

a consensus mechanism where validators stake a number of tokens proportional to their voting power in finalizing blocks.

#! update this to the latest version and find out what it’s actually called PoS Consensus if a validator node commits an error, it gets penalized an amount proportional to the number of other nodes that have committed an error around the same time. This incentivizes nodes to set themselves up in such a way that their failure rate is maximally uncorrelated with everyone else’s failure rate, reducing the chance that many nodes fail at the same time and threaten to the blockchain’s integrity

Assurance Contract:

a system where some public good is funded by giving anyone the opportunity to pledge money, and only collecting the pledges if the total amount pledged exceeds some threshold.

Proof of stake conditional hashcash:

when you commit to something (like sending someone an email), you stake a small value along with that commitment and give the receiver the opportunity to burn that stake if they so choose (in this case if they view your message as spam).

Common Misconceptions

Onion hashing:

  • Using the layers of hashing (ie finding the hash of a hash of a hash) to generate a source of randomness. #! This is only a secure form of randomness if the input to the original hash is a cryptographically secure form of entropy. Otherwise it’s just psuedorandom because hash functions are deterministic. (mostly sure)

Small Game Fallacies

  • https://unenumerated.blogspot.com/2015/05/small-game-fallacies.html When analyzing cryptoeconomics it’s VERY important to think about opportunity costs OUTSIDE of the mechanism
  • example: if I lock up $X staking ETH, the rate of return/interest has to be MORE than I could get from other investments, including those outside of the crypto world like bonds. This is important otherwise the only participation will be due to altruism, which is a weak strategy.

#16

Awesome! This is super helpful! Since the book isn’t yet, yea we got lots more to add define and do. Please continue! :slight_smile:

With this forum, you can just edit this post with more updates. I’ll update my posts with the defined words and undefined words too. Looks like you and I are the only ones here at the moment.

Everyone, feel free to propose a role for yourself and jump in!!!


#17

Idea: rather than just having a glossary, what if we made the whole thing themed?

The point of the glossary is to understand core concepts and building blocks used in cryptoeconomic protocols and games. These are like tools in a toolbox which we can use to build widgets and gadgets, which we can combine into protocols:

  • Tools: things like hash functions, encryption algorithms, random number generators, etc…
  • Mechanisms / Gadgets: commit/reveal schemes, signature attestation, public/private key systems, state machines, zero knowledge proofs, etc…
  • Protocols: PoW, PoS, voting, plasma, state channels, etc…

My thinking is that by theming information as action oriented, it will encourage more community collaboration and actually building stuff rather than vague theoretical knowledge.