Transactions
Every second, transactions take place between parties everywhere around the world. In the context of blockchain, you will most likely think of transactions like processing a payment between two parties, placing an order on an online store, or keeping track of accounts. But if you think outside the box, there are so many more kinds of transactions that you, as an Oracle developer or customer, can imagine. For example, the registration of vehicles, tracking diamonds around the world, keeping medical records, sharing documents, and getting access to your favorite online service all involve transactions. In most cases, each participant keeps track of these transactions by recording and securing them in a ledger (for example, a database, spreadsheet, or computerized record tracking system), thus holding their version of the truth. As you can understand, this is a perfect recipe for human error, or possibly even fraud when using multiple ledgers.
Transactions can definitely be complex, especially if they rely on intermediaries for validation. Doing so can create inefficiencies and eventually result in delays and potential losses for all parties. The following diagram shows the complexity of a financial transaction when buying something on, for example, Amazon, and paying by credit card:
One of the goals of blockchain is to secure and be able to view the end-to-end transaction by reducing those vulnerabilities. Functionally, a blockchain is an open, shared ledger for recording the history of transactions between two parties in an efficient, verifiable, and permanent way. The ledger is shared with everybody who has a transaction recorded in it. This ledger can also be programmed to trigger transactions automatically. Technically speaking, a blockchain can be seen or understood as a distributed database that records a continuously growing list of transactions. Commonly, a key/value data structure is used to record these transactions and their assets, as shown in the following diagram: