|
2 | 2 | title: Glossary
|
3 | 3 | seo-title: Iron Fish Protocol Whitepaper Glossary and Concepts
|
4 | 4 | ---
|
| 5 | + |
| 6 | +## Asset |
| 7 | + |
| 8 | +A user-created resource which can be transferred privately, minted, and burned. Contains metadata, a name, the owner public address, and nonce. |
| 9 | + |
| 10 | +### Asset Generator |
| 11 | + |
| 12 | +The [`group_hash`](#group-hash) of the [Hashed Asset Info](#hashed-asset-info). Calculated in public so the hash can be verified at consensus. |
| 13 | + |
| 14 | +### Asset Identifier |
| 15 | + |
| 16 | +The 32-byte representation of the [Asset Generator](#asset-generator) point. |
| 17 | + |
| 18 | +### Hashed Asset Info |
| 19 | + |
| 20 | +A Pedersen Hash of the Asset Info (owner, name, metadata, nonce) . This hash is the pre-image for the [`group_hash`](#group-hash) to generate the [Asset Generator](#asset-generator) point. |
| 21 | + |
| 22 | +## Block |
| 23 | + |
| 24 | +A piece of data in the Iron Fish chain which holds a record of transactions, graffiti, difficulty, previous [Block](#block), sequence, and timestamp. |
| 25 | + |
| 26 | +### Graffiti |
| 27 | + |
| 28 | +32 byte field that may be assigned at will by the miner who mined the block. |
| 29 | + |
| 30 | +### Difficulty |
| 31 | + |
| 32 | +Measure of how difficult it is to produce an Iron Fish [Block](#block). |
| 33 | + |
| 34 | +### Sequence |
| 35 | + |
| 36 | +The sequential index number of a block in the Iron Fish chain, or the number of blocks up to and including the current block. |
| 37 | + |
| 38 | +## Circuit |
| 39 | + |
| 40 | +A program used to create the [Proof](#proof) for a [Transaction Description](#description). |
| 41 | + |
| 42 | +## Commitment |
| 43 | + |
| 44 | +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. |
| 45 | + |
| 46 | +## Groth16 |
| 47 | + |
| 48 | +The zero-knowledge proving system used in Iron Fish and Sapling. Named after the [paper](https://eprint.iacr.org/2016/260) by Jens Groth. |
| 49 | + |
| 50 | +## Group Hash |
| 51 | + |
| 52 | +A function which is used to obtain generator points on the Jubjub curve. |
| 53 | + |
| 54 | +## Keys |
| 55 | + |
| 56 | +A piece of data which can be used to encrypt and decrypt data. |
| 57 | + |
| 58 | +### Spending Key |
| 59 | + |
| 60 | +> Also known as Secret Key |
| 61 | +
|
| 62 | +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. |
| 63 | + |
| 64 | +### Spend Authorization Key |
| 65 | + |
| 66 | +> Also known as `ask` |
| 67 | +
|
| 68 | +Derived from spending key using a seeded pseudorandom hash function. Used to construct [Authorization Key](#authorization-key). |
| 69 | + |
| 70 | +### Authorization Key |
| 71 | + |
| 72 | +> Also known as `ak` |
| 73 | +
|
| 74 | +Public key constructed by multiplying the [Spend Authorization Key](#spend-authorization-key) with a fixed generator base point for it on the Jubjub curve. |
| 75 | + |
| 76 | +### Proof Authorization Key |
| 77 | + |
| 78 | +> Also known as `nsk` |
| 79 | +
|
| 80 | +Derived from spending key using a seeded pseudorandom hash function. Used to construct the Nullifier Deriving Key. |
| 81 | + |
| 82 | +### Outgoing View Key |
| 83 | + |
| 84 | +> Also known as `ovk` |
| 85 | +
|
| 86 | +Allows users to decrypt a [Note](#note) for a spender from outgoing transactions. |
| 87 | + |
| 88 | +### Incoming View Key |
| 89 | + |
| 90 | +> Also known as `ivk` |
| 91 | +
|
| 92 | +Allows users to decrypt a [Note](#note) for an owner from incoming transactions. |
| 93 | + |
| 94 | +### View Key |
| 95 | + |
| 96 | +A composite of the [Outgoing View Key](#outgoing-view-key) and [Incoming View Key](#incoming-view-key) allowing for note decryption from both outgoing and incoming transactions. |
| 97 | + |
| 98 | +## Raw Transaction |
| 99 | + |
| 100 | +A JavaScript object which contains all the arguments to create a native [Iron Fish Transaction](#transaction). The data includes [spends](#spend-description), [outputs](#output-description), [mints](#mint-description), [burns](#burn-description), [expiration](#expiration), and [fee](#fee). |
| 101 | + |
| 102 | +## Transaction |
| 103 | + |
| 104 | +A collection of actions (ex. transfer of an [Asset](#asset) between two parties, burning supply of an [Asset](#asset), etc.) that is persisted and verified on a blockchain. |
| 105 | + |
| 106 | +The total value of a transaction balances to 0 by the following: |
| 107 | +``` |
| 108 | +sum(spends) + sum(mints) - sum(outputs) - sum(burns) - transaction_fee = 0 |
| 109 | +``` |
| 110 | + |
| 111 | +### Description |
| 112 | + |
| 113 | +An action which encapsulates a [Proof](#proof) and all the public parameters required to verify the proof and transaction. |
| 114 | + |
| 115 | +#### Spend Description |
| 116 | + |
| 117 | +A description which spends a given note by calculating and revealing its nullifier. |
| 118 | + |
| 119 | +#### Output Description |
| 120 | + |
| 121 | +A description which creates a note with a given value, owned by whoever holds the private key associated with the recipient public address. |
| 122 | + |
| 123 | +#### Mint Description |
| 124 | + |
| 125 | +A description which increases the supply of an [Asset](#asset) on the Iron Fish chain. |
| 126 | + |
| 127 | +#### Burn Description |
| 128 | + |
| 129 | +A description which decreases the supply of an [Asset](#asset) on the Iron Fish chain. |
| 130 | + |
| 131 | +### Expiration |
| 132 | + |
| 133 | +A sequence value after which the [Transaction](#transaction) will fail consensus and be invalid during block verification. |
| 134 | + |
| 135 | +### Fee |
| 136 | + |
| 137 | +A reward in $IRON which is paid out to miners for confirming [Transactions](#transaction) to a [Block](#block). |
| 138 | + |
| 139 | +## Miners |
| 140 | + |
| 141 | +Nodes that propose a new block to be added to the blockchain to other nodes. |
| 142 | + |
| 143 | +## Mining |
| 144 | + |
| 145 | +Core mechanism that defines by which rules new [Blocks](#block) are created and by which rules a peer can verify and accept an incoming [Blocks](#block). |
| 146 | + |
| 147 | +## Note |
| 148 | + |
| 149 | +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](#asset-generator). |
| 150 | + |
| 151 | +## Nullifier |
| 152 | + |
| 153 | +A 32 byte hash that when revealed marks a note as spent so that note cannot be spent again. |
| 154 | + |
| 155 | +## Proof |
| 156 | + |
| 157 | +A method to prove that is statement is true to a verifier. Iron Fish proofs are 192 byte [Groth16](#groth16) that can be verified with the public parameters and the associated circuit’s prepared verifying key. |
| 158 | + |
| 159 | +### Proof Inputs |
| 160 | + |
| 161 | +The raw public and private parameters needed to create a [Proof](#proof). |
| 162 | + |
| 163 | +## Wallet |
| 164 | + |
| 165 | +An Iron Fish wallet manages [Accounts](#account), listens to incoming transactions from the chain, and broadcasts transactions to the chain. |
| 166 | + |
| 167 | +### Account |
| 168 | + |
| 169 | +An Iron Fish account holds private [keys](#keys) which enable users to view transaction details and transfer assets to other addresses. |
0 commit comments