Share on Twitter
Share on Facebook
Share on Reddit
Share via Email
Share on LinkedIn
Share via RSS
Share on Google+

NeoResearch presented two academic papers on Neo blockchain technology at SBAC-PAD 2019, an international IEEE conference held in Brazil during October. The papers introduce and discuss two separate topics; the first is focused on leveraging NeoVM and microcontrollers for smart home or smart city applications, and the other looks at novel consensus technology and Timed Automata theory.

Three members of the Brazil-based NeoResearch community helped author the papers in collaboration with fellow academics from three Brazilian Universities. This is hoped to “open new opportunities for Neo blockchain to be discussed within the academic field, especially for high performance computing and Smart City applications.”

A Home Ledger Approach for IoT Enabled Devices

This paper begins with an introduction to distributed ledger technologies, starting with a history of Bitcoin, background on Neo, and information on low level components such as the usage of elliptic-curve cryptography (ECC) and NeoVM.

After laying down its initial foundations, the paper goes on to outline the lack of scalability present in global public blockchains, leading many industrial applications to require private or permissioned blockchain instances instead.

Although these blockchains do not natively have the benefit of decentralized validation, they do ensure that information can be processed at high speeds with low costs. As there are cases where there is no need for an operation to be validated globally—such as when verifying personal data that an individual home or business owner has full control over—there is no need to use a public blockchain.

To serve these use cases, NeoResearch introduces a “Home Ledger” model, where users rely on efficient, high-performance devices to process private operations whilst ensuring data persistence. In situations where global validation is eventually required, transactions could be batched and finalized on a public blockchain like Neo.

The authors introduce a “smart lock” as one such example of this type of home application, referring to the use of a digital lock that allows a home to authenticate users before granting entry. Access control could be performed through the use of a smartphone app.

Theoretically this could allow users to benefit from some attributes of distributed ledger technology without being required to process large numbers of potentially expensive transactions on public blockchains.

In the paper, the authors propose that a low-energy IoT (Internet of Things) device would be capable of running these simple home applications. The authors experimented with two microcontrollers, the Arduino Uno and ESP8266 NodeMCU V3, both evaluated using a NeoVM opcode responsible for ECC verification.

Between the two devices, the ESP8266 consistently performed its operations in 1/10th of the time taken by the Uno. This would allow the ESP8266 to perform around 2 scripts per second, sufficient for basic home applications.

NeoResearch will continue to study the use of NeoVM in an IoT setting by testing newer microcontrollers that could be used to improve on performance and explore new smart home (or smart city) applications and use cases.

LibBFT: a High-Performance Timed Automata Library Collection for Byzantine Fault Tolerance

The second paper focuses on consensus algorithms, with a focus on Byzantine Fault Tolerant protocols modelled with a Timed Automata approach. After providing context on BFT with an overview of PBFT and dBFT, NeoResearch outlined a rare issue encountered during the design of dBFT, responsible for causing single block forks.

Noting how these challenges were overcome in dBFT 2.0, the authors go on to explain that this lead to the creation of state machine diagrams based on Timed Automata theory. This was hoped to provide a mechanism by which state transitions could be better understood and how they could potentially affect liveness on the Neo network.

As existing libraries were scarce and rarely included visualization tools and easy proof of correctness, LibBFT was created. Designed with high performance consensus machines in mind, the library has its roots in Timed Automata theory, which extends finite automata (mathematical models of computation that can only be in one state at a time) with real-valued clocks. This allows states to be evaluated and compared at different times on the clock.

LibBFT provides the components to power internal states and transitions, including the protection of states and clock implementations. However mechanisms for communication with the outside world are also required to make it usable in real world applications.

To this end, NeoResearch explains its usage of an RPC protocol, selecting the language independent framework gRPC, and the use of protocol buffers (Protobuf) as a language-neutral, performant mechanism for data serialization. These technologies allow LibBFT to be implemented and accessed in multiple programming languages, whilst maintaining unified and interoperable serialization schemes.

The library organizes the state machine into states, transitions, and clock operations, providing several components:

  • Machine – a state machine definition that can be easily replicated
  • Clock – a device to measure local time
  • State – a machine state that can be changed
  • Transition – the mechanism by which a state can be changed (whether locally or globally)
  • Condition – a true/false condition for triggering a transition
  • Action – an operation that affects machine state, internal data structures, and clock operations that can only occur after a transition
  • Event – an expected situation that can originate from an external or internal source

Together, these components allow BFT state machines to be efficiently modelled as long as the intended behaviour for the algorithm is known for each component. The paper concludes with a case study that uses LibBFT to model dBFT 2.0, a modern consensus algorithm used by the Neo blockchain.

LibBFT currently offers support for C++ and Go, though further languages such as Python can be added in the future. Moving forward, NeoResearch intends to model other consensus mechanisms used in blockchain networks, such as Honey Badger BFT and VBFT.