Why is Sberbank developing Blockchain technology?

All economic activity has historically been built on intermediaries. Any, even simple transaction between two parties is accompanied by the involvement of various intermediaries - banks, exchanges, clearing houses, etc. Eliminating intermediaries would perhaps make interactions more efficient. So why not try to build a new, decentralized infrastructure based on the blockchain, where parties to the transaction can work directly? In this post, we will talk about how we started on the path to such an infrastructure: we developed blockchain transactions and eventually carried out a repo - borrowing money secured by securities.

Short term bonds

Our first over-the-counter financial transaction on the blockchain was the issue of a short-term bond of the mobile operator MTS with the participation of the National Settlement Depository (NSD).
This is a kind of “central bank” of all depositories. Depositories are infrastructure intermediaries that maintain records of the ownership of securities and their issuance. In that transaction, MTS, by calling the smart contract function, recorded in the blockchain the will to sell securities to Sberbank, and he confirmed in the blockchain his agreement with the terms of the transaction. Counter orders signed by both parties were sent to the NSD node, which executed them in its accounting systems. In addition, the blockchain displayed the accounts of the participants in the transaction in securities and money.

In that project we chose the open source platform Hyperledger Fabric 1.1

, designed to create closed corporate blockchain solutions. Public blockchains are not suitable here because we need to ensure data privacy. We encountered such restrictions in the factoring pilot of Sberbank with M.Video, which was implemented on the Ethereum blockchain. In contrast, Hyperledger Fabric allows you to place all participants in a transaction in a dedicated channel, where they can exchange any necessary information and process it with fully functional smart contracts.

The source code of the MTS bond issue project was made publicly available on GitHub. Even without going into the algorithm of operation, one can understand that in the life cycle of a transaction, the blockchain was assigned a rather modest role as the transport of clearing orders. On the other hand, based on these instructions, account balances were changed - so from the point of view of business logic, this was more interesting than a simple electronic document management service.

The main advantage of the solution was versatility. The “two counterparties and a registrar” scheme covers almost any transaction on the over-the-counter market, and with minor modifications, most commercial transactions in general.

"REPO 1.0"

In a new project on the blockchain, we decided to show how to implement a repo - repurchase agreement - borrowing money secured by securities in a decentralized system.
Typically, these and other transactions in the over-the-counter market go through intermediaries—depositories, clearing houses, and brokers. In this project, we concluded a repo transaction between Sberbank and a foreign partner. It already used Hyperledger Fabric version 1.2. Compared to MTS bonds, we had two differences:

  • Only two participants in the transaction were connected to the blockchain, whose depositories - Euroclear and Clearstream - received all orders through traditional data transmission channels from the back offices of Sberbank and its counterparty.
  • In the smart contract, we implemented complex business logic: daily quotes of the security that served as collateral for the loan were loaded into the blockchain, and the smart contract calculated the need and amount of early repayment, taking into account the changed value of the collateral, discount, calendar of weekend exchanges and other parameters. Such P2P synchronization of settlement algorithms between participants cannot be achieved without a distributed registry. This is much more convenient than each party independently calculating obligations and amounts - no labor-intensive reconciliations, no confirmations.

A chat and document flow within the channel were organized between counterparties.
Data on them was stored in the blockchain. After each change in the distributed registry, channel participants received an email notification. We also worked on “REPO 1.0” from the legal side. With the help of a large law firm, cases from the High Court of London were analyzed. In addition, the digital signature of the bank and its counterparty used different cryptographic algorithms.

How does REPO 1.0 work?

Each participant in the transaction has his own blockchain node. All nodes are connected to each other in a P2P network. Let's say you need to make a deal. We deploy a smart contract between the parties to the transaction, where the financial instrument is fully described.

After creating a contract on our part, the trader signs it. The client also reviews and signs the contract. The signatures are then reviewed and verified. In this case, the transaction was carried out under English law, data on the digital signature was entered into the GMRA document. To sign, the client needs to verify that the signature certificate contains an authorized person. Finally, the client accepts the contract and agrees to all the terms. Any number of documents can be attached to the signed contract.

After this, the contract receives the “in progress” status. The “in progress” contract is automatically recalculated when new market prices are loaded. If the contract contains a security, the market price is taken and the Loan-To-Value (LTV) is recalculated - the ratio of the loan amount to the value of the collateral in the securities. LTV is one of the key terms in a repo transaction; its meaning is specified in the contract. The share price has risen sharply - and the LTV is becoming less than indicated in the GMRA (when it comes to English law). Accordingly, the bank returns the securities to the client (as one of the options), since taking into account the new prices, it turns out that the bank holds higher collateral.

But if LTV becomes larger, then the program allows you to print a collateral notice - a notification to the client about the need to provide additional collateral (stocks or money) so that the LTV value returns to the initial one. Previously, a collateral notice could only be sent by mail; separate documents were created for this, and during the creation of these documents, the LTV could change again. Now the client and I see the same calculations online and can easily interact.

In addition, the program records the price of repurchase of securities every day, taking into account interest. If the client does not agree with it when loading the market price, he looks at the full log of recalculations - what happened, what happened, what price was loaded, where it came from. And then starts a chat discussion.

Sberbank is introducing blockchain into its loyalty system projects

Senior Vice President of Sberbank CIB Igor Bulantsev said during a conference in Kazan that the bank is considering options for transferring the loyalty system to blockchain. In addition, the bank is actively studying the ICO and cryptocurrency markets, TASS writes.

“We have about 20 projects in the field of blockchain in different areas with different clients. Those that you already know - from factoring, for example. Plus those that we have not yet disclosed. We are looking, for example, at the loyalty system and transferring it to the blockchain,” said Bulantsev.

According to him, Sberbank is involved in the development of legislation regarding blockchain and cryptocurrencies. Along with this, an important role is played by the educational part of the study of blockchain technologies.

“At our corporate university, Sberbank, we are talking about creating courses, distance courses and face-to-face training that will tell us what the basis of blockchain is, adding more advanced technological education,” he said.

Rate this publication

The latest news on the cryptocurrency market and mining:

Cloud mining of Bitcoin in 2020 - how to choose a reliable and profitable service?

Kraken Report: Bitcoin on the verge of “great adoption”, BTC price will rise by 50-200%

Bitcoin enters mega bull phase with over 93% of BTC addresses showing profits

Anatoly Aksakov commented on the adopted law on cryptocurrency in Russia

Platform for centralized management of the cryptocurrency mining process CoinFly

The following two tabs change content below.

  • Author of the material
  • Latest news from the world of cryptocurrencies

Mining-Cryptocurrency.ru

The material was prepared by the editors of the website “Mining Cryptocurrency”, consisting of: Editor-in-Chief - Anton Sizov, Journalists - Igor Losev, Vitaly Voronov, Dmitry Markov, Elena Karpina. We provide the most up-to-date information about the cryptocurrency market, mining and blockchain technology.

News Mining-Cryptocurrency.ru (go to all news feed)

  • Cloud mining of Bitcoin in 2020 - how to choose a reliable and profitable service? — 08/14/2020
  • Kraken Report: Bitcoin is on the verge of “great adoption”, BTC price will rise by 50-200% - 08/14/2020
  • Bitcoin Enters Mega Bullish Phase, Over 93% of BTC Addresses Show Profit - 08/14/2020
  • Anatoly Aksakov commented on the adopted law on cryptocurrency in Russia - 08/14/2020
  • Platform for centralized management of the cryptocurrency mining process CoinFly - 08/14/2020

Blockchain

"REPO 2.0"

We wanted our blockchain repo to be able to initiate the movement of real assets based on its internal logic. But in REPO 1.0, due to organizational difficulties with connecting Western depositories, we have not yet been able to achieve this. So we started a new pilot "REPO 2.0". He had two goals:

  • The transaction must take place with the participation of two parties and the depositary, maximally using the infrastructure of the MTS bond project.
  • The blockchain must be given the authority to revalue collateral and issue a margin call, which could be automatically executed by a depository connected to the distributed network.

NSD immediately wanted to get involved in the project.
In order to bring the transaction initiated on the blockchain to the conservative field of federal laws regulating the domestic financial market, my lawyers and I worked out a five-page additional agreement to the electronic document management agreement. It was signed by all participants in the transaction and NSD. NSD acted as the clearing house in this transaction. He carried out all orders for the movement of funds and securities. This transaction was concluded under Russian law.

The client accepted the agreement with an electronic signature. Then Sberbank accepted the agreement with its signature - it checked that all parameters corresponded to the required values ​​and the authority of the person who accepted on the client’s part. After that, the contract went into operation. NSD loaded market data, and the smart contract made recalculations.

How does Repo 2.0 work?

To deploy the network and interact the client interface with the chain code, we used the Fabric Starter solution. Instead of the standard HLF grpc interface, it provides a REST API, which in our case significantly reduced the complexity of integration.

The network was raised as follows. Each of the three parties, after pre-installation on the Docker server, ran Fabric Starter, which created containers with node components. These components included an external peer for interaction with other organizations and a REST API service through which the node interacted with the client application. When starting Starter, the configuration of the blockchain network was also set and a private channel was created into which the chain code with endorsement-policy was installed. In our case, each transaction must have the signatures of all three participants.

During the testing phase, Docker Swarm was used to organize the connection between the participants’ servers, but to complete the real transaction, for security reasons, they switched to DNS. The platform itself is responsible for message transport; data is transmitted via the Internet with TLS encryption.

Sberbank statements

The above-cited interview with Abdrashitov was published on CoinDesk early in the morning of July 2, 2020. In the evening of the same day, Sberbank issued statements from its top managers on the topic of the bank’s blockchain projects. The message did not indicate any connection with Abdrashitov’s statements.

According to the quoted words of Sberbank Depository Director Yuri Dubin , the credit institution has been fruitfully cooperating with the Central Bank on a number of blockchain projects for several years, including on the national MasterChain platform. “Sberbank was the initiator of the launch of a decentralized depository system on this platform for accounting for e-mortgages,” he said. “Pilot transactions with electronic mortgages have been carried out on this platform, and it is planned to launch commercial operation in the near future.”

According to Dubin, the project team managed to find solutions not only for technological, but also for legal issues of securities accounting. “This will be one of the first such systems in the world. We expect serious positive effects for business from the development of this project,” he noted.

“Moreover, our joint work is not limited to this,” adds Sberbank Vice President Andrey Shemetov . — Together with the regulator, last year, for the first time in Russia, we carried out two transactions at once: an ICO in the regulatory sandbox of the Central Bank and an over-the-counter repo on the blockchain. I believe that through the efforts of the regulator. In the regulatory sandbox of the Central Bank of the Russian Federation, promising projects are being piloted and the fundamentals of regulatory regulation are being worked out, which in the future will make it possible to replicate effective solutions throughout the country.”

  • Select the optimal VPS/VDS virtual server on the IT marketplace Market.CNews
  • Short link
  • Print

Technical side of the issue

The process of developing a distributed application on HLF begins quite traditionally - with data structures and chain code (essentially, a set of stored procedures), the call of which leads to saving, changing or reading these structures from the ledger.
The platform allows you to use various programming languages ​​to develop chain codes and DBMS for local storage. We prefer Go and CouchDB respectively. The central entity for repo projects in our data model is the contract itself and its child obligations. They were created for each of the two pilots, as well as for margin calls. This architecture was a step forward compared to the MTS bond model, which was based on the “Order” entity. Independent objects were also created for securities, which were thus partially tokenized. But we decided to postpone the development of the experiment with maintaining accounts and virtual tokenization of money until one of the next versions of the solution.

Main features of our solution:

  • Create a contract.
  • Sign the contract with your digital signature, confirming your agreement with the terms of the contract.
  • Load market prices and start recalculating the value of collateral. Its deviation from the specified threshold caused the creation of a new margin call obligation.
  • Reflect the status of fulfillment of the obligation.

From the technical side, the revaluation procedure is most interesting here.
Let's look at it in more detail. According to the business process, the procedure should be launched once a day, after the Oracle (in the REPO 2.0 pilot its role was played by NSD) has loaded updated securities quotes into the system.

func (t *CIBContract) recalculationData(stub shim.ChaincodeStubInterface, loadData *loadDataType, curDay string) pb.Response {...} The main loop of the procedure goes through all securities for which quotes have been updated. for _, securities := range loadData.Securities {…} Next, several checks are performed. For example, if it is a holiday at the exchange from which market data was received, then recalculation should not occur. if t.checkHoliday(stub, contract.Settings.Calendars) == “yes” { hisYes := historyType{curDay, “LoadData. Calendar", "System", "LoadData. Today is holiday! No load market data to contract !”} … contract.History = append(contract.History, hisYes) … err = stub.PutState(contrID, contractJSONasBytes) } To calculate the updated bond price, the accrued coupon income (ACI) is added to the loaded net price . In the pilot, support for the 30/360 scheme was implemented for calculating the NKD. priceIzm = float64(securities.Price + float64(securities.CouponRate)*float64((int(settlementDate.Year()) - int(dateStart.Year()))*360 + (int(settlementDate.Month()) - int (dateStart.Month()))*30 + (int(settlementDate.Day()) - int(dateStart.Day()))*100/360/100) curCurrVal = priceIzm If the transaction currency is different from the currency in which The security is quoted and exchange rate conversion is carried out. if contract.GeneralTerms.PurchasePrice.Currency != securities.Currency { curCurrName = securities.Currency + “-” + contract.GeneralTerms.PurchasePrice.Currency for _, currency := range loadData.Currencies { if currency.Name == curCurrName { curCurrVal = priceIzm * currency.Value } } } Now we need to calculate LTV. Let's save the old coefficient value for history. oldCurLTV := contract.MarginingTerms.CurrentLTV It is necessary to take into account margin calls executed during the life of the transaction. Demands can come from both sides, and in two forms:

  • Securities. The borrower provides additional collateral if the market price of the collateral falls. The lender returns part of the collateral if the price increases.
  • With money. The borrower repays ahead of schedule the part of the loan that is no longer covered by the cheaper collateral. The lender increases the loan amount in response to an increase in the value of the collateral.

In the first case, the number of securities in the collateral is simply updated. And in case of depositing money, it is also necessary to accrue the profitability specified in the additional terms of the transaction. for _, addCollateral := range contract.MarginingTerms.AddCollateral { currSumCollateral := addCollateral.Sum + (addCollateral.Sum*contract.MarginingTerms.RateOnCashMargin*float64(deltaColDate) / float64(contract.MarginingTerms.Basis))/100 … allSumCollateral = allSumCollateral + currSumCollateral ... ht := historyType{curDay, System", "LoadData. Recalculation data(addCollateral) Contract » + contrID + » — currSumCollateral: » + strconv.FormatFloat(float64(currSumCollateral), 'f', 2, 64) … } … contract.History = append(contract.History, ht) } We We calculate the total amount of the buyback - essentially this is the amount of the loan with interest that we need to repay. rePurchasePriceCur := contract.GeneralTerms.PurchasePrice.Sum + (contract.GeneralTerms.PurchasePrice.Sum*contract.GeneralTerms.RepoRate*float64(deltaSigningDate)/float64(contract.MarginingTerms.Basis))/100 Now we calculate the LTV ratio. To do this, subtract the deposited collateral in money from the redemption price and divide the resulting value by the total cost of the securities in the collateral. The amounts contributed by the lender are marked with a “–” sign and will be added to the redemption price. contract.MarginingTerms.CurrentLTV = (rePurchasePriceCur - allSumCollateral) * float64(100) / (float64(contract.GeneralTerms.PurchasedSecurities.Quantity) * curCurrVal) Finally, we calculate the triggers in the contract. The same procedure will create margin call instruction objects if the LTV value deviates from the specified corridor. contract = t.checkTriggerEvents(stub, “LoadData”, contract, curDay, securities) And we record the information in the history for display on the UI. ht := historyType{curDay, "System", "LoadData. Recalculation data(change curLTV, ADTV) Contract " + contrID + " - oldCurLTV: " + strconv.FormatFloat(float64(oldCurLTV), 'f', 2, 64) + ", newCurLTV: " + strconv.FormatFloat(float64(contract .MarginingTerms.CurrentLTV), 'f', 2, 64)…} contract.History = append(contract.History, ht)

Let's sum it up

This scheme can work not only with securities and contracts, but also in other scenarios.
For example, with electricity supplies, where there are different tariffs, different connections at different times. Or with factoring - lending to suppliers based on goods shipment signals. There are many use cases in economics when everyone uses their own data sources that have to be verified. Our goal is to create a network that connects banks with each other and their clients throughout the country, and with the help of smart contracts to describe in it contracts not of crypto, but of traditional economics - financial instruments. Such a network will be stable, open, and, as expected in a P2P network, no one will have special status.

Options for withdrawing cryptocurrency to a Sberbank card


Virtual cryptocurrency consists of separate parts called coins, and those funds that participate in the monetary processes of the Bitcoin system are called bitcoins after its likeness.
They are not physically expressed, that is, they are completely virtual money and are never printed. The Blockchain website is a database of wallets created with Bitcoin. It was conceived as a way to protect users from fraud and fraud, while transactions are transparent, while information about the parties to the transactions is not disclosed and kept secret. If the user has enough bitcoins on his blockchain wallet for withdrawal, he can pay with them on the Internet, because even large trading sites already accept this currency as payments.

But if you need to receive fiat money, that is, those that are recognized by the state as official and can be used for payments, you need to withdraw them. The Blockchain website does not provide a direct method, so clients are forced to use workarounds. No bank officially works with bitcoins, but there are services that involve exchanging virtual currency for real currency, followed by its transfer to a Sberbank card. These can be specialized sites, exchanges where bitcoins are bought, and exchange offices; all together they form a system for converting virtual money into full-fledged, and what is important, official currencies.

Through exchangers

From the Blockchain website it is quite possible to transfer bitcoins directly to the card into the ruble equivalent; special websites are used for this.
They have exchange limits, which are replenished with bitcoins, and in return the person receives Russian rubles on a Sberbank card. But you need to approach such services with the utmost caution, since fraudulent options are often found among them. They can steal user data and subsequently waste their funds. Each site offers different commission amounts, which need to be clarified in advance so that the amount received in the account is not unexpected. After this you can make a payment:

  • Usually on the site you need to first register and log in to your personal account;
  • after this, the directions from which the money will go and to which it will go are selected;
  • the amount to be withdrawn from a Bitcoin wallet is also specified in advance; many sites additionally indicate the size of the commission and the amount expected to be received;
  • the transfer is confirmed by the chosen method.

In most cases, funds are transferred to a Sberbank card in a few seconds, since exchangers operate automatically. Sometimes there may be delays, but trusted sites resolve such problems in minutes. You should carefully monitor the card details that are entered in the exchanger. After all, it is impossible to make a refund in bitcoins, due to the same anonymity of users.

READ Methods of transferring funds from Yota to a Sberbank card

At the same time, exchangers do not have restrictions on the amounts that are set both for depositing money and for withdrawing it. This method will be the fastest, but you will also need to overpay for it in a larger amount than is assumed in other methods, which should be considered separately. This method of exchanging funds has advantages that distinguish it from others:

  • transfers are sent immediately after payment and arrive on the card the fastest;
  • the transaction process is simple and often does not even require registering as a customer;
  • Given the wide selection of exchange options, it is possible to select the most profitable one.

But there are also disadvantages, for example, the exchange rate is most often unfavorable, and the client loses quite a significant amount during the exchange procedure. Also, for automation of the process and speed, a person is forced to pay extra; there are even options that require a quarter of the money transferred.

Via localbitcoins.com


One of the most convenient ways to transfer existing bitcoins is the localbitcoins website, where there are traders who offer exchange of bitcoins and Russian rubles in both directions.
The client can only choose a partner who suits him based on ratings and reviews, despite the fact that the site protects its client. First, to start transferring bitcoins to Russian rubles, you need to register your own internal wallet. To do this, you need to click on the profile icon, in which you select the item responsible for the BTC wallet. Next in the menu, you should find the link to receive bitcoins and copy the wallet address, which will allow you to upload funds to Localbitcoin. After this, you need to perform a transaction from the Blockchain website; to do this, log in to your account, press the send button and enter the copied wallet number in the recipient field.

Next, enter the amount that needs to be withdrawn, and the user has the opportunity to choose a commission option, and the largest one will allow you to transfer funds faster, while those who want to save money can choose a slow but cheap trader. Immediately after this, the payment enters the processing stage, and in some cases you will need to confirm the transaction via email.

This allows you to replenish your wallet on the exchange resource, but the bitcoins invested in this wallet must still be converted into rubles. An application for this transaction must be placed by creating a ticket for the sale of virtual currency for real currency. To do this, press the sell button, and then enter the amount in rubles that the client wants to receive. To select a transfer to Sberbank, you need to click on the menu of all offers and select a transfer through a specific bank.

You can simplify the translation if you uncheck the boxes next to the refusal of SMS messages and identification, after which a search is performed. Sberbank can be found in the following menu, while traders also have different rates, and you can also get acquainted with them as a result of the search. Having selected a trader, you should click on the sell button, and then the number of rubles you want to receive or bitcoins available for exchange is entered in the menu.

READ The procedure for replenishing a Sberbank card through Qiwi terminals

The message to the trader indicates the Sberbank card number, and a request can be sent for the transaction. After this, the previously entered amount will be frozen in the account, and when the trader agrees to the transaction, the funds will be credited to the card, and the client’s bitcoins will go to the intermediary. This method is a little cheaper, since a person does not pay for automation, but it will also take more time to find a trader and communicate with him.

There are a number of advantages that can attract a client to cooperate with this resource:

  • selection of the most optimal exchange rate from several traders;
  • money does not need to be transferred using another method, since it is immediately credited to the Sberbank card;
  • It’s easier to find a conscientious partner thanks to reviews and a rating system.

But at the same time, the transfer process itself is inconvenient, which involves first making a transfer to a wallet in the system, and then sending it to a card. The timing of transactions is also not fast, since a buyer for bitcoins still needs to be found, in addition, it is necessary to wait for a response from the trader, who then transfers the funds directly to the bank account.

Through exchanges


Cryptocurrency exchanges are the place where funds in the form of virtual currency are exchanged for rubles, and only then are they withdrawn to a Sberbank card. That is, the process does not involve a direct transfer to the card, offering an exchange. Even if the user exchanges his coins profitably, he will also need to pay a commission for the transfer to the bank.

The exchanges employ mostly experienced traders who know how to catch and predict rates, but in general, withdrawing bitcoins to a card is quite simple:

  • First, you register on the site, after which your account is confirmed;
  • when the account becomes active, money is transferred to it from the blockchain wallet in the form of bitcoins;
  • then you just need to wait for a good exchange rate, which will allow you to get a good amount for the available virtual currency;
  • Bitcoins are sold for rubles, which are also credited to the account and become available for withdrawal.

The peculiarity of many exchanges is that the client pays two commissions, since it is impossible to withdraw rubles immediately, and for this a transfer is made to the electronic wallet of a common system, for example, WebMoney. Only then, by paying another fee, will the client receive his money on his Sberbank card, and only if he can find a favorable rate. The advantages of exchanges include:

  1. If there are open orders for the required amount, the sale of bitcoins is carried out quickly.
  2. The fees are not as high as in previous methods.
  3. It is possible to set your own rate, however, if it is too high, it may take a long time to wait for a quick transaction.

Other ways to withdraw bitcoins

In addition to those listed, you can use the tools of payment systems, for example, a new feature in WebMoney is the ability to exchange cryptocurrency for other banknotes without third-party services. First, a WMX wallet is created for bitcoins, which is replenished with them by copying and pasting the virtual currency storage address.

When the money has arrived, you need to go to the exchange section and select how many bitcoins the client wants to give, or how many rubles he wants to receive. In this method, commissions will be minimal, but WebMoney also allows you to customize the level of fees, depending on the desired exchange speed.

READ The procedure for replenishing a Zonatelecom card using Sberbank Online

Rating
( 2 ratings, average 4 out of 5 )
Did you like the article? Share with friends:
For any suggestions regarding the site: [email protected]
Для любых предложений по сайту: [email protected]