In August 2018, the first domestic verification test on Internet voting that uses blockchain and My Number cards was conducted. This test was led by Tsukuba City in Ibaraki Prefecture. The city was working on a project to ask the public to devise trial (verification test) ideas that utilize civil ingenuity to socially implement innovative technologies, including the IoT, AI and big data analysis, and support outstanding trials. An Internet voting system was utilized for the final review to select Tsukuba Society 5.0 Social Implementation Trial Support Projects from proposed trials. My Number cards were used for identifying voters.
There are four basic conditions for fair Internet voting as shown below. The first is to confirm the validity of voters. The second is to keep votes secret. The third is to prevent multiple voting. Lastly, the fourth is to prevent votes from being tampered with.
The characteristics of blockchain are that it securely records all the transactions (voting in this case) that participants make without being tampered with. This means that combining blockchain with a voter authentication mechanism makes it possible to achieve an Internet voting system that meets the four basic conditions.
Although Internet voting in Tsukuba was carried out in such a way that voters vote with terminals in prepared polling stations, the system was built to make it possible to vote from homes and other places. When these efforts progress further and technical knowledge is accumulated in the future, we may be able to select our representatives from homes and other places using Internet voting.
Challenges of Blockchain: Real-time, Throughput, Security
Blockchain technology is not perfected yet, even though many expect it to drive the digitization and systematization of various economic and social activities ranging from financial activities to Internet voting. Since the inception of bitcoin started in 2008, it is safe to say that the technological development of blockchain has just begun. Blockchain has much potential but there are also many issues that need to be resolved. To make the full use of blockchain, many new technologies have to be incorporated going forward.
There are several issues surrounding blockchain, and this article introduces three representative ones. The first is a low real-time processing capability. Blockchain involves a process to record transactions in a block periodically. In addition, there is a rule that, since several computers may create separate blockchains concurrently, the longest blockchain shall be considered legitimate after a certain period of time. For this reason, it takes some time to determine whether a blockchain record is legitimate, making it less suitable for transactions that require a formidable real-time capability.
The second is low throughput. This is related to the fact that the amount of data per block is fixed and transactions are recorded periodically. When a multitude of transactions occur instantaneously, some of them cannot fit into a data block and are queued for the next block. Computer clusters that compose a blockchain performs enormous computations to generate blocks and such computing power is used for earning rewards by completing computations faster than other computers. The number of transactions in unit time is determined by how blockchain works, regardless of the computer's processing power.
The third is security. Warnings are especially increasing regarding smart contracts that use blockchain as a program runtime environment. A smart contract makes it possible to distribute a program and implement it on all computers that have joined in a blockchain by embedding the program into the blockchain. To prevent malicious programs from being distributed, a mechanism to identify the safety of programs to deal with should be developed on a continuous basis.
Check Risks of Smart Contract and Discover Corresponding Source Code Portions
Efforts to solve problems with blockchain are being proactively made around the world. As for security problems with smart contracts, for example, there are development case studies involving Fujitsu Laboratories Ltd. and Fujitsu Research and Development Center (China). The two developed a technology to verify risks in smart contracts in advance and identify to what part of the program those risks detected during verification are located.
Specifically, they developed an algorithm to identify risky transactional flows on Ethereum, a runtime environment for blockchain applications, which makes it possible to detect various risks in smart contracts that may be overlooked when done manually, in a comprehensive manner.
They also developed a technology that not only detects risks but also identifies with a high degree of accuracy to what part of the source code those discovered risks are located. Portions of the source code that correspond to the detected risks are identified by inferring a corresponding relationship between the execution file and an execution file for debugging with source code information embedded. Incorporating and making use of this technology will significantly improve the security of smart contracts.