Deck 2: BTA Certified Blockchain Developer - Ethereum

Full screen (f)
exit full mode
Question
Ethereum Nodes:

A) must implement the Ethereum protocol and external access can only be done via the proprietary Ethereum Libraries like Web3.js.
B) must implement the Ethereum Protocol and a JSON-RPC to talk with clients.
C) must implement Web3.js to interact with Websites.
Use Space or
up arrow
down arrow
to flip the card.
Question
A Private Network is:

A) a side Channel to the Ethereum Main Net which costs less gas to run smart contracts.
B) an exact clone of the Rinkeby Test-Network which can be started as virtual machine in the Azure Cloud.
C) a Network running only in a private area, where people cannot join freely and openly.
Question
It's possible to access the blockchain via an Ethereum Node:

A) only via JavaScript because there is the proprietary Web3.js library.
B) by any programming language, as long as it adheres to the JSON-RPC standard.
Question
Consensus is reached:

A) by the miner nodes which make sure that a transaction is valid.
B) by every single node in the blockchain network executing the same transaction.
C) by a cryptographic secure signature algorithm called ECDSA which makes sure that cheating is impossible.
Question
Proof of Work (PoW) vs. Proof of Stake.

A) PoW is computationally intensive which requires lots of energy. On the other hand, miners earn straightforward a reward for mining a block and incorporating transactions.
B) PoW is better than PoS, because with PoS we increase the amount of energy spent on the network.
C) PoS is mining with specialized new hardware that has to be purchased with a stack of Ether in the network. Hence the Name: Proof of Stake, which derives from Stack.
Question
Block Difficulty:

A) is determined by the Ethereum Committee every fortnight to reflect the average amount of transaction and it cannot be influenced by the network itself.
B) increases when the time between mined blocks is below 10 seconds, while it decreases when the time is above 20 seconds.
C) increases when the time between mined blocks is below 20 seconds, while it decreases when the time is above 60 seconds.
Question
Hashing Mining uses:

A) Keccack256 while internally to hash values it's easy to use the Dagger-Hashimoto to create a meaningful hash.
B) the Dagger-Hashimoto hashing while internally the EVM uses SHA256 which is an alias for Keccack256.
C) the Dagger-Hashimoto hashing while internally the EVM uses Keccack256 which is almost similar to SHA256, but has a different padding so produces different hashes.
Question
What are Ethereum Nodes?

A) Programs implementing the Ethereum Protocol to talk to each other and JSON-RPC interfaces to talk to the outside world.
B) A Java-Script library to compile and run Solidity Code.
C) A Framework for deploying and running smart contract in a decentralized way.
Question
A Blockchain Node:

A) can never become a mining node.
B) can always become a mining node.
C) can become a mining node, depending if the implementation has the functionality implemented.
Question
Which is the right order for Denominations?

A) Wei, Finney, Szabo, Ether, Tether.
B) Finney, Szabo, Mether, Gwei.
C) Gwei, Szabo, Finney, Ether.
Question
To get most out of the blockchain, it is best:

A) to use it for the whole business logic. It's always best to have everything in once place.
B) to use it only for things which need the benefits of the blockchain.
Question
What's the correct scientific notation?

A) 1 Ether = 10^18 wei, 10^9 Gwei, 10^3 Finney
B) 1 Ether = 10^19 wei, 10^13 Gwei, 10^3 Finney
C) 1 Ether = 10^16 wei, 10^13 Gwei, 10^3 Finney
D) 1 Ether = 10^18 wei, 10^6 Gwei, 10^6 Finney
Question
Transactions containing the same data to create the same smart contract are:

A) always having the same signature.
B) having a different signature because of the nonce which changes upon every transaction.
Question
Having a bug-bounty program early on:

A) can help to engage the community in testing your smart contracts and therefore help to find bugs early.
B) might be a burden as it is an administrative overhead mainly.
C) is completely useless. Who wants to test beta-ware software? It's better to start with the bug-bounty program after the contract is released on the main-net.
Question
Which statement is true about the EVM?

A) While the EVM is Sandboxed, it isn't as powerful as the Bitcoin Network, because it's not Turing Complete.
B) The EVM can't access hardware layers or anything outside a blockchain node because it's sandboxed.
C) The EVM is extremely powerful, turing complete and perfect for doing computational intensive things, because of the direct access to the graphics card.
Question
What are Private Keys used for?

A) To Protect the Public Keys by being cryptographically significant.
B) To Sign Transactions And To Derive an Address From.
C) To Generate An Address which can sign transactions.
Question
Sending one Ether is actually internally translated:

A) to Wei, so it will send the equivalent of 10^18 Wei.
B) to Finney, so it will send the equivalent of 10^3 Finney.
C) to Szabo, so it will send the equivalent of 10^6 Szabo.
Question
When a new block is mined:

A) a list of transactions as well as uncles is incorporated in the block. All gas that is used during those transactions is added to the miners' balance. Also, the block reward is added to the miner. Then the same transactions are run again by every participating node in the network to achieve consensus.
B) a list of transactions is incorporated in that block. Gas used during the execution is attached to the executing contracts while the block reward is automatically spread across the mining pool to ensure a fair spread. Consensus is reached by a special form of hash code.
Question
A Hashing Algorithm is deterministic. What does it mean?

A) it always produces the same output given the same input.
B) it uses equally distributed data to produce the output given a long input.
C) it shouldn't be possible to re-generate the input given the output.
Question
Externally Owned Accounts (EoA):

A) are changing their address every time a Transaction is sent because of the nonce.
B) are keeping their address, but on the blockchain a nonce is increased every time they send a transaction to avoid replay attacks.
Question
GETH:

A) is the reference implementation of the Ethereum protocol and every other node implementation internally uses the closed-source from Geth.
B) is the library that is used for the blockchain node Go-Ethereum. It is also used by Parity is parts, because it's closed source.
C) is one of the many blockchain nodes that implement the Ethereum Protocol. It's open source and everyone can contribute.
Question
Function and Variable Visibility:

A) a function that is marked as internal cannot be called by other contracts, unless the function is used by a derived contract. Private Functions cannot be called by any other outside contract and public variables are generating automatically a getter function.
B) a function that is marked as external can never be called internally. Private functions can also be called by derived contracts using inheritance. Private variables are accessible also in derived contracts.
Question
To Iterate through a mapping, you:

A) can use the length parameter of the mapping.
B) you need an external helper variable.
C) you cannot iterate any mapping to make the overall language design more safe.
Question
You interact with a smart contract and see a gas usage of 50,000 gas with a gas cost of 15Gwei. How much Ether would you have to pay to the miner?

A) 750,000,000,000,000 Wei
B) 750,000,000,000 Wei
C) 750,000,000 Wei
D) A flat fee of 1 Ether
Question
To compare a String in Solidity you use:

A) string1 == string2
B) the internal function "str_compare(str1,str2)"
C) you can't directly compare two strings, but one method would be to hash both strings and compare the hashes.
D) bytes32(string1) == bytes32(string2)
Question
Multi-Line Comments in Solidity are:

A) working with either // or ///
B) working with /* comment */ or /** @.. natspec style */
C) not possible, all comments must be single-line.
Question
If a User calls contract A and that calls Contract B, then msg.sender in Contract B will contain the address of:

A) the User.
B) contract A.
Question
A version pragma is a great way to make it clear:

A) for which compiler version a smart contract was developed for. It helps to avoid breaking changes.
B) for which blockchain a smart contract was developed for. It helps to avoid confusion with beta-customers.
C) for which blockchain node a smart contract was developed for. It helps to avoid mixing up different versions of go-ethereum.
Question
Variables of the type address store:

A) a 20 bytes value
B) a 32 bytes value
C) a string
D) a 20 characters long hex number
Question
Loops in Solidity:

A) are a great way to circumvent gas requirements, because a loop will only consume gas once.
B) are dangerous when used with data structures that grow, such as arrays or mapping, because it is hard to estimate the gas requirements.
C) should be avoided where possible, because of unknown side-effects on the gas requirements.
Question
To store almost all data in the Ethereum Blockchain:

A) a Linked List with pointers to previous blocks hashes is used.
B) a Merkle Patricia Trie is used.
C) a Radix Trie is used because the Merkle Patricia Trie is too inefficient.
Question
View and Pure Functions:

A) can only be accessed during calls.
B) can be accessed during transactions and calls.
Question
View and Pure Functions:

A) a function marked as pure can change the state, while a view function can only return static calls.
B) a function marked as view can never access state variables, while pure functions are here to return only one value.
C) a view function can access state variables, but not write to them. A Pure function cannot modify or read from state.
Question
On a consortium network:

A) everybody can become a miner, everybody can send transactions and everything is public.
B) usually only a few selected nodes can be miners. Transactions can be further limited.
Question
Address.send():

A) will cascade exceptions and address.transfer() will return a false on error.
B) will return false on error while address.transfer() will cascade transactions.
Question
Gas costs accrue on sending a transaction:

A) no matter the content.
B) only with a new smart contract deployment.
C) only interacting with an already deployed smart contract.
Question
The following are value types in Solidity.

A) Integer, Boolean, Struct, Mapping and Enum.
B) Integer, Boolean, Enum and Addresses.
C) Integer, Boolean, Structs and Fixed Point Numbers.
Question
You need to use ____________ to get the address that initiated the transaction.

A) Tx.origin
B) Msg.sender
Question
Files can be imported:

A) using relative and absolute paths, where the "." And the ".." depict that it's a relative path.
B) only via GitHub using the Repository and Username.
C) using the special requirefile(...) statement, which looks in a specific library path to import files.
Question
Importing from GitHub:

A) works across all compilers and platforms the same way.
B) is generally possible, but currently works only in Remix, but doesn't work in Truffle.
Question
Why is Unit-Testing so important?

A) It helps you to find bugs, regression bugs and sometimes also helps you to understand your code from different angles.
B) It is a great way to spend time on something that you get paid for. But ultimately it will just slow down the development process.
Question
Using truffle-contract over Web3.js:

A) is a must for every developer, because Web3.js changes so often.
B) is a convenient way because Web3.js is currently still in beta and truffle-contract can handle transactions with JavaScript-promises.
C) they are both completely different things. Truffle-Contract is a framework while Web3.js is a library.
Question
If you are starting a new ERC20 token:

A) it would be best to start from scratch, just looking at the required interface.
B) it is beneficial to copy and paste the already existing code from the Ethereum wiki and modify this until you like it.
C) best is to start with an audited implementation, for example from OpenZeppelin, in order to reuse already existing code.
Question
It's easy to write clean-room unit-tests with truffle:

A) for Java, JavaScript, and C++
B) for JavaScript using Web3.js
C) for Solidity and JavaScript
D) for any language, as long as it adheres to the open Testing-Interface from Truffle
Question
What's the difference between Ethereum Request for Comments (ERC) and Ethereum Improvement Proposals (EIP)?

A) ERC are here to define standards for the usage of Ethereum. EIP are here to improve the Ethereum Protocol itself.
B) ERC are here to propose new distributed applications on top of the Ethereum layer, while EIP are here to improve existing mining software.
C) ERC are an open platform to discuss continuous forking of the Ethereum platform. Successful forks are then incorporated in the EIP for further voting by the Ethereum Consortium.
Question
When using assert to check invariants and it evaluates to false:

A) all gas is consumed.
B) all remaining gas is returned.
Question
Address.call.value():

A) sends the gas stipend of 2300 gas and returns a false on error.
B) sends all the gas along and cascades exceptions.
C) sends all the gas along and returns a false on error.
D) sends the gas stipend of 2300 gas and cascades exceptions.
Question
Using selfdestruct(beneficiary) with the beneficiary being a contract without a payable fallback function:

A) will throw an exception, because the fallback function is non-payable and thus cannot receive ether.
B) it's impossible to secure a contract against receiving ether, because selfdestruct will always send ether to the address in the argument. This is a design decision of the Ethereum platform.
C) selfdestruct doesn't send anything to a contract, it just re-assigns the owner of the contract to a new person. Sending ether must be done outside of selfdestruct.
Question
When you do external calls to other smart contracts:

A) you should follow the checks-effects-interactions pattern and avoid state changes after the call.
B) you should follow the effects-checks-interactions pattern and avoid state changes before the call.
C) you should follow the checks-effects-interactions pattern, which is only necessary when you do calls to contracts where a direct contract call is not possible.
Question
Truffle:

A) is a framework that helps developers with Testing, Deployment and Management of Smart Contracts and Distributed Applications.
B) is a library that helps developers to connect to Ethereum nodes, because it abstracts the JSONRPC interface.
C) is a framework for Java, similar to Web3.js for JavaScript. It's a great way to develop distributed Java enterprise applications.
Question
It's not possible to use inheritance from multiple sources in Solidity.
Question
Unit-Testing on a local chain is important, because it helps you:

A) to run tests quickly and especially for free, compared to continuous deployment on the MainNetwork. This way you save a lot of fees, time and costs.
B) to run tests in an environment where logging is activated. On the Main-Net you have no access to transaction logs and this is ultimately the information you need to debug your contracts.
C) to avoid regression bugs with contracts that are updated constantly on the main-net. Once you update a contract on the main-net, the address stays the same, but the code changes and this can have disastrous side-effects.
Question
To generate a random number:

A) it's good to use the block timestamp, as this is always different.
B) it's good to use the block hash as this is clearly always very different.
C) it's good to use the RANDAO smart contract.
D) it's not possible to have a random number in a deterministic environment such as the Ethereum blockchain.
Question
Inheritance is useful, because a contract that is derived from another contract can make use of:

A) all public state variables and properties, public and internal functions and modifiers.
B) all public and private state variables, public, internal and external functions, but not modifiers
C) all public state variables and properties, public functions and modifiers, but not internal, external or private ones.
Question
All low-level functions on the address, so address.send(), address.call.valueQQ, address.callcode and address.delegatecall:

A) are interrupting execution on error, because they throw an exception.
B) continuing execution on error silently, which is the reason why they are so dangerous.
C) returning Booleans to indicate an error during execution.
D) .send() throws an exception, while the other functions are returning Booleans during execution to indicate an error.
Question
The difference between address.send() and address.transfer() is:

A) .send returns a Boolean and .transfer throws an exception on error. Both just forward the gasstipend of 2300 gas and are considered safe against re-entrancy.
B) .send throws an exception and .transfer returns a Boolean on error. Both just forward the gasstipend of 2300 gas and considered safe against re-entrancy
C) .send returns a Boolean and .transfer throws an exception on error. .send is considered dangerous, because it sends all gas along, while .transfer only sends the gas stipend of 2300 gas along
D) .send and .transfer are both considered low-level functions which are dangerous, because they send all gas along. It's better to use address.call.value()() to control the gas-amount.
Question
When defining a new datatype:

A) its best to use a contract with public storage variables, so it can be used like a class.
B) it's best to use a struct, which is cheaper than deploying a new contract.
C) it's not possible to generate new datatypes in Solidity.
Question
Truffle has an integrated in-memory blockchain which makes unit-testing very easy:

A) True, but it's still good to use Ganache, or even a real private network for testing.
B) False, it's necessary to use Ganache or even a real private network for testing.
Question
What is the difference between ERC20 and ERC721 Tokens in simple terms?

A) The tokens of a certain ERC20 symbol are all the same, the tokens of an ERC721 symbol are all different. So, ERC20 tokens are fungible, while ERC721 tokens are non-fungible.
B) The tokens of a certain ERC20 symbol are all different, the tokens of an ERC721 symbol are all the same. So, ERC20 tokens are non-fungible while ERC721 tokens are fungible.
Question
When a smart contract pays out money:

A) it's good to use a push over a pull method.
B) it's good to use a push and a pull method to ensure that participants can get their money no matter the contract state. In addition to and pushing it should contain a withdraw method.
C) it's good to use only pull and no push method.
Question
When solidity is compiled then also Metadata is generated:

A) the Metadata contains the ABI Array, which defines the Interface to interact with the Smart Contract. Metadata can also contain the address of the smart contract when it gets deployed.
B) metadata contains the address, and the size of the smart contract. The ABI Array is generated externally upon deploying the smart contract.
C) the ABI array and the Metadata are not generated when solidity is compiled to bytecode, its generated by a migration software which deploys the smart contract on the blockchain.
Question
.Require is used:

A) to check internal states that should never happen.
B) to check input arguments from users.
Question
In order to implement an ERC20 token contract, you'd need at least to implement the following functions and events in order to fulfill the interface requirements:

A) totalSupply(), balanceOf(address), allowance(address,address), transfer(address,uint256), approve(address,uint256), transferFrom(address,address,uint256). Events: Transfer(address,address,uint256), Approval(address,address,uint256)
B) name(), symbol(), totalSupply(), balanceOf(address), ownerOf(uint26),approve(address,uint256), takeOwnership(uint256),transfer(address,uint256),Events: Transfer(address,address,uint256), Approval(address,address,uint256)
Question
Go-Ethereum vs. Ganache:

A) both are the same, just implemented in a different language.
B) with Go-Ethereum you get a real blockchain node where you can create your own local private network, connect to Test-Networks or the Main-Net, while with Ganache you get an in-memory blockchain simulation.
C) with Ganache you get a real blockchain node where you can connect to the Test-Networks Rinkeby and Ropsten.
Question
To communicate with an Ethereum node via JavaScript:

A) the library you use must make use of the JSON-RPC Interface of an Ethereum Node.
B) must Implement the Ethereum Protocol to connect to other Ethereum Nodes.
C) must use Web3.js, which is closed source to communicate to other Ethereum Nodes.
Question
When using require to check input parameters and it evaluates to false:

A) all gas is consumed
B) all remaining gas is returned.
Question
Address.Call vs. Address.Delegatecall:

A) Address.call() is used for calling other contracts using the scope of the called contract in terms of storage variables. Address.delegatecall() is used for libraries, which uses the storage variables of the contract who called. Libraries are a great way to re-use already existing code and delegatecall can make sure that no storage is used from the library, instead it looks like the code is directly copied into the calling contract.
B) Address.delegatecall() is used for calling other contracts using the scope of the called contract in terms of storage variables. Address.call() is used for libraries, which uses the storage variables of the contract who called. Libraries are a great way to re-use already existing code and call() can make sure that no storage is used from the library, instead it looks like the code is directly copied into the calling contract.
Question
PoS:

A) would be better, because it can reduce the amount of energy needed for mining.
B) would be worse, because it would increase the amount of energy needed for mining.
Question
Address.send() and address.transfer() are considered:

A) safe against reentrancy because of the small gas stipend of 2300 gas.
B) dangerous because they send all gas along, it's better to use address.call.value()().
Question
EVM assembly:

A) is much better than Solidity and a viable alternative.
B) can be split across multiple files, but every contract must be in a file with the same name as the contract itself.
C) is another language similar to LLL, more secure than Solidity.
Question
Assert is used:

A) to check internal states that should never happen.
B) to check input arguments from users.
Question
Finish the sentence: The Library Web3.js is …:

A) useful when developing distributed applications with HTML and JavaScript, because it already implements the abstraction of the JSON-RPC interface of Ethereum Nodes.
B) necessary when developing distributed applications with HTML and JavaScript, because the proprietary JSON-RPC interface of Ethereum Nodes is a closed source.
Question
Events:

A) are stored on chain and are a great way to get a return value when a contract calls another contract.
B) are stored in something like a side-chain and cannot be accessed by contracts.
C) are used primarily for debugging exceptions in solidity.
Question
Solidity gets compiled:

A) to bytecode that can't be understood by humans.
B) to bytecodes which are essentially opcodes running instruction by instruction.
Question
Why is it important to follow the same Interfaces?

A) Websites that try to interface with the Token would have to know the exact ABI. It is upfront clear how the interaction has to be with the standard Interfaces.
B) The Ethereum Foundation can easily validate the Tokens and approve any audits by following the standard interface.
Question
According to the official Style Guide:

A) you should capitalize function names, events and contract names, to avoid confusion with JavaScript. You should use Tabs to indentation and a maximum of 80 characters per line.
B) contract names should be capitalized, while functions should be mixedCase. You should use 4 spaces as indentation and a maximum of 79 (or 99) characters per line.
C) contract should be mixedCase, as well as function names. Events should be capitalized. 2 spaces should be used as indentation and a maximum of 120 characters per line.
Question
The Fallback function:

A) cannot receive Ether, not even by adding the payable modifier.
B) can contain as much logic as you want, but it's better to keep it short and not exceed the gas stipend of 2300 gas.
C) can be used to avoid receiving ether.
Question
To avoid issues during Ethereum platform upgrades:

A) it's good to inform users about the updates via a newsletter.
B) it's good to have the ability to pause a contract in order to manage the money at risk.
C) Ethereum doesn't upgrade the platform. It's fixed and final.
Question
If we divide two integers: 5/2, the result is:

A) 2, because the decimal is truncated.
B) 3, because it's always rounded.
C) 2.5, because it's automatically converted into a float.
Question
The JSON-RPC Protocol:

A) is used to communicate between blockchain nodes.
B) is used to ensure safe communication between miners.
C) is a mean of dumping the blockchain data in a so-called consensus export.
D) is used to communicate between the blockchain node and externally running applications.
Unlock Deck
Sign up to unlock the cards in this deck!
Unlock Deck
Unlock Deck
1/85
auto play flashcards
Play
simple tutorial
Full screen (f)
exit full mode
Deck 2: BTA Certified Blockchain Developer - Ethereum
1
Ethereum Nodes:

A) must implement the Ethereum protocol and external access can only be done via the proprietary Ethereum Libraries like Web3.js.
B) must implement the Ethereum Protocol and a JSON-RPC to talk with clients.
C) must implement Web3.js to interact with Websites.
B
2
A Private Network is:

A) a side Channel to the Ethereum Main Net which costs less gas to run smart contracts.
B) an exact clone of the Rinkeby Test-Network which can be started as virtual machine in the Azure Cloud.
C) a Network running only in a private area, where people cannot join freely and openly.
C
3
It's possible to access the blockchain via an Ethereum Node:

A) only via JavaScript because there is the proprietary Web3.js library.
B) by any programming language, as long as it adheres to the JSON-RPC standard.
B
4
Consensus is reached:

A) by the miner nodes which make sure that a transaction is valid.
B) by every single node in the blockchain network executing the same transaction.
C) by a cryptographic secure signature algorithm called ECDSA which makes sure that cheating is impossible.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
5
Proof of Work (PoW) vs. Proof of Stake.

A) PoW is computationally intensive which requires lots of energy. On the other hand, miners earn straightforward a reward for mining a block and incorporating transactions.
B) PoW is better than PoS, because with PoS we increase the amount of energy spent on the network.
C) PoS is mining with specialized new hardware that has to be purchased with a stack of Ether in the network. Hence the Name: Proof of Stake, which derives from Stack.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
6
Block Difficulty:

A) is determined by the Ethereum Committee every fortnight to reflect the average amount of transaction and it cannot be influenced by the network itself.
B) increases when the time between mined blocks is below 10 seconds, while it decreases when the time is above 20 seconds.
C) increases when the time between mined blocks is below 20 seconds, while it decreases when the time is above 60 seconds.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
7
Hashing Mining uses:

A) Keccack256 while internally to hash values it's easy to use the Dagger-Hashimoto to create a meaningful hash.
B) the Dagger-Hashimoto hashing while internally the EVM uses SHA256 which is an alias for Keccack256.
C) the Dagger-Hashimoto hashing while internally the EVM uses Keccack256 which is almost similar to SHA256, but has a different padding so produces different hashes.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
8
What are Ethereum Nodes?

A) Programs implementing the Ethereum Protocol to talk to each other and JSON-RPC interfaces to talk to the outside world.
B) A Java-Script library to compile and run Solidity Code.
C) A Framework for deploying and running smart contract in a decentralized way.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
9
A Blockchain Node:

A) can never become a mining node.
B) can always become a mining node.
C) can become a mining node, depending if the implementation has the functionality implemented.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
10
Which is the right order for Denominations?

A) Wei, Finney, Szabo, Ether, Tether.
B) Finney, Szabo, Mether, Gwei.
C) Gwei, Szabo, Finney, Ether.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
11
To get most out of the blockchain, it is best:

A) to use it for the whole business logic. It's always best to have everything in once place.
B) to use it only for things which need the benefits of the blockchain.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
12
What's the correct scientific notation?

A) 1 Ether = 10^18 wei, 10^9 Gwei, 10^3 Finney
B) 1 Ether = 10^19 wei, 10^13 Gwei, 10^3 Finney
C) 1 Ether = 10^16 wei, 10^13 Gwei, 10^3 Finney
D) 1 Ether = 10^18 wei, 10^6 Gwei, 10^6 Finney
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
13
Transactions containing the same data to create the same smart contract are:

A) always having the same signature.
B) having a different signature because of the nonce which changes upon every transaction.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
14
Having a bug-bounty program early on:

A) can help to engage the community in testing your smart contracts and therefore help to find bugs early.
B) might be a burden as it is an administrative overhead mainly.
C) is completely useless. Who wants to test beta-ware software? It's better to start with the bug-bounty program after the contract is released on the main-net.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
15
Which statement is true about the EVM?

A) While the EVM is Sandboxed, it isn't as powerful as the Bitcoin Network, because it's not Turing Complete.
B) The EVM can't access hardware layers or anything outside a blockchain node because it's sandboxed.
C) The EVM is extremely powerful, turing complete and perfect for doing computational intensive things, because of the direct access to the graphics card.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
16
What are Private Keys used for?

A) To Protect the Public Keys by being cryptographically significant.
B) To Sign Transactions And To Derive an Address From.
C) To Generate An Address which can sign transactions.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
17
Sending one Ether is actually internally translated:

A) to Wei, so it will send the equivalent of 10^18 Wei.
B) to Finney, so it will send the equivalent of 10^3 Finney.
C) to Szabo, so it will send the equivalent of 10^6 Szabo.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
18
When a new block is mined:

A) a list of transactions as well as uncles is incorporated in the block. All gas that is used during those transactions is added to the miners' balance. Also, the block reward is added to the miner. Then the same transactions are run again by every participating node in the network to achieve consensus.
B) a list of transactions is incorporated in that block. Gas used during the execution is attached to the executing contracts while the block reward is automatically spread across the mining pool to ensure a fair spread. Consensus is reached by a special form of hash code.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
19
A Hashing Algorithm is deterministic. What does it mean?

A) it always produces the same output given the same input.
B) it uses equally distributed data to produce the output given a long input.
C) it shouldn't be possible to re-generate the input given the output.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
20
Externally Owned Accounts (EoA):

A) are changing their address every time a Transaction is sent because of the nonce.
B) are keeping their address, but on the blockchain a nonce is increased every time they send a transaction to avoid replay attacks.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
21
GETH:

A) is the reference implementation of the Ethereum protocol and every other node implementation internally uses the closed-source from Geth.
B) is the library that is used for the blockchain node Go-Ethereum. It is also used by Parity is parts, because it's closed source.
C) is one of the many blockchain nodes that implement the Ethereum Protocol. It's open source and everyone can contribute.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
22
Function and Variable Visibility:

A) a function that is marked as internal cannot be called by other contracts, unless the function is used by a derived contract. Private Functions cannot be called by any other outside contract and public variables are generating automatically a getter function.
B) a function that is marked as external can never be called internally. Private functions can also be called by derived contracts using inheritance. Private variables are accessible also in derived contracts.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
23
To Iterate through a mapping, you:

A) can use the length parameter of the mapping.
B) you need an external helper variable.
C) you cannot iterate any mapping to make the overall language design more safe.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
24
You interact with a smart contract and see a gas usage of 50,000 gas with a gas cost of 15Gwei. How much Ether would you have to pay to the miner?

A) 750,000,000,000,000 Wei
B) 750,000,000,000 Wei
C) 750,000,000 Wei
D) A flat fee of 1 Ether
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
25
To compare a String in Solidity you use:

A) string1 == string2
B) the internal function "str_compare(str1,str2)"
C) you can't directly compare two strings, but one method would be to hash both strings and compare the hashes.
D) bytes32(string1) == bytes32(string2)
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
26
Multi-Line Comments in Solidity are:

A) working with either // or ///
B) working with /* comment */ or /** @.. natspec style */
C) not possible, all comments must be single-line.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
27
If a User calls contract A and that calls Contract B, then msg.sender in Contract B will contain the address of:

A) the User.
B) contract A.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
28
A version pragma is a great way to make it clear:

A) for which compiler version a smart contract was developed for. It helps to avoid breaking changes.
B) for which blockchain a smart contract was developed for. It helps to avoid confusion with beta-customers.
C) for which blockchain node a smart contract was developed for. It helps to avoid mixing up different versions of go-ethereum.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
29
Variables of the type address store:

A) a 20 bytes value
B) a 32 bytes value
C) a string
D) a 20 characters long hex number
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
30
Loops in Solidity:

A) are a great way to circumvent gas requirements, because a loop will only consume gas once.
B) are dangerous when used with data structures that grow, such as arrays or mapping, because it is hard to estimate the gas requirements.
C) should be avoided where possible, because of unknown side-effects on the gas requirements.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
31
To store almost all data in the Ethereum Blockchain:

A) a Linked List with pointers to previous blocks hashes is used.
B) a Merkle Patricia Trie is used.
C) a Radix Trie is used because the Merkle Patricia Trie is too inefficient.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
32
View and Pure Functions:

A) can only be accessed during calls.
B) can be accessed during transactions and calls.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
33
View and Pure Functions:

A) a function marked as pure can change the state, while a view function can only return static calls.
B) a function marked as view can never access state variables, while pure functions are here to return only one value.
C) a view function can access state variables, but not write to them. A Pure function cannot modify or read from state.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
34
On a consortium network:

A) everybody can become a miner, everybody can send transactions and everything is public.
B) usually only a few selected nodes can be miners. Transactions can be further limited.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
35
Address.send():

A) will cascade exceptions and address.transfer() will return a false on error.
B) will return false on error while address.transfer() will cascade transactions.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
36
Gas costs accrue on sending a transaction:

A) no matter the content.
B) only with a new smart contract deployment.
C) only interacting with an already deployed smart contract.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
37
The following are value types in Solidity.

A) Integer, Boolean, Struct, Mapping and Enum.
B) Integer, Boolean, Enum and Addresses.
C) Integer, Boolean, Structs and Fixed Point Numbers.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
38
You need to use ____________ to get the address that initiated the transaction.

A) Tx.origin
B) Msg.sender
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
39
Files can be imported:

A) using relative and absolute paths, where the "." And the ".." depict that it's a relative path.
B) only via GitHub using the Repository and Username.
C) using the special requirefile(...) statement, which looks in a specific library path to import files.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
40
Importing from GitHub:

A) works across all compilers and platforms the same way.
B) is generally possible, but currently works only in Remix, but doesn't work in Truffle.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
41
Why is Unit-Testing so important?

A) It helps you to find bugs, regression bugs and sometimes also helps you to understand your code from different angles.
B) It is a great way to spend time on something that you get paid for. But ultimately it will just slow down the development process.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
42
Using truffle-contract over Web3.js:

A) is a must for every developer, because Web3.js changes so often.
B) is a convenient way because Web3.js is currently still in beta and truffle-contract can handle transactions with JavaScript-promises.
C) they are both completely different things. Truffle-Contract is a framework while Web3.js is a library.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
43
If you are starting a new ERC20 token:

A) it would be best to start from scratch, just looking at the required interface.
B) it is beneficial to copy and paste the already existing code from the Ethereum wiki and modify this until you like it.
C) best is to start with an audited implementation, for example from OpenZeppelin, in order to reuse already existing code.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
44
It's easy to write clean-room unit-tests with truffle:

A) for Java, JavaScript, and C++
B) for JavaScript using Web3.js
C) for Solidity and JavaScript
D) for any language, as long as it adheres to the open Testing-Interface from Truffle
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
45
What's the difference between Ethereum Request for Comments (ERC) and Ethereum Improvement Proposals (EIP)?

A) ERC are here to define standards for the usage of Ethereum. EIP are here to improve the Ethereum Protocol itself.
B) ERC are here to propose new distributed applications on top of the Ethereum layer, while EIP are here to improve existing mining software.
C) ERC are an open platform to discuss continuous forking of the Ethereum platform. Successful forks are then incorporated in the EIP for further voting by the Ethereum Consortium.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
46
When using assert to check invariants and it evaluates to false:

A) all gas is consumed.
B) all remaining gas is returned.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
47
Address.call.value():

A) sends the gas stipend of 2300 gas and returns a false on error.
B) sends all the gas along and cascades exceptions.
C) sends all the gas along and returns a false on error.
D) sends the gas stipend of 2300 gas and cascades exceptions.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
48
Using selfdestruct(beneficiary) with the beneficiary being a contract without a payable fallback function:

A) will throw an exception, because the fallback function is non-payable and thus cannot receive ether.
B) it's impossible to secure a contract against receiving ether, because selfdestruct will always send ether to the address in the argument. This is a design decision of the Ethereum platform.
C) selfdestruct doesn't send anything to a contract, it just re-assigns the owner of the contract to a new person. Sending ether must be done outside of selfdestruct.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
49
When you do external calls to other smart contracts:

A) you should follow the checks-effects-interactions pattern and avoid state changes after the call.
B) you should follow the effects-checks-interactions pattern and avoid state changes before the call.
C) you should follow the checks-effects-interactions pattern, which is only necessary when you do calls to contracts where a direct contract call is not possible.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
50
Truffle:

A) is a framework that helps developers with Testing, Deployment and Management of Smart Contracts and Distributed Applications.
B) is a library that helps developers to connect to Ethereum nodes, because it abstracts the JSONRPC interface.
C) is a framework for Java, similar to Web3.js for JavaScript. It's a great way to develop distributed Java enterprise applications.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
51
It's not possible to use inheritance from multiple sources in Solidity.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
52
Unit-Testing on a local chain is important, because it helps you:

A) to run tests quickly and especially for free, compared to continuous deployment on the MainNetwork. This way you save a lot of fees, time and costs.
B) to run tests in an environment where logging is activated. On the Main-Net you have no access to transaction logs and this is ultimately the information you need to debug your contracts.
C) to avoid regression bugs with contracts that are updated constantly on the main-net. Once you update a contract on the main-net, the address stays the same, but the code changes and this can have disastrous side-effects.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
53
To generate a random number:

A) it's good to use the block timestamp, as this is always different.
B) it's good to use the block hash as this is clearly always very different.
C) it's good to use the RANDAO smart contract.
D) it's not possible to have a random number in a deterministic environment such as the Ethereum blockchain.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
54
Inheritance is useful, because a contract that is derived from another contract can make use of:

A) all public state variables and properties, public and internal functions and modifiers.
B) all public and private state variables, public, internal and external functions, but not modifiers
C) all public state variables and properties, public functions and modifiers, but not internal, external or private ones.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
55
All low-level functions on the address, so address.send(), address.call.valueQQ, address.callcode and address.delegatecall:

A) are interrupting execution on error, because they throw an exception.
B) continuing execution on error silently, which is the reason why they are so dangerous.
C) returning Booleans to indicate an error during execution.
D) .send() throws an exception, while the other functions are returning Booleans during execution to indicate an error.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
56
The difference between address.send() and address.transfer() is:

A) .send returns a Boolean and .transfer throws an exception on error. Both just forward the gasstipend of 2300 gas and are considered safe against re-entrancy.
B) .send throws an exception and .transfer returns a Boolean on error. Both just forward the gasstipend of 2300 gas and considered safe against re-entrancy
C) .send returns a Boolean and .transfer throws an exception on error. .send is considered dangerous, because it sends all gas along, while .transfer only sends the gas stipend of 2300 gas along
D) .send and .transfer are both considered low-level functions which are dangerous, because they send all gas along. It's better to use address.call.value()() to control the gas-amount.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
57
When defining a new datatype:

A) its best to use a contract with public storage variables, so it can be used like a class.
B) it's best to use a struct, which is cheaper than deploying a new contract.
C) it's not possible to generate new datatypes in Solidity.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
58
Truffle has an integrated in-memory blockchain which makes unit-testing very easy:

A) True, but it's still good to use Ganache, or even a real private network for testing.
B) False, it's necessary to use Ganache or even a real private network for testing.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
59
What is the difference between ERC20 and ERC721 Tokens in simple terms?

A) The tokens of a certain ERC20 symbol are all the same, the tokens of an ERC721 symbol are all different. So, ERC20 tokens are fungible, while ERC721 tokens are non-fungible.
B) The tokens of a certain ERC20 symbol are all different, the tokens of an ERC721 symbol are all the same. So, ERC20 tokens are non-fungible while ERC721 tokens are fungible.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
60
When a smart contract pays out money:

A) it's good to use a push over a pull method.
B) it's good to use a push and a pull method to ensure that participants can get their money no matter the contract state. In addition to and pushing it should contain a withdraw method.
C) it's good to use only pull and no push method.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
61
When solidity is compiled then also Metadata is generated:

A) the Metadata contains the ABI Array, which defines the Interface to interact with the Smart Contract. Metadata can also contain the address of the smart contract when it gets deployed.
B) metadata contains the address, and the size of the smart contract. The ABI Array is generated externally upon deploying the smart contract.
C) the ABI array and the Metadata are not generated when solidity is compiled to bytecode, its generated by a migration software which deploys the smart contract on the blockchain.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
62
.Require is used:

A) to check internal states that should never happen.
B) to check input arguments from users.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
63
In order to implement an ERC20 token contract, you'd need at least to implement the following functions and events in order to fulfill the interface requirements:

A) totalSupply(), balanceOf(address), allowance(address,address), transfer(address,uint256), approve(address,uint256), transferFrom(address,address,uint256). Events: Transfer(address,address,uint256), Approval(address,address,uint256)
B) name(), symbol(), totalSupply(), balanceOf(address), ownerOf(uint26),approve(address,uint256), takeOwnership(uint256),transfer(address,uint256),Events: Transfer(address,address,uint256), Approval(address,address,uint256)
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
64
Go-Ethereum vs. Ganache:

A) both are the same, just implemented in a different language.
B) with Go-Ethereum you get a real blockchain node where you can create your own local private network, connect to Test-Networks or the Main-Net, while with Ganache you get an in-memory blockchain simulation.
C) with Ganache you get a real blockchain node where you can connect to the Test-Networks Rinkeby and Ropsten.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
65
To communicate with an Ethereum node via JavaScript:

A) the library you use must make use of the JSON-RPC Interface of an Ethereum Node.
B) must Implement the Ethereum Protocol to connect to other Ethereum Nodes.
C) must use Web3.js, which is closed source to communicate to other Ethereum Nodes.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
66
When using require to check input parameters and it evaluates to false:

A) all gas is consumed
B) all remaining gas is returned.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
67
Address.Call vs. Address.Delegatecall:

A) Address.call() is used for calling other contracts using the scope of the called contract in terms of storage variables. Address.delegatecall() is used for libraries, which uses the storage variables of the contract who called. Libraries are a great way to re-use already existing code and delegatecall can make sure that no storage is used from the library, instead it looks like the code is directly copied into the calling contract.
B) Address.delegatecall() is used for calling other contracts using the scope of the called contract in terms of storage variables. Address.call() is used for libraries, which uses the storage variables of the contract who called. Libraries are a great way to re-use already existing code and call() can make sure that no storage is used from the library, instead it looks like the code is directly copied into the calling contract.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
68
PoS:

A) would be better, because it can reduce the amount of energy needed for mining.
B) would be worse, because it would increase the amount of energy needed for mining.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
69
Address.send() and address.transfer() are considered:

A) safe against reentrancy because of the small gas stipend of 2300 gas.
B) dangerous because they send all gas along, it's better to use address.call.value()().
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
70
EVM assembly:

A) is much better than Solidity and a viable alternative.
B) can be split across multiple files, but every contract must be in a file with the same name as the contract itself.
C) is another language similar to LLL, more secure than Solidity.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
71
Assert is used:

A) to check internal states that should never happen.
B) to check input arguments from users.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
72
Finish the sentence: The Library Web3.js is …:

A) useful when developing distributed applications with HTML and JavaScript, because it already implements the abstraction of the JSON-RPC interface of Ethereum Nodes.
B) necessary when developing distributed applications with HTML and JavaScript, because the proprietary JSON-RPC interface of Ethereum Nodes is a closed source.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
73
Events:

A) are stored on chain and are a great way to get a return value when a contract calls another contract.
B) are stored in something like a side-chain and cannot be accessed by contracts.
C) are used primarily for debugging exceptions in solidity.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
74
Solidity gets compiled:

A) to bytecode that can't be understood by humans.
B) to bytecodes which are essentially opcodes running instruction by instruction.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
75
Why is it important to follow the same Interfaces?

A) Websites that try to interface with the Token would have to know the exact ABI. It is upfront clear how the interaction has to be with the standard Interfaces.
B) The Ethereum Foundation can easily validate the Tokens and approve any audits by following the standard interface.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
76
According to the official Style Guide:

A) you should capitalize function names, events and contract names, to avoid confusion with JavaScript. You should use Tabs to indentation and a maximum of 80 characters per line.
B) contract names should be capitalized, while functions should be mixedCase. You should use 4 spaces as indentation and a maximum of 79 (or 99) characters per line.
C) contract should be mixedCase, as well as function names. Events should be capitalized. 2 spaces should be used as indentation and a maximum of 120 characters per line.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
77
The Fallback function:

A) cannot receive Ether, not even by adding the payable modifier.
B) can contain as much logic as you want, but it's better to keep it short and not exceed the gas stipend of 2300 gas.
C) can be used to avoid receiving ether.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
78
To avoid issues during Ethereum platform upgrades:

A) it's good to inform users about the updates via a newsletter.
B) it's good to have the ability to pause a contract in order to manage the money at risk.
C) Ethereum doesn't upgrade the platform. It's fixed and final.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
79
If we divide two integers: 5/2, the result is:

A) 2, because the decimal is truncated.
B) 3, because it's always rounded.
C) 2.5, because it's automatically converted into a float.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
80
The JSON-RPC Protocol:

A) is used to communicate between blockchain nodes.
B) is used to ensure safe communication between miners.
C) is a mean of dumping the blockchain data in a so-called consensus export.
D) is used to communicate between the blockchain node and externally running applications.
Unlock Deck
Unlock for access to all 85 flashcards in this deck.
Unlock Deck
k this deck
locked card icon
Unlock Deck
Unlock for access to all 85 flashcards in this deck.