📜 ⬆️ ⬇️

Interview with IOHK developer Alexander Chepurny about programming cryptocurrencies and the future of blockchain

We are continuing a series of interviews with speakers at the DUMP conference, which will be held on April 14 in Yekaterinburg. We are ready to interview JetBrains programmer Andrei Akinshin about how to start speaking at conferences and Dropbox developer Leonid Vasilyev about life and work in Ireland .

Under the cut - an interview with Alexander Chepurny, a researcher at IOHK , where he develops open source libraries, for example, Scorex - a library for building blockchain systems. Alexander has been involved in blockchain projects since 2013, has developed the core of the Nxt platform, was one of the founders of smartcontract.com .

Alexander told how cryptocurrency development differs from developing other software, how to start programming money and when the blockchain will be massively introduced.
')

- What do you do? How is this related to cryptocurrency? What are you working on now?

At the moment I am working for IOHK, writing code and articles at the same time. In particular, the Scorex and Scrypto frameworks . With specific cryptocurrencies currently not working. Prior to that, he was the developer of NXT and one of the founders of smartcontract.com.

- How does the development of cryptocurrency differ from the development of other software?

On the one hand, the community requires new functions and releases as soon as possible, because the market situation is changing very quickly, and the attention of users is shifting too. On the other hand, the requirements for the quality of the code are in some aspects close to critical systems (the developers of which have the privilege to sit in the office silence for years). Plus, you have to constantly look at how the network works, why user nodes can fall off of it, what attacks on the network are going on now (attacks on more or less popular cryptocurrencies are carried out regularly).

Programming cryptoprotocols is not an easy task, just look at the example of OpenSSL and its vulnerabilities. Peer-to-peer networks are also vulnerable, even if the motivation for attacks may be a bit. In popular cryptocurrencies, a strong desire to find vulnerability or roughly “put” a significant part of the system usually has a lot of people :)

A few years ago, many things were incomprehensible to anyone in the world because of a lack of observation. For me personally, a lot has opened up after studying the list of Bitcoin vulnerabilities and the fall-out attacks on Ethereum, not to mention our own numerous mistakes, both in designs and in implementation.

- To program a cryptocurrency, do you need some special training?

Always be extremely careful and scrupulous. From practical skills, it is useful to understand basic things from cryptography, to have experience of developing distributed systems and optimizing performance, to be able to write high-quality code. It is also very useful to be able to show your code to the maximum number of people around and work on criticism.

- What would you advise programmers who want to try themselves in the field of cryptocurrency?

To begin with, I think it is worth trying to figure out and do something useful (at least write a test) for an existing framework or client in your favorite programming language. Practically all of them need enthusiastic developers.

- What are the biggest problems for cryptocurrency today? How do you solve them?

Of course, scalability. Thematic media focuses on bandwidth, expressed as conditional transactions per second. Of course, you always want to write more in the blockchain, but it is not at all rubber, more precisely, there are very strict memory limits and disk space for its storage and the state obtained from it (which should be placed in RAM or in the most frequently requested part).

This, by the way, is one of the arguments against increasing the block size in Bitcoin. Changing a constant is not the biggest problem. It is more difficult then to decide what to do with the rapidly growing size of the set of unspent coins (UTXO set) and the number of network nodes that host only a limited number of the last blocks (pruning mode).

As a solution, I would like to store less data or not all, but have the same security guarantees. As the first work in this direction, I and my colleagues these days present at Financial Cryptography'17 a solution that allows network nodes (with the exception of miners) not to keep the state of the system at all, but to have guarantees of its integrity. It is also necessary to move away from loading the blockchain with new nodes entirely and, accordingly, from the necessity of storing it (by anyone, with the exception of the headers, but they are small). In fact, after the autumn attacks, Ethereum comes to this. It is necessary, however, to achieve the same level of security (and to begin with, formulate what this may mean formally). In the near future, there will be work about it.



- Will Bitcoin ever be replaced by another cryptocurrency?

Very likely. At the moment, Bitcoin is a unique case of an ecosystem that has grown to a size sufficient to become practically incapable of change due to political reasons. Meanwhile, the changes in Bitcoin are needed, but different factions are different.

Because of the recent conflicts within the community, they began to talk about the possible division of Bitcoin into Core and Unlimited. I think this is unlikely to happen, both sides may suffer too much damage. Although many unlikely events have already happened, so nothing can be ruled out.

- There are hundreds of blockchain-currencies with strange names. How to distinguish promising from rogue?

Very difficult without knowledge of the area. A promising product must have a strong team, a distinct whitepaper and continuous development. But even this may not help.

- How do you think, after how much will the massive introduction of the blockchain in the banking environment? And will it happen?

A few years ago, the talk was that Bitcoin would make banks unnecessary. Today it is customary to sell blockchains to banks. I hope that the modification of the financial environment will go further than the introduction of the blockchain anywhere inside the banks.

- What do you think, in which application areas in the near future will the blockchain work and become familiar to us?

Blockchain and cryptocurrencies are convenient for facilitating payments, maintaining registers, creating financial instruments (especially short-term ones) and collective activities with a financial component.

I hope that crowdfunding and charity will go to cryptocurrency, as well as registries of property rights (if technology allows, at the moment - no) votes. Modern technologies, however, do not allow for the time being to conduct voting on critical issues for society in electronic form, even if one does not take into account the problems of blockchains. I would like to see more financial instruments for specific needs (such as utokkoeny ), it can seriously revitalize economic activity outside of megacities.



On April 14, Alexander will speak at the DUMP conference in Yekaterinburg. He will tell about the possibilities of new paradigms and languages ​​working in new conditions, on top of the blockchain. In addition, Alexander will highlight the work of recent years in the theory of programming languages ​​and cryptography, which are able to solve existing problems.

Thanks to our sponsors: the general sponsor - E-Soft , the conference partners - SKB Kontur , Naumen , Sberbank-Technology .

Source: https://habr.com/ru/post/325606/


All Articles