What is blockchain, the bitcoin ecosystem based on APIs?
Blockchain is the technology supporting the process of mining and pricing bitcoins, a procedure whereby the users of this cryptocurrency make payments and transactions in an encrypted and authenticated form on a distributed database.
Any issue related to bitcoins is invariably linked to blockchain, the technology on which the cryptocurrency is based. The end result is a huge database distributed in numerous servers all around the world that gathers all the transactions made in bitcoins. Each one of these operations, encrypted and authenticated, is added to the chain of blocks –or blockchain– on which bitcoins are based. This process would be impossible without APIs.
The fact is that today, bitcoin technology offers many more possibilities and arouses more interest among developers than other online payment systems such as PayPal, for example. Currently within the collaborative development platform GitHub there are almost 3,200 repositories linked to PayPal, whereas there are over 8,000 repositories linked to bitcoin. This fever chart compiled by CoinDesk shows the annual growth of both systems since 2009.
The consulting company Deloitte carried out a survey within the bitcoiner community to discover the future outlook for the sector. Some of the most interesting questions in the survey include: What fields related to blockchain had the highest penetration forecasts? 37% of respondents said the launch of new products, followed by new cases of use.
How does blockchain work?
Anyone can use bitcoins –the only thing you need is a virtual wallet installed in a device. You don't even need to have much technical knowledge to operate with this cryptocurrency, as it works in the same way as any online payment process. What you have to take into account is that every transaction a user makes with bitcoins –once verified– is added to the blockchain, and at that precise instant it begins to form part of a shared accounting system.
This blockchain or shared accounting system is the result of all the transactions made with bitcoin wallets by all the users on the Internet. Each transaction requires a code and a signature that identifies each user and encrypts and verifies each transaction. Each transaction enters the blockchain through a process known as bitcoin mining, based on a procedure known as proof of work (POW).
Each transaction, which is always public, must be verified to avoid problems within the blockchain: bitcoins must be authentic and not duplicated. Otherwise, someone loses money. The idea is that a series of nodes are responsible for verifying the authenticity of each transaction, a protocol that usually takes 10 minutes. It is reevaluated every 2016 blocks, so the process always takes around that time to verify. The idea is that each transaction is verified by consensus, and the transaction authentication process receives a commission through the proof of work. This system avoids violations without having to depend on a trustworthy arbiter (for example a bank).
● Open code: all the code relating to the wallets is open code, which facilitates the joint work of the community of developers.
● Offline transactions: the wallets can operate offline with HTML5.
● Conversion of bitcoins into 22 international currencies.
● Transaction types: these include e-mail processes, SMS and Facebook.
● Payment notification: e-mail, SMS, Skype or HTTP POST calls.
● Possibility of making automatic backups of the virtual wallet.
The importance of blockchain APIs
The whole transaction process, receipt and issue of payments, transactions with virtual currencies and data management would not be possible without an application programming interface for each function. Today blockchain has several APIs for different functionalities. Without some of these, no one anywhere in the world would be able to make any bitcoin transactions:
● Receive Payments API: Version 2 of this interface has been available since last 1 January 2016. This is the simplest way for a company or business to begin to accept automated payments in bitcoins. The API is based on HTTP GET requests and is in charge of creating a single address for each user and for each invoice issued in each bitcoin transaction, an essential condition for good praxis.
● Blockchain Wallet API: Since last 1 January, to use of this API it has been necessary to install a local server to manage the virtual wallet. The communication method used is based on HTTP POST or GET calls. The process for creating a virtual wallet is known as create_wallet from this url: http://localhost:3000/api/v2/create. Each wallet is associated to a password with a minimum length of 10 characters, an authentication code for the API, a private code for each user, the folder where the wallet is created, and an e-mail address.
● JSON RPC API: Since March 2016, the universal recommendation for bitcoin users is to use the new Blockchain Wallet API, although the interface based on RPC calls continues to be compatible with the old Bitcoind RPC to interact with virtual currencies. It can be installed and used from libraries in numerous programming languages: syntax such as Python, Ruby, PHP, Node.js and .NET.
● Blockchain Data API: This can be used to consult the data on the transactions and operations within the blockchain in JSON format.
● Query API: Plain text API for querying blockchain data.
● WebSocket API: this app programming interface gives programmers access to real-time notifications on transactions and blocks.
● Exchange Rates API: This manages the information on bitcoin exchange rates and international currencies in real time and in JSON.
Sign up to the BBVAOPEN4U newsletter and receive tips, tools and the most innovative events directly in your inbox.