|An aggregator, or data feed, dictates: how data is brought on-chain from it's assigned source, how often updates can be requested, and from which set of oracles updates can be requested from.
|A curator is someone who scours the internet and builds on-chain job definitions from which publishers can use to build data feeds from.
|A crank is a priority queue of aggregators and their next available update time. The crank is the scheduling mechanism that allows feeds to be updated at a regular interval and reward the update requester for jump starting the system.
|A protected memory region within an application that is created and managed by Intel SGX. Enclaves provide a secure execution environment for sensitive code and data, ensuring their confidentiality and integrity.
|A history buffer is an optional feature that can be added to an aggregator and stores the last N accepted results along with a timestamp.
|Intel SGX (Software Guard Extensions)
|A set of security-related instruction codes built into Intel processors that provide a hardware-based method to create secure enclaves within the application's memory to protect sensitive data and code from unauthorized access or modification.
|A job, or OracleJob, stores a list of Switchboard tasks which instructs the oracle on how to bring data on-chain.
|A lease is a pre-funded escrow used to reward oracles for successfully updating a data feed.
|A unique identifier in Intel SGX technology that represents the identity and integrity of a specific enclave. It is a 256-bit hash value that is derived from the enclave's code and initial data during the enclave's creation process. The main purpose of `MRENCLAVE` is to enable remote attestation and ensure that the enclave running on a remote system is indeed the intended and genuine enclave.
|An oracle, or node, sits between the internet and a blockchain and facilitates the flow of information. An oracle reads in a feeds job definitions, calculates the result, and submits its response on-chain.
|Oracle consensus determines how oracles come to agreement on the accepted on-chain result. Switchboard oracles use the median oracle response as the accepted result. A feed authority can control how many oracles are requested and how many must respond to influence its security.
|An oracle queue is a round-robin queue of oracles actively heart beating on-chain. When an update is requested from a queue, the next N oracles are assigned to the update request and cycled to the back of the queue.
|A publisher is someone who builds and creates a data feed on-chain. Typically this is a program or dApp that requires the data.
|Quoting Enclave (QE)
|A special enclave provided by Intel that is responsible for generating quotes for remote attestation. The quoting enclave signs the enclave report with the Intel Enhanced Privacy ID (EPID) private key, which is only accessible to the QE.
|A process that allows a remote party to verify the identity, integrity, and authenticity of an enclave running on another system. Remote attestation involves generating a cryptographic report that includes MRENCLAVE and MRSIGNER values, which are then verified by the remote party.
|An instruction an oracle executes. A task can fetch, parse, or transform data.
|Trusted Execution Environment (TEE)
|A secure environment isolated from the rest of the system, where sensitive code can be executed and sensitive data can be processed with additional protection against unauthorized access or modification. Intel SGX is an example of a TEE.
|A feed authority may specify a variance threshold to prevent redundant update requests and only allow oracle responses if the variance percentage between the last accepted result and the current value exceeds some threshold. Useful for conserving a lease's funds and extends the life of a feed.
|Verifiable Random Function
|Verifiable Random Function (VRF) is a prove-able cryptographic function that uses a private key to generate a pseudo-random value which can be verified by anyone with just the public key without leaking the VRF producer's secret key.