# Glossary

## Asset#

A user-created resource which can be transferred privately, minted, and burned. Contains metadata, a name, the owner public address, and nonce.

### Asset Generator#

The group_hash of the Hashed Asset Info. Calculated in public so the hash can be verified at consensus.

### Asset Identifier#

The 32-byte representation of the Asset Generator point.

### Hashed Asset Info#

A Pedersen Hash of the Asset Info (owner, name, metadata, nonce) . This hash is the pre-image for the group_hash to generate the Asset Generator point.

## Block#

A piece of data in the Iron Fish chain which holds a record of transactions, graffiti, difficulty, previous Block, sequence, and timestamp.

### Graffiti#

32 byte field that may be assigned at will by the miner who mined the block.

### Difficulty#

Measure of how difficult it is to produce an Iron Fish Block.

### Sequence#

The sequential index number of a block in the Iron Fish chain, or the number of blocks up to and including the current block.

## Circuit#

A program used to create the Proof for a Transaction Description.

## Commitment#

Product of a value and random number as a way of committing to a value without revealing the value itself. Generally a point on the elliptic curve.

## Groth16#

The zero-knowledge proving system used in Iron Fish and Sapling. Named after the paper by Jens Groth.

## Group Hash#

A function which is used to obtain generator points on the Jubjub curve.

## Keys#

A piece of data which can be used to encrypt and decrypt data.

### Spending Key#

Also known as Secret Key

32-byte random seed used to construct other parts of an Iron Fish wallet. The expanded form of this key is required before a note can be spent.

### Spend Authorization Key#

Also known as ask

Derived from spending key using a seeded pseudorandom hash function. Used to construct Authorization Key.

### Authorization Key#

Also known as ak

Public key constructed by multiplying the Spend Authorization Key with a fixed generator base point for it on the Jubjub curve.

### Proof Authorization Key#

Also known as nsk

Derived from spending key using a seeded pseudorandom hash function. Used to construct the Nullifier Deriving Key.

### Outgoing View Key#

Also known as ovk

Allows users to decrypt a Note for a spender from outgoing transactions.

### Incoming View Key#

Also known as ivk

Allows users to decrypt a Note for an owner from incoming transactions.

### View Key#

A composite of the Outgoing View Key and Incoming View Key allowing for note decryption from both outgoing and incoming transactions.

## Raw Transaction#

A JavaScript object which contains all the arguments to create a native Iron Fish Transaction. The data includes spends, outputs, mints, burns, expiration, and fee.

## Transaction#

A collection of actions (ex. transfer of an Asset between two parties, burning supply of an Asset, etc.) that is persisted and verified on a blockchain.

The total value of a transaction balances to 0 by the following:

sum(spends) + sum(mints) - sum(outputs) - sum(burns) - transaction_fee = 0

### Description#

An action which encapsulates a Proof and all the public parameters required to verify the proof and transaction.

#### Spend Description#

A description which spends a given note by calculating and revealing its nullifier.

#### Output Description#

A description which creates a note with a given value, owned by whoever holds the private key associated with the recipient public address.

#### Mint Description#

A description which increases the supply of an Asset on the Iron Fish chain.

#### Burn Description#

A description which decreases the supply of an Asset on the Iron Fish chain.

### Expiration#

A sequence value after which the Transaction will fail consensus and be invalid during block verification.

### Fee#

A reward in \$IRON which is paid out to miners for confirming Transactions to a Block.

## Miners#

Nodes that propose a new block to be added to the blockchain to other nodes.

## Mining#

Core mechanism that defines by which rules new Blocks are created and by which rules a peer can verify and accept an incoming Blocks.

## Note#

The basic unit to represent value of any asset type on the Iron Fish chain. Always stored in its encrypted format publicly. Contains the owner address, original sender address, value, memo, and Asset Generator.

## Nullifier#

A 32 byte hash that when revealed marks a note as spent so that note cannot be spent again.

## Proof#

A method to prove that is statement is true to a verifier. Iron Fish proofs are 192 byte Groth16 that can be verified with the public parameters and the associated circuit’s prepared verifying key.

### Proof Inputs#

The raw public and private parameters needed to create a Proof.

## Wallet#

An Iron Fish wallet manages Accounts, listens to incoming transactions from the chain, and broadcasts transactions to the chain.

### Account#

An Iron Fish account holds private keys which enable users to view transaction details and transfer assets to other addresses.