Interview with IOHK developer Alexander Chepurny about cryptocurrency programming and the future of the blockchain
We continue a series of interviews with speakers at the DUMP conference , which will be held April 14 in Yekaterinburg. Interviews with JetBrains programmer Andrei Akinshin about how to start speaking at conferences and Dropbox developer Leonid Vasiliev about life and work in Ireland are ready .
Under the cut is an interview with Alexander Chepurny, a researcher at IOHK , where he develops open source libraries, for example, Scorex , a library for building blockchain systems. Since 2013, Alexander has been engaged in blockchain projects, developed the core of the Nxt platform , was one of the founders of smartcontract.com .
Alexander told how the development of cryptocurrencies differs from the development of other software, how to start programming money and when the massive introduction of blockchain will occur.

- What do you do? How is this related to cryptocurrency? What are you working on now?
At the moment I work at IOHK, writing code and articles at the same time. In particular, the Scorex and Scrypto frameworks . I do not work with specific cryptocurrencies at the moment. Prior to that, he was an NXT developer and co-founder of smartcontract.com.
- How is the development of cryptocurrencies different from the development of other software?
On the one hand, the community requires new features and releases as soon as possible, because the market situation is changing very quickly, and the attention of users is switching too. On the other hand, the requirements for the quality of the code in some aspects are close to critical systems (developers of which have the privilege of sitting in office silence for years). Plus, you have to constantly watch how the network works, why the user nodes can fall off from it, what attacks are currently taking place on the network (attacks are carried out regularly on more or less popular cryptocurrencies).
Programming cryptographic protocols is not an easy task; just look at an example of OpenSSL and its vulnerabilities. Peer-to-peer networks are also vulnerable, even if there may be little motivation for attacks. In popular cryptocurrencies, a strong desire to find a vulnerability or roughly “put” a significant part of the system usually has a lot of people :)
Several years ago, many things were incomprehensible to anyone in the world due to a lack of observations. For me personally, a lot has been discovered after studying the list of Bitcoin vulnerabilities and the autumn attacks on Ethereum, not to mention my own numerous mistakes, both in designs and in implementation.
- To program cryptocurrency, do you need some special preparation?
Extreme accuracy and scrupulousness will always come in handy. From practical skills, it is useful to understand the basic things from cryptography, have experience in developing distributed systems and optimizing performance, and 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 recommend to programmers who want to try themselves in the field of cryptocurrencies?
To begin with, I think it's 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. Almost all of them need enthusiastic developers.
- What are the biggest problems with cryptocurrencies today? How do you solve them?
Of course, scalability. In thematic media, the emphasis is on throughput, expressed in the number of conditional transactions per second. Of course, you always want to write more in the blockchain, but it is not rubber at all, or rather, there are very strict memory limits and disk space for storing it and the state obtained from it (which should be placed in the RAM, the whole or most frequently requested part).
This, by the way, is one of the arguments against increasing the size of the block in Bitcoin. Changing a constant is not the biggest problem. It is then more difficult 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 store only a limited number of last blocks (pruning mode).
As a solution, I would like to store less data or not all, but the security guarantees should be the same. As the first work in this direction, these days I and my colleagues present at Financial Cryptography'17 a solution that allows network nodes (with the exception of miners) not to hold the state of the system at all, but to have guarantees of its integrity. It is also necessary to avoid loading the blockchain with new nodes entirely and, accordingly, from the necessity of its mandatory storage (by anyone, except for the headers, but they are small). In fact, after the autumn attacks, Ethereum comes to this. However, it is necessary to achieve the same level of security (and to begin with formulate what this can mean formally). In the near future, work will be released about this.
- Will Bitcoin ever be replaced by another cryptocurrency?
Very likely. Bitcoin is currently a unique case of an ecosystem that has grown to a size sufficient to become virtually incapable of change due to political reasons. Meanwhile, changes in Bitcoin are needed, but different fractions are different.
Due to recent conflicts within the community, they began to talk about the possible separation of Bitcoin into Core and Unlimited. I think this is unlikely to happen, both sides can 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 fraudulent?
It is very difficult without knowledge of the field. A promising product should have a strong team, a distinct whitepaper and continuous development. But even this may not help.
- What do you think, how long will the massive introduction of blockchain in the banking environment happen? And will it happen?
A few years ago, there was talk 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 introducing the blockchain anywhere inside banks.
- In your opinion, in what application areas will the blockchain work and become familiar to us in the near future?
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 cryptocurrencies, as well as property rights registries (if technology allows, at the moment - no), votes. Modern technologies, however, do not yet allow voting on issues critical to society in electronic form, even if we do not take into account the problems of blockchains. I would like to see more financial instruments for specific needs (such as utotokens ), this can seriously revive economic activity outside megacities.
On April 14, Alexander will speak at the DUMP conference in Yekaterinburg. He will talk 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 can solve existing problems.
Thanks to our sponsors: the general sponsor is E-Soft , the conference partners are SKB Kontur , Naumen , Sberbank Technologies .
Under the cut is an interview with Alexander Chepurny, a researcher at IOHK , where he develops open source libraries, for example, Scorex , a library for building blockchain systems. Since 2013, Alexander has been engaged in blockchain projects, developed the core of the Nxt platform , was one of the founders of smartcontract.com .
Alexander told how the development of cryptocurrencies differs from the development of other software, how to start programming money and when the massive introduction of blockchain will occur.

- What do you do? How is this related to cryptocurrency? What are you working on now?
At the moment I work at IOHK, writing code and articles at the same time. In particular, the Scorex and Scrypto frameworks . I do not work with specific cryptocurrencies at the moment. Prior to that, he was an NXT developer and co-founder of smartcontract.com.
- How is the development of cryptocurrencies different from the development of other software?
On the one hand, the community requires new features and releases as soon as possible, because the market situation is changing very quickly, and the attention of users is switching too. On the other hand, the requirements for the quality of the code in some aspects are close to critical systems (developers of which have the privilege of sitting in office silence for years). Plus, you have to constantly watch how the network works, why the user nodes can fall off from it, what attacks are currently taking place on the network (attacks are carried out regularly on more or less popular cryptocurrencies).
Programming cryptographic protocols is not an easy task; just look at an example of OpenSSL and its vulnerabilities. Peer-to-peer networks are also vulnerable, even if there may be little motivation for attacks. In popular cryptocurrencies, a strong desire to find a vulnerability or roughly “put” a significant part of the system usually has a lot of people :)
Several years ago, many things were incomprehensible to anyone in the world due to a lack of observations. For me personally, a lot has been discovered after studying the list of Bitcoin vulnerabilities and the autumn attacks on Ethereum, not to mention my own numerous mistakes, both in designs and in implementation.
- To program cryptocurrency, do you need some special preparation?
Extreme accuracy and scrupulousness will always come in handy. From practical skills, it is useful to understand the basic things from cryptography, have experience in developing distributed systems and optimizing performance, and 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 recommend to programmers who want to try themselves in the field of cryptocurrencies?
To begin with, I think it's 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. Almost all of them need enthusiastic developers.
- What are the biggest problems with cryptocurrencies today? How do you solve them?
Of course, scalability. In thematic media, the emphasis is on throughput, expressed in the number of conditional transactions per second. Of course, you always want to write more in the blockchain, but it is not rubber at all, or rather, there are very strict memory limits and disk space for storing it and the state obtained from it (which should be placed in the RAM, the whole or most frequently requested part).
This, by the way, is one of the arguments against increasing the size of the block in Bitcoin. Changing a constant is not the biggest problem. It is then more difficult 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 store only a limited number of last blocks (pruning mode).
As a solution, I would like to store less data or not all, but the security guarantees should be the same. As the first work in this direction, these days I and my colleagues present at Financial Cryptography'17 a solution that allows network nodes (with the exception of miners) not to hold the state of the system at all, but to have guarantees of its integrity. It is also necessary to avoid loading the blockchain with new nodes entirely and, accordingly, from the necessity of its mandatory storage (by anyone, except for the headers, but they are small). In fact, after the autumn attacks, Ethereum comes to this. However, it is necessary to achieve the same level of security (and to begin with formulate what this can mean formally). In the near future, work will be released about this.
- Will Bitcoin ever be replaced by another cryptocurrency?
Very likely. Bitcoin is currently a unique case of an ecosystem that has grown to a size sufficient to become virtually incapable of change due to political reasons. Meanwhile, changes in Bitcoin are needed, but different fractions are different.
Due to recent conflicts within the community, they began to talk about the possible separation of Bitcoin into Core and Unlimited. I think this is unlikely to happen, both sides can 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 fraudulent?
It is very difficult without knowledge of the field. A promising product should have a strong team, a distinct whitepaper and continuous development. But even this may not help.
- What do you think, how long will the massive introduction of blockchain in the banking environment happen? And will it happen?
A few years ago, there was talk 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 introducing the blockchain anywhere inside banks.
- In your opinion, in what application areas will the blockchain work and become familiar to us in the near future?
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 cryptocurrencies, as well as property rights registries (if technology allows, at the moment - no), votes. Modern technologies, however, do not yet allow voting on issues critical to society in electronic form, even if we do not take into account the problems of blockchains. I would like to see more financial instruments for specific needs (such as utotokens ), this can seriously revive economic activity outside megacities.
On April 14, Alexander will speak at the DUMP conference in Yekaterinburg. He will talk 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 can solve existing problems.
Thanks to our sponsors: the general sponsor is E-Soft , the conference partners are SKB Kontur , Naumen , Sberbank Technologies .