Fausto Spoto as Research Consultant
We have the pleasure and the honor to have Professor Fausto Spoto as Research Consultant within the project.
In this interview we have deepened some aspects of Takamaka’s blockchain as well as its potential applications.
- Hi Fausto. Before we begin, can you tell us more about your background? Where does your interest in blockchain and Takamaka come from?
I’m an associate professor at the Department of Computer Science of Verona. I have always been involved in programming languages and software development. Specifically, I’ve always been interested in how the quality of software can be increased, even using automatic techniques such as static analysis. I mainly focused on the Java programming language and its bytecode, thoroughly studying how to analyze and modify it. I became interested in blockchain when I met some former students, who now work at Ailia S.A., who told me about their plan to create a new blockchain network, based on Proof of Stake and easier to program for than Ethereum, whose primary language is Solidity. That’s when I was able to put my knowledge of Java software development and analysis to good use, creating a software framework capable of running a blockchain language based on a subset of Java, with a static analysis layer that verifies the conditions necessary for the code to be executed correctly. My previous knowledge was directly applicable to the blockchain world. That’s when the Takamaka project was born, named after an area on Réunion island where I worked for many years.
2. What are the potential applications of a blockchain network with Takamaka’s features?
It’s a general blockchain, which can be applied to any context. A bit like Ethereum basically, but built on a much more modern technology. Its primary advantage is the ease of use, since it’s based on a known and stable programming language such as Java.
3. Can we say Java is a user-friendly language for developers who are approaching blockchain for the first time?
Java is a mature and stable language, well known by a large number of programmers. From this point of view we can say it’s user-friendly, even if it is certainly not a simple language. What I would actually call user-friendly is mainly the fact that programming smart contracts on Takamaka requires you to know Java and nothing else. On the other hand, programming on Ethereum requires you to deeply understand not only Solidity but also the Ethereum network underneath, which transpires in many aspects of the language and makes it difficult to work with. This leads to developers writing complex, and often erroneous, code.
4. What reasons led you and the Takamaka team to choose Java as the main language?
Mainly the fact it allows developers to write smart contracts without really understanding what is happening underneath: things like how the blockchain will manage the data, how the contracts see each other or how the transactions are implemented. In short, a Java programmer with experience in the enterprise world will find in Takamaka a well-known subset of Java and can be immediately productive. He doesn’t even need to know what Takamaka, or even a blockchain, is. For that programmer, it will be the same application development environment he has known for many years. But another aspect I would like to point out is that Java has been around for 25 years and is now mature. As a result, its changes over the years are minimal and never intrusive. On the other hand Solidity is still a very young programming language, which is changed frequently and dramatically.
5. Speaking of the scalability problem, what does Takamaka do to solve the so-called ‘Blockchain Trilemma’?
The problem with blockchains is often the antithesis between scalability, decentralization and security. Takamaka uses a protocol based on an evolution of Proof of Stake, thus increasing the scalability compared to Proof of Work. Furthermore, Takamaka is a decentralized network, where validators can be increased at will. Lastly, quantum cryptography increases network security while the use of Java improves the reliability of the code of smart contracts, since it’s not as complex as Solidity.
6. Takamaka allows to build smart contracts using Java: can you tell us more about it?
I think the best part is being able to make use of everything you’ve learned in years of Java programming. Smart contracts can be programmed using the development environments we are most accustomed to, employing testing systems we have known for years, with the types and the support library we have known for quite some time. In other words, you are immediately productive: you don’t have to study and become familiar with new languages and tools, which add nothing conceptually new but cause a delay in the adoption of the technology and additional costs for companies. From a more technical point of view, I like the fact that in Java, unlike in Solidity, a contract has a type and is not merely an “address”. And this is just one example of the many technical advantages: this programming language helps me and prevents me from making mistakes, not the other way around.
7. What does the future hold for Takamaka and blockchain technology as a whole?
I think Takamaka will position itself among major blockchains, among those that currently dominate the market. Thanks to its features, it can be quickly adopted by companies: Takamaka will become the simplest, fastest and cheapest way to introduce blockchain technology internally. The potential of blockchain is still tremendously high. The initial euphoria seems to have subsided, and that’s a good thing, because we can now focus on the real uses and the real evolution of the technology rather than on fictional or speculative approaches. I believe we will be amazed at the extent to which blockchain will become part of our daily life.