Applied Energy 254 (2019) 113604
Contents lists available at ScienceDirect
Applied Energy journal homepage: www.elsevier.com/locate/apenergy
Blockchain based uniform price double auctions for energy markets a
a,b
Magda Foti , Manolis Vavalis a b
T
Department of Electrical and Computer Engineering, University of Thessaly, 38221 Volos, Greece WSO2 Inc., 787 Castro Street, Mountain View, CA 94041, USA
HIGHLIGHTS
contracts for uniform price double auction. • Smart simulations of decentralized energy markets. • Large-scale • Consortium blockchain network for decentralized energy markets. ARTICLE INFO
ABSTRACT
Keywords: Blockchain Distributed ledger technology Smart grid Double auction Energy market
The energy sector is undergoing a massive transformation that greatly affects and is being affected by its market mechanisms. This paper presents the design, the prototype implementation and the analysis of a decentralized, real-time, uniform-price double auction energy market. The proposed market is a distributed and decentralized application and its rules may be specified through a smart contract. Market participants interact with the smart contract sending their asks and offers and the distributed application clears the market based on a uniform-price economic dispatch model. We propose and analyze three different implementation approaches on an Ethereum blockchain network. A model representing a physical demonstration project conducted in Seattle, USA, is utilized to simulate the power grid and to provide real-life scenarios for our analysis. We systematically evaluate our three implementation approaches and elucidate several blockchain issues regarding the decentralization of next-generation energy markets. In particular, we identify that certain computation modules may be installed on smart consuming devices in order to increase efficiency, security and decentralization and reduce the overall blockchain overhead cost. Furthermore, we show that in order to fulfill the market’s high demand for step timing, we ought to have the block generation time several magnitudes smaller compared to the auction period.
1. Introduction This paper rides on top of two technology waves, the Distributed Ledger Technologies (DLTs) and the next-generation power grid, also known as the smart grid. In particular, we envision next-generation power grid systems that are based on distributed nearly real-time demand response models and associated markets that utilize the blockchain concept and technology, while they operate under the conventional power control mechanisms. We believe that such next-generation energy networks are materialized through the integration of several enabling components and blockchain technology could be a decisive such component. Nowadays, transactive energy is defined as the concept that combines economic and power control techniques to improve the efficiency and reliability of the power system. Transactive energy systems, as a generalized form of demand response, focus on real-time, autonomous
and decentralized systems, able to take decisions [1]. In this paper we study certain important characteristics of the blockchain technology and examine their appropriateness for such transactive energy systems and in particular for their markets. The three main ways through which DLT is transforming the systems of finance are Digitization, Decentralization and Democratization. We argue that these characteristics can be decisive enabling factors, allowing power grid transformation to achieve its goals. We also believe that DLTs will allow us to address several issues that smart grids face today, such as Byzantine fault tolerance [2] in smart grid communication, the operational costs of the energy markets, the protection of the privacy and the strengthening of the cyber-security of the smart grids. Blockchain technologies commonly offer practical solutions. Nevertheless, they pose challenges while, at the same time, offer great opportunities. Such opportunities could most likely arise in the
E-mail addresses:
[email protected] (M. Foti),
[email protected] (M. Vavalis). https://doi.org/10.1016/j.apenergy.2019.113604 Received 12 January 2019; Received in revised form 18 July 2019; Accepted 20 July 2019 Available online 09 September 2019 0306-2619/ © 2019 Elsevier Ltd. All rights reserved.
Applied Energy 254 (2019) 113604
M. Foti and M. Vavalis
To the best of our knowledge, our work is the first attempt to run largescale simulations and systematically compare a decentralized energy market based on blockchain with the corresponding centralized implementation. In our three approaches for implementing the P2P network as well as the associated market mechanisms, we gradually move computation from the smart contract and the P2P network to the local machines running the blockchain client. All the approaches are based on smart contracts deployed on a consortium P2P network. We compare the results of each decentralized approach with the results of the same energy market that is operated by a centralized authority. The rest of this paper is organized as follows. In the next section we set the required background and we present the basic concepts, and in Section 3, we briefly present selective recent studies that relate distributed ledger technology with power grids. Section 4 contains our design and implementation efforts for an effective decentralized electricity market and Section 5 our simulation results and their preliminary analysis. The synopsis of our work together with certain future research and development plans are given in Section 6.
Fig. 1. Uniform price, double auction market clearing.
interfaces of the market design and implementation on one side and the optimal use of energy resources and sustainable energy systems on the other. Such interfaces will lead to social and economic impacts of energy policies and usage. In this paper, we design, implement and analyze a uniform price double auction mechanism, graphically depicted in Fig. 1, based on blockchain for the operation of real-time energy markets. Our prototype implementation is a Cyber-Physical system consisting of a physical private blockchain network and a simulated power grid. The blockchain network contains 250 nodes connected in a P2P network. This network can be used by any distributed application. For our study, we implement an energy market distributed application where simulated energy consumers and producers participate. We consider as consumers the end-use devices in residential homes, such as HVAC systems and water heaters equipped with intelligent controllers. These controllers place price and power demand bids into the market independently and automatically. Producers also place price and power bids into the market. Each market participant has access to one blockchain node through which he queries the market clearing price and places his bids to the market. For both the realization of the blockchain P2P network and the simulation of the power grid network we utilize open source tools that fully cover our needs. For the realization of our blockchain P2P network we use Ethereum [3] blockchain implementation and the smart contracts are written in Solidity [4]. For the power grid simulations we use GridLab-D [5], an agent-based modeling environment that provides load models, market models, distribution and transmission models, models for their interactions and many more. For the power grid simulations, we use the model built in [6]. This model has been the foundation for the GridLab-D framework in order to represent a physical demonstration project conducted on the Olympic Peninsula, Washington, USA using actual dynamic data. These data include weather, thermostat settings and characteristics of individual residential houses, such as size, thermal properties, appliances and occupancy mode. Appliances, including HVAC units and water heaters, are equipped with intelligent controllers allowing them to respond to pricing signals and change their bid price according to current energy price and their power needs. The aim of the Olympic Peninsula project is to investigate how price-based demand-response can be used to deal with congestion on a test feeder. We have selected this model to represent for our study because it allows us to test the proposed decentralized real-time energy market on an operational setting with active participation from both the demand and supply side, based on actual dynamic data. Furthermore, this model allows us to run detailed large-scale simulations including up to 1000 houses and 40 producers participating actively in the market. We propose three different approaches for the implementation of our system, examining the capabilities of the decentralized energy market though a series of large-scale simulations. Large-scale experimentation, testing the scalability of decentralized real-time energy applications, has been mentioned as much needed in recent studies [7].
2. Background and concepts 2.1. Blockchain Blockchain is a distributed public ledger in which transactions are recorded chronologically and publicly. These transactions are recorded in blocks, and the blocks are broadcast to the distributed P2P network of the blockchain nodes. The algorithm that enables the nodes to reach an agreement on the next valid block is called a consensus algorithm. Once a valid block is found, it is added to the blockchain, and it is relayed to the network of nodes. A node is a computer connected to the blockchain network using client software that performs the task of validating and relaying transactions. Anyone can join a public blockchain network just by running a client on a local computer while a validated invitation is required in order to join a private or a consortium one. Once the node connects to the network, it gets a copy of the entire blockchain. For an excellent brief description of the blockchain protocol, the reader is referred to [8]. There are certain advantages as well as specific disadvantages in using a public or a private blockchain. For our study, we consider a private (permissioned consortium) blockchain network for the following main reasons.
• The blockchain is operated by independent market participants, •
• •
2
who form a consortium. In this sense it is not a public blockchain. We may consider it as a consortium blockchain [9], a private blockchain not centrally controlled. The Energy Web Foundation, a global non-profit organization studying the blockchain’s potential in the energy sector, uses Proofof-Authority consensus mechanism to face the energy consumption problem of the blockchain technology [10]. It is widely accepted that consortium blockchains using Proof-of-Authority consensus mechanisms indeed offer increased transaction throughput and reduced energy consumption. Proof-of-Authority removes the competition among validators who race each other to create blocks, which is the main reason laying behind large energy consumption of blockchains. Due to their nature, consortium blockchains are more secure in the sense that the nodes that generate new blocks are predetermined and trusted by the network creators and members join the network by invitation only. Power grids rely on the actions of regulators. Therefore, certain centralization is somehow inherent in such grids. Regulator’s role needs to be revised when blockchain technology is included in the next-generation power grid operations but they will always play their centralized role, either directly or indirectly, fully or partially.
Applied Energy 254 (2019) 113604
M. Foti and M. Vavalis
It is widely accepted that consortium blockchain networks do limit, in some sense, decentralization. Nevertheless, this does not consist a disadvantage when considered for power grids since these grids commonly operate under the guidance of centralized regulators.
such as share of green energy or particular economic benefits. 3. Related studies There already exist a plethora of studies that concentrate on the penetration of the blockchain technologies into the energy sector [14,15]. Next, we present those of these studies that consider energy markets and are related to our efforts. They have been selected for their scientific merit, their technological importance and their entrepreneurial potential.
The Linux Foundations Hyperledger Fabric is an example of a permissioned blockchain framework implementation as is the Microsoft’s Azure framework, along with several others. For our implementation we consider Ethereum consortium blockchains mainly for their current wide acceptance and their large users’ community. Ethereum is a blockchain with a built-in Turing-complete programming language that enables us to write smart contracts, where rules for ownership, transaction formats and state transition functions may be specified [3].
3.1. Entrepreneurial efforts Energy Web Foundation (EWF), a global non-profit organization, has built an Ethereum-based client and a public test blockchain network. Its client is based on the Parity implementation of Ethereum and Aura, a Proof-of-Authority algorithm has been used for consensus. This network serves as an experimental infrastructure for the foundation’s affiliates to investigate related issues. PJM-Environmental Information Services (PJM-EIS), a subsidiary of PJM Interconnection, recently joined EWF. It is worth to note that PJM Interconnection is the power grid operator and wholesale market administrator for a 13-state region of the United States, serving 65 million people. The goal of this cooperation is the creation of a pilot, by the end of 2019, for the Generation Attribute Tracking System (GATS) administered by PJM-EIS [16]. This pilot will use EWF’s solutions based on blockchain and will allow PJM-EIS to evaluate the potential benefits of blockchain technology to improve the security, transparency and transaction costs of GATS. Apart from PJM, many other companies from the energy sector, including retailers, system and market operators, have affiliated with EWF to leverage blockchain technology. Also, there exist several other independent entrepreneurial efforts, such as Power Ledger, Verv VLUX, PONTON, WePower who claim that they develop their own products, designed for the energy sector and based on blockchain.
2.2. Smart grid Early electricity markets were designed decades ago [11] when power grids were considerably different than today. Greater interconnectedness, renewable energy sources and price-directed demand drive the evolution of the conventional power grids towards intelligent power networks. An increasing number of Renewable Energy Sources (RES) result in a decreasing portion of dispatchable energy supply and in an increasing ramp in the net load profile. A well-know effect of increased solar generation is described with the term duck curve [12]. Several of these RES are installed by end users and are essentially not controlled by system operators. Electrical vehicles and distributed energy storage contribute also to an increase in demand variability and its stochasticity. Nonetheless, these changes may also result in greater demand-side flexibility, if the demand-side takes advantage of the digitization of the grid and becomes able to actively contribute to system needs. Recent studies [13] propose that electricity markets, in order to better serve the future needs of the power systems, must properly represent the physical constraints of the system in their models and allow the active participation of the demand side. We believe that, using the benefits of blockchain technology, we can design markets that belong to their participants and which are operated solely or to a large extent by them. These participants may use blockchain technology to interact and participate more actively in an open, transparent and fare market. In the current study, we present a distributed system based on blockchain technology, which is intended to serve as a platform for the operation of electricity markets. Such a system has the potential to provide the following main benefits:
3.2. Energy markets The most popular use case using blockchain on power grids today is the P2P energy trading. Brooklyn Microgrid [17] is one of the first projects leveraging blockchain technology for P2P energy trading, developed by LO3 Energy Inc. The clear aim of this project is to study how the technology of blockchain may enable the instant trading of solar energy between neighborhoods. Several other studies have been recently devoted to the development of electricity markets using blockchain technology [18–21]. In contrast to our work, these papers focus on the P2P exchange of energy among energy producers and consumers, while we use an economic dispatch approach, clearing the market with a uniform price and quantity. The application of Demand Side Management (DSM) on blockchainbased energy markets is studied in [22,23]. Ref. [22] describes a noncooperative game theoretic algorithm among consumers and a utility for DSM. The implementation is based on blockchain, and smart contracts are developed for the realization of the distributed DSM application. As authors point out, the emerge of blockchain technology led to an increase of the number of participants entering the market and to reduced operating costs. Authors of [23] also conclude that the proposed new market structures can provide significant cost reduction to end users. The application of blockchain technology to foster the participation of EVs in energy markets is studied in [24]. An electric vehicle charging system that includes both a prioritization and a cryptocurrency component is presented. These two components are utilized to provide incentives to EV users so as to collectively charge in times with high RES generation. The prioritization component gives non-monetary
• It • •
• •
lowers the barriers for small prosumers participation in the market. To join a decentralized market as the one proposed in this work, a prosumer must be provided with a pair of cryptographic keys to join the permissioned P2P blockchain network and maintain a running blockchain node. It allows parties that do not trust, not even know, each other to interact and operate in a common decentralized market that belongs to them, its participants. There is no central authority, with which market participants interact. Market participants are able to operate according to commonly accepted rules. These rules are translated into code and they are shared among them through smart contracts. Smart contracts describe the rules of interaction among the market participants and a copy of each smart contract deployed on the blockchain network exists in every node. Monetary settlements and transactions are instantaneous using cryptocurrencies. Such a platform is very modular. The market rules can change by applying a new smart contract and several markets can operate in parallel having different rules and priorities by having multiple smart contracts deployed. In this way, participants are able to select the market they wish to participate according to their priorities, 3
Applied Energy 254 (2019) 113604
M. Foti and M. Vavalis
incentives, while the cryptocurrency component gives monetary incentives to users. Blockchain is used for the implementation of the cryptocurrency component. A data protection framework based on blockchain that enhances the robustness and security of the power grid is presented in [25]. To the best of our knowledge, the efforts found in [26] are the most closely related ones to our study that appeared in the scientific literature so far. They present a basic generic design of a simulation engine which couples GridLab-D and Blockchain. This is a conceptual paper and as far as we know, no implementation information or simulation results have been published yet, leaving certain conceptual and practical issues rather open. Moreover, our study pays special attention in comparing various decentralized approaches against the centralized one currently in use. 4. Design and implementation Currently, there exist several blockchain platforms, some still under development, each one with its own special characteristics. These characteristics need to be properly aligned with the characteristics of each particular decentralized application considered. Please note that [27] compares the most popular existing blockchain platforms on the basis of several criteria related to usability, flexibility, performance and potential. It concludes that, at this point Ethereum is the most suitable platform for building custom applications. Apart from the criteria presented in [27] Ethereum is considered to be mature, context-independent and with a relatively large active community. For the realization of our blockchain P2P network we have used Ethereum’s blockchain implementation and the smart contracts were written in Solidity [4]. For the needs of power grid simulations in our study, we use GridLab-D [5], an energy grid simulation system that combines power flow equations with financial mechanisms. It is an open source, detailed and comprehensive agent-based system that has been recently developed mainly in C++. It is widely used for research and development purposes and is based on the experience of a large group of researchers and practitioners. Furthermore, the openness of both the architecture and the code of GridLab-D have allowed us in the past to enhance it with several required for our studies capabilities [28,29]. We continue this enhancement for the specific needs of our present study as described below. GridLab-D is a modular system which allows us to easily add extra functionality to the objects it simulates. So, we have extended the provided transactive controller object by adding to it a blockchain object. The transactive controller object provides price-responsive appliance control within GridLab-D, while our blockchain object enables the appliances to connect to a blockchain node and send transactions to the network. The powerflow module performs distribution level solver methods to primarily obtain the voltage and current values in the system. Also, it ensures that the coupled operation of the market and the price-responsive appliances do not violate network constraints [21]. We have created a consortium P2P blockchain network, with more than 250 blockchain nodes, graphically depicted in Fig. 2. Forty of these nodes are controlled by generators and the rest by houses. In addition, we run three extra nodes as miners. These three miners are connected as static neighbors, which means that if, at some point, the connection between them is lost, they will try to reconnect immediately. The other nodes discover their neighbors using a discovery protocol. On a disconnection of a non-static neighbor, the node may replace the disconnected neighbor with another node close to it. A maximum of four accounts may use each node. Every market participant has access to an externally controlled account using a password and a pair of public and private cryptographic keys. This pair is installed on the blockchain node, to which the participant has access. This means that a maximum of four houses have access to the same blockchain node.
Fig. 2. P2P blockchain network connectivity. Blockchain nodes are shared on three VMs and one miner runs on each VM.
The Proof-of-Authority consensus algorithm has been chosen mainly to fulfill our market step timing requirements, as this is one of the main requirements in energy market applications based on blockchain [30]. The three miners are added as authorized accounts in the very first block in the chain of our blockchain, commonly called genesis block. The miners may be changed during the operation of the network using a voting procedure among the nodes. Proof-of-Authority clique implementation was used in our simulations, which allows us to define the block generation time in second accuracy. For our system, the electricity market is based on a smart contract deployed on our blockchain network. We have created one contract for every simulation scenario. In these smart contracts, we specify the rules under which the market operates. The difference between these contracts is the decentralization level of the operations. In the first approach, one account is responsible for calling market clearing, in the second approach, this operation is randomly called by a participant specified by the smart contract, while in the last approach, the computation of the market clearing is done in a completely decentralized way, away from the smart contract. More details on these approaches are given below in Section 4.1. We launch our consortium Ethereum network on our departmental servers. Specifically, the blockchain nodes are installed on 3 virtual machines (VMs), having approximately 90 nodes on each machine, with 244G RAM and 16 CPU cores on each VM. In every VM, one of the blockchain nodes runs as a miner. GridLAB-D is installed on a 4th VM, equipped with 4G RAM and 4 CPU cores. Fig. 2 illustrates the data communication layer of our architecture, which is implemented with the P2P blockchain network. The power grid layer is parallel to the data communication layer, which is simulated on the 4th VM by GridLAB-D. We have developed a C++ library [31] for the communication between C++ applications and Ethereum nodes, integrated this library into GridLAB-D [32] and utilize it in order to enable each simulated consumer and producer to use the blockchain node to which he has access and send transactions to the smart contracts on the blockchain network using JSON-RPC calls. The simulations run in real-time mode, which means that the simulation clock will be attached to the system clock. This way, we achieve the necessary synchronization between the simulations running on different machines and that sync between the simulation clock and blockchain timestamps. We ran all simulations for one day, namely the 4th of January 2009 in Seattle, USA. 4
Applied Energy 254 (2019) 113604
M. Foti and M. Vavalis
In our simulations, we use the IEEE 4-node test feeder, as this was used in the model we adopt by [6], representing the physical demonstration project conducted in the Olympic Peninsula, Washington, USA. IEEE 4-node test feeder offers a simple model for the analysis of all the available three-phase transformer connections. The simulated loads are connected to node 4 while the simulated generation is connected to node 1. Despite its relatively small size, this test feeder is widely used in distributed energy resources studies among other studies [33]. IEEE 4node test feeder, together with consumers and producers described above, are simulated in GriDLAB-D and constitute the simulated power grid.
and 8) and (3) a market clearing function (line 9) that accepts calls exclusively from a specific account to compute the clearing price based on the submitted bids. The externally-controlled account, known as market account, is stored on a state variable (line 5) and is responsible for calling the method marketClearing () in a predefined frequency. In our experiments, the market clearing is called every n , where n is the auction period and it varies between 1 and 15 minutes. The result of the market clearing is stored in the clearing variable line 4 in Algorithm 1. A2: The difference between A2 and A1 is that a specific market account is no longer needed and the state variable of line 5 is empty. The execution of market clearing function is triggered by functions collecting bids from consumers and producers (lines 7 and 8). This means that the MarketClearing function in A2 is called every time a bid is submitted. The implementation of the market clearing function (line 9) is now modified in order to ensure that market clearing is computed only once in every auction period the function performs some initial checks. The gas needed for the computation of clearing is paid by an arbitrary participating prosumer in every market round. A3: This smart contract is stateless, no state variables are used in this approach. The implementation does not use state variables since the result of the clearing is not stored on the blockchain but it is computed locally, based on the double auction uniform price algorithm. In this approach, we use only the public address of the deployed contract as a reference and no functionality is implemented in the methods. To realize this approach, we produced a software external to blockchain protocol. This software queries, from the blockchain node, the transactions submitted for the last market clearing and computes the market clearing using the double auction uniform price mechanism. In this A3 approach, the prosumers pay the gas for submitting their bids, while market clearing does not involve any cost of gas as it is computed externally to the blockchain.
4.1. Blockchain based market implementation approaches We design and implement three different approaches where we gradually increase decentralization. In the first approach, all the computation is done on the blockchain network and a particular account is responsible for calling the market clearing function. In the second approach, we remove the reliance on this account and the function is called randomly by any market participant, while the market clearing is still computed on the blockchain. Finally, in the third approach, the blockchain is used only to provide consensus on the transactions send by the market participants, while the market clearing is computed externally to blockchain based on the transactions sent. By using the blockchain only to broadcast the transactions and not to compute the market clearing on the smart contract we decrease the cost of gas needed for computation on the blockchain. Gas is the fundamental unit of computation used in Ethereum blockchain networks. Usually, a basic computational step costs 1 gas. The gas cost of more elaborate computations depends on the amount of data needed to be stored on the chain. In our the third approach, we rely more on external implementations of the market clearing mechanism. When market clearing is computed on the smart contract, it is guaranteed that all the nodes run the same code to compute market clearing and the result of this computation is stored on the contract state, on the blockchain state. In the third approach, the input for the computation of the market clearing is guaranteed by the blockchain and we ought to trust the implementation of the external computation to provide the correct output, which is the market clearing. Algorithm 1 is an interface, in the form of pseudo-code, that Approaches A1, A2 and A3 implement. The actual code used is also available online.1 Global variables are used in Approach A1 and A2, while in Approach A3 the contract state is empty. Functions consumptionBid and generationBid are called by consumers and producers in order to place their bids, while marketClearing computes the market clearing.
Fig. 3 summarizes the main steps of the three approaches, graphically depicting their differences in the market node. In A1 and A2, the market node device consists only of the blockchain node. The steps involved in the communication between a transactive device and the market node are the following: 1. A device queries the blockchain node about the current market price. 2. The blockchain node replies back with the current market price. The clearing price has been computed by the smart contract and the result is saved in the contract’s state. 3. The transactive device, taking into account its current state, user preferences and the current market price, places a bid into the market, for the next market period.
Algorithm 1. Smart contract interface for the three approaches. 1: 2: 3: 4: 5: 6: 7: 8: 9:
Global Variables: consumptionBids;//List maintaining the consumption bids generationBids;//List maintaining the generation bids marketClearing;//Result of last market clearing marketAccount;//Public address of market clearing account Functions’ Signature: consumptionBid(quantity, price, marketId ); generationBid(quantity, price, marketId ); marketClearing();
In approach A3 the market node device consists of the software computing the clearing price and the blockchain node. The steps involved in the communication between the transactive device and the market node, in A3, are the following: 1. A device queries the clearing software about the current market price. 2. The clearing software queries the blockchain node on the transactions submitted to the stateless contract. 3. The blockchain node replies back with the set of transactions asked. 4. The clearing software computes the market clearing using the double auction uniform price mechanism and sends the result to the device. 5. The transactive device, taking into account its current state, user preferences and the current market price, places a bid into the market, for the next market period.
We state next several details of our three approaches. A1: The contract deployed contains: (1) state variables (lines 2-5), (2) functions collecting bids from consumers and producers (lines 7
1
https://gist.github.com/mafoti. 5
Applied Energy 254 (2019) 113604
M. Foti and M. Vavalis
5. Simulation study 5.1. Experimental configuration To investigate the characteristics of our design and implementations and elucidate several related issues we design a collection of experiments. All simulation data are available on-line at Mendeley Data 2. Next, we present selected experiments that may be categorized into sets in various ways, such as the number of market participants (varying from 540 to 1000 residential houses), the auction period (varying from 5 to 15 ) and block generation time (varying from 1 , to 5 , to 15 ). In our experimental setup, appliances, such as HVAC systems and water heaters, are equipped with transactive controllers. These controllers allow them to place price and power demand bids into the market independently and in an automated way [34]. These end-use residential home devices represent the buyers in our market. Electricity suppliers, such as wind turbines, place price and power supply bids into the market and they represent the sellers. For our experiments, we have used two models considered in [6]. One with a population of 540 and another of 1000 residential houses. Both models involve 1725 kW of wind power and maximum generation capacity of 10 MW. We first consider an intraday energy market with a market unit time equal to 15 , which is the case for most of today’s European intraday energy markets, such as those operated by Nord Pool and EPEX Spot. Then we scale our experiments setting a shorter market unit time of 5 , which is the case for most of the energy markets in the USA today, like real-time energy market operated by PJM. Alongside, we differentiate the block generation time in the blockchain network. The attribute of market participants is also scaled, using the two models mentioned above, increasing the initial number of 540 consumers to 1000. Each of these setups is used to run 3 experiments, one for each different smart contract approach. We present a total of 21 experiments. The detailed setup for these experiments can be found in Table 2. In all our experiments, gate closure time of 0 is assumed. This assumption is realistic since we consider a local energy market with local producers and consumers [35].
Fig. 3. Communication steps in A1 and A2 approaches (top scheme) and A3 approach (bottom scheme).
Algorithm 2. Market clearing iterative process Everybody initializes its price and quantity bids for i = 1 to end_time_interval, Step = 1 Market clears price; Clearing price is sent to everybody; Everybody calculates new price and quantity bids for market (i + 1); Bids are submitted to market; end For
Algorithm 2 describes the iterative process of the market. Transactive controllers receive the market clearing price and respond to it by submitting new bids for the next market clearing. Table 1 presents the details of a transaction submitting a bid. Block Height is the number of the block at which the transaction was mined. The From and the To fields hold the public address of the sender and receiver respectively. In our design and implementation, the From and the To fields hold the public address of the bidder and of the contract respectively. Each Ethereum account has a field called Nonce to keep track of the total number of transactions that the account has sent to the network for execution; in Table 1, we see the first transaction sent by this account. The first 4 bytes of the Input Data field determine the target function, while the next bytes are the value of the parameters in bytes32. The transaction in Table 1 calls the consumptionBid function with parameters 414(4,14 kW h), 30(0,30$/kW h) and marketId 1. Gas is the internal pricing for running a transaction in Ethereum, which indicates the consumption towards computational expenses on the network. Miners, who perform tasks like verification and processing of transactions, are awarded this particular fee for their computational services. In Table 1, we see that a call to consumptionBid function costs 158,064 gas. The Transaction hash is generated by signing the transaction data using the private key of the sender. Singing of the transaction ensures that no one else may send this transaction on the sender’s behalf.
5.2. Effectiveness Our objective is to evaluate the effectiveness of such a distributed system for the operation of an energy market compared to a centralized system. This is done by comparing the clearing price and quantity of each market clearing over the time horizon of one day. Figs. 4a and c compare the 96 market clearings that occur during a day in an energy market with an auction period of 15 , while Fig. 4b and d compare the 288 clearings that occur if the auction period is set to 5 . We evaluate the results of each experiment by comparing the outcomes of each clearing in our decentralized system with the respective clearing in the centralized one, which we consider as a basis. We use the d 2 and the d norms (Eqs. 1) to quantify the differences between both the clearing price and the clearing quantity as follows
d
Table 1 Fields included in the transaction submitting a bid to the market. Block Height From To Nonce Input Data
Gas Used Transaction Hash
= 2
1 n
n
(d i ) 2 , i=1
d
= max i
di
, i = 1, 2, …n,
(1)
where di = i is the index of each clearing incident and n the total number of clearings that occur during the particular day of the simulation. vic and vid denote either the clearing prices or the clearing quantities at the ith clearing of the centralized and the decentralized models respectively, as indicated by their superscripts. Please note that n = 96 if the market auction period equals 15 or n = 288 if the market auction period equals to 5 .
vic
22001 0xca35b7d915458ef540ade…733c 0x692a70d2e424a56d2c6c2…b3a 1 0x7cfdb9cb 00000…00000019e 00000…00000001e 00000…000000001 158064 0x89d728959944122631a7c1…eff
2
6
vid ,
https://doi.org/10.17632/gpp7gcfv4t.1.
Applied Energy 254 (2019) 113604
M. Foti and M. Vavalis
Table 2 Experimental setup, results comparing the decentralize systems with the corresponding centralized and cost evaluation of the various experiments. Simulation parameters Acronym
Houses
Market period
Block period
Difference from centralized Approach
d
Consumers
d
2
Average cost
Price
Quantity
Price
Quantity
Gas × 10
Producers
6
$
Gas × 10
Clearing
6
$
Gas × 10
6
$
A1_540_15_15 A2_540_15_15 A3_540_15_15 A1_540_15_1 A2_540_15_1 A3_540_15_1 A1_540_5_5 A2_540_5_5 A3_540_5_5 A1_540_5_1 A2_540_5_1 A3_540_5_1
540
15 15 15 15 15 15 5 5 5 5 5 5
15 15 15 1 1 1 5 5 5 1 1 1
1 2 3 1 2 3 1 2 3 1 2 3
0.21 0.21 0.21 0.21 0.21 0.21 1.26 0.24 0.67 0.09 0.09 0.09
7.04 7.04 7.04 7.04 7.04 7.04 104.92 22.50 21.57 0.50 0.50 0.50
1.50 1.50 1.50 1.50 1.50 1.50 15.40 3.49 11.25 0.72 0.72 0.72
25.85 25.85 25.85 25.85 25.85 25.85 1751.58 240.46 366.67 5.17 5.17 5.17
5.60 7.48 1.90 5.60 7.39 1.90 18.16 24.42 6.13 18.20 24.45 6.11
11.60 15.50 3.94 11.60 15.31 3.94 37.59 50.55 12.70 37.69 50.62 12.65
6.09 6.39 2.15 6.09 6.88 2.15 18.16 19.07 6.42 18.16 20.34 6.40
12.62 13.22 4.46 12.61 14.26 4.46 37.60 39.48 13.29 37.60 42.10 13.25
1,101.16 – – 1,102.90 – – 3,642.37 – – 3,657.92 – –
2,279.41 – – 2,283.00 – – 7,539.72 – – 7,571.91 – –
A1_1000_15_15 A2_1000_15_15 A3_1000_15_15 A1_1000_5_5 A2_1000_5_5 A3_1000_5_5 A1_1000_5_1 A2_1000_5_1 A3_1000_5_1
1000
15 15 15 5 5 5 5 5 5
15 15 15 5 5 5 1 1 1
1 2 3 1 2 3 1 2 3
1.51 1.66 2.91 25.10 9.47 16.72 0.04 0.04 0.04
23.14 23.14 94.73 1109.99 882.91 551.74 0.89 0.89 0.62
10.70 12.29 15.47 263.39 101.72 261.97 0.27 0.27 0.27
160 160 808.29 4762.00 3988.27 4688.75 4.59 4.59 4.59
5.70 7.65 2.00 17.48 22.57 6.12 18.21 24.72 6.24
11.80 15.85 4.15 36.18 46.73 12.68 37.71 51.17 12.93
6.55 6.55 2.15 18.56 19.46 6.29 19.41 22.64 6.42
13.56 13.56 4.46 38.42 40.30 13.03 40.19 46.87 13.30
2,079.50 – – 5,578.86 – – 6,911.46 – –
4,304.58 – – 11,548.24 – – 14,306.73 – –
The calculated difference norms for all our simulations can be found in columns 6–9 in Table 2. The effectiveness of the systems is discussed in Fig. 5, where we selectively present the scaled error for the price results and for the experiments with the auction period varying from 5 to 1 . The scaled error reported is the difference between the computed values of the centralized vic and the decentralized vid system for each market clearing, divided by the average value of the centralized results, i.e.
vic
vic
vid
generated every minute and the market clearing will take into account the bids that were added to the last 5 blocks. Of course, in this case also, if a bid gets added to a block after these 5 blocks, it will be ignored by the next clearing. In other words, if the auction clearing period equals to the block generation time, the bids must be included in a specific block in order to be taken into account for the clearing. If the block generation time is 5 times less than the auction period, the bids can be included in any of the 5 blocks between two clearings. The evaluation of these differences can be seen in Table 2, the experiments A1_540_5_5, A2_540_5_5 and A3_540_5_5 present an d 2 error norm even a few hundred times higher than the one that is computed for A1_540_5_1, A2_540_5_1 and A3_540_5_1. The maximum error given from d norm is worse. We may observe these differences in Fig. 5, where the clearing price scaled error for the 6 experiments is depicted. It should be pointed out that approach 1 has significantly worse results compared to approaches 2 and 3. This stems also from the fact that approach 1 has higher synchronization and CPU needs compared to the other two. In approach 1, a blockchain user needs to call the market clearing function when the auction closes. This call is done by a transaction that this account sends. If this transaction does not get included to the right block, for any reason, the clearing will be calculated deferred. To confirm our arguments and the assumptions made in the interpretation of the results of the first 12 experiments, we repeated these experiments by scaling the number of market participants. In Fig. 4c, we present the results of the experiments with 1000 market participants and auction period and block time set equal to 15 . The differences here are minor but visible on the two graphs. Compared to the previous results displayed in Fig. 4a, we see that the increase of the number of participants stresses the distributed system which is also quantified in Table 2 that contains the error norms. We summarize the most interesting results of our experiments in 4d, where we further stress our system by decreasing the auction period to 5 . In these experiments, where the block generation period was also set to 5 , the results are poor. The quality of the results is depicted in Fig. 4d, where we see significant differences between the results of the decentralized systems of all approaches and the results of the centralized system. The quality of the results is also quantified in Table 2.
.
To visualize the effectiveness of the decentralized systems we have implemented compared to the corresponding centralized system, we present in Fig. 4 the clearing price and quantity results for the 21 experiments during the 24-h simulation. In Fig. 4a, the results of the first 6 experiments are summarized and compared to the clearing prices and quantities of the centralized system with market auction period 15 . It is apparent that their differences are minor and result in a blared line on the graphs. The actual difference of each experiment compared to the centralized system can be seen in Table 2. Both the error norms remain unchanged in all of these experiments. This indicates that the 6 different decentralized systems do not experience any type of overload, either CPU or network, and are not affected by any sort of stochasticity due to networking. In Fig. 4b, we view the results of the next 6 experiments, where we have reduced the market auction period to 5 . This means that the 540 participants will send one bid every 5 and the computation of the market clearing on both the centralized and decentralized systems will occur every 5 . In other words, the CPU and network requirement is three times higher compared to the experiments presented in Fig. 4a. The interesting result is that the experiments with the 5 block generation time present some differences compared to the centralized solution. When we reduce the block generation time to 1 , these differences disappear. This is due to the fact that we have created higher computational needs to a system that necessitates synchronization. In the A1_540_5_5, A2_540_5_5 and A3_540_5_5 experiments, if a bid that is sent for a specific auction period does not get included in the block that will be generated with the market clearing, it will be added to the next one and will be ignored during the computation of the next clearing. On the other hand, in the A1_540_5_1, A2_540_5_1 and A3_540_5_1 experiments, bids are added to the blocks that are 7
Applied Energy 254 (2019) 113604
M. Foti and M. Vavalis
Fig. 4. Clearing price (left column) and clearing quantity (right column) results.
Here, we see a great increase in both norms, which means that the difference in the results does not occur in some market clearing but we have a system that is generally overloaded and gets a high error due to its whole operation. The error in the experiments A1_1000_5_5, A2_1000_5_5 and A3_1000_5_5 is several magnitudes bigger compared to all the other results. Furthermore, as in the experiments with 540 market participants, the results are quite different between the three approaches. Approach 1, which is the most demanding in computation and synchronization, has the worst results. This difference between the
three approaches is more visible in the graphical representation of the residual of these approaches in Fig. 5. As it becomes clear form the plots in Fig. 4b, by decreasing the block time to 1 the difference between the results of the decentralized systems and the centralized ones become minor again. The quantified error in Table 2 reaches a minimum and the error presented in Fig. 5 is decreased. In Fig. 6, we compare the auction clearing that occurs at 16:20 of the simulated day in the decentralized system associated with the 8
Applied Energy 254 (2019) 113604
M. Foti and M. Vavalis
Fig. 5. Clearing price scaled error for 540 (left) and 1000 (right) market participants with a 5 auction period, during the 24 h of the simulated day.
concluded that a good choice is x = 5. A systematic search on the optimal value of the parameter x is beyond the scope of our study. 5.3. Cost To analyze the cost of our approaches we ought to examine the cost of maintaining the consortium blockchain network for deploying the distributed application to a public blockchain network, considering it as a decentralized virtual machine. In Table 2, we present the average cost of participating in the market for a consumer and a producer. Please note that, for all the experiments in approach 1, there is an extra cost paid by a specific account for the clearings. This cost in approach 2 is shared among the participants, while it does not exist in approach 3 since the clearing is not computed on the smart contract but the computation takes place on the local machines running the blockchain client. The differences in costs for the consumers and the producers come from the fact that the number of consumers varies from 540 to 1000, while the number of producers is constantly set to 45 in all the setups. We note that if these two numbers were comparable the costs would also be the same. As expected, approach 2 is the most expensive among the three for any experiment configuration because of the shared clearing cost, while approach 3 is the cheapest. The less gas consuming experiments are A3_540_15_15 and A3_540_15_1, while the most gas consuming experiment is A2_1000_5_1. The difference between A2_1000_5_1 and A2_1000_5_5 originates from the fact that in A2_1000_5_5 the blockchain network is congested and the clearing function ignores the transactions that arrive late, so the clearing price and quantity are computed taking into account less transactions compared to A2_1000_5_1 where the blockchain network is not congested. Costs in $ are calculated using current Ether price (1 Ether = $230) and the average gas price of 9 Gwei (1 Ether = 109 Gwei). The cost of each transaction would be paid if the contract was deployed on the public Ethereum network. In the public Ethereum network, a transaction has a minimum cost of 21,000 gas, which means that if a market participant sends a transaction in every market clearing, then the minimum cost per day is 96 × 21, 000 if the auction period is 15 , or 288 21, 000 if the auction period is 5 , which results in a minimum cost of $4.17 and $12,51 respectively. In our experiments consumers sent on average 85 transactions/day in 15 auctions and 269 transactions/day in 5 auctions, whereas producers participate in all the auctions. In Table 2 we can see that approach 3 has the minimum cost in all the cases.
Fig. 6. Uniform price, double auction market clearings for the centralized and the decentralized (case A1_1000_5_5) realizations at 16:20 of the simulated day.
A1_1000_5_5 experiment and the corresponding centralized one. Fig. 6 shows the cause behind the errors presented in Fig. 5 and explains the effect these errors have on the consumers and producers. Market clearing has moved higher and to the left, which results in higher clearing price and lower clearing quantity. This has happened because a transaction holding a seller’s offer and some of the transactions holding buyers’ offers have not been included in the right block in the blockchain and thus, they were not taken into account for the clearing. This figure explains the results we see in Fig. 4d, where the clearing price is slightly different in most of the time-slots, while the quantity varies considerably. It should be noted that the shift on the market clearing has resulted in a reduction in global welfare. The offer of the producer with the lowest price has not been included in the auction and this leads to a shift of the generators’ marginal-cost curve. The delayed bids from the consumers also result in a shift to the consumers’ bid curve. The case of an increase in the social welfare due to increased error is not possible. The errors are due to delayed transactions. The transactions that arrive after market gate closure are rejected and not included in the next market period. The social welfare is maximized when the error of the decentralized system is minimized. This deviation from the maximum social welfare is depicted in Fig. 5 and quantified by d 2 and d norms in Table 2. The above results confirm our arguments in the interpretation of the results of the experiments with 540 participants. They verify that a blockchain distributed system designed for an application with high demand on synchronization, such as continuous auctions, needs to have a block generation time x times smaller compared to a full application round, as is the auction period in our case study. In our case, we
5.4. Decentralization and security Approach 3 is the most decentralized and the one that is closer to the nature of distributed ledger technology. In this approach, the smart contract is used only as a reference public address and thus it may be avoided and replaced by an externally controlled account address or by 9
Applied Energy 254 (2019) 113604
M. Foti and M. Vavalis
zero address 0x000.. which is used also for the contract creation. Approach 3 is the most secure one as well, since it solely uses blockchain to transfer transactions and not to make computations on it. It is worth noting that most security problems in blockchains arise from manipulations of smart contract execution by malicious users [36]. Furthermore, in the consortium Proof-of-Authority network, nodes must ensure that the authorized nodes do not get compromised. In the public Proof-of-Work network taking control of the network would need enormous amounts of computational power. In a consortium Proof-of-Authority network, the majority of the authorized nodes has to be compromised in order to take control of the network, irrespective of computational power.
wasting their available energy they could devote it for operating the blockchain. The above list may include several other items when cyber-security, anonymity and other issues are considered. Acknowledgment This research has been supported by the General Secretariat for Research and Technology and the Hellenic Foundation for Research and Innovation (Scholarship Code: 769). Appendix A. Supplementary material
6. Synopsis and prospects
Supplementary data associated with this article can be found, in the online version, at https://doi.org/10.1016/j.apenergy.2019.113604.
The main contribution of this study is a conceptual and technological framework that attempts to fill the gap between energy markets and blockchain technologies. To the best of our knowledge, this is the first research effort that specifically analyzes an approach which contributes some preliminary findings to the field of the particular and rather popular market mechanism of the uniform price double auction. We have successfully utilized blockchain to design three uniform price, double auction energy markets and implemented them on a consortium Ethereum network. We comment on qualitative issues and important market characteristics like effectiveness, cost, security, privacy and decentralization. We quantitatively compare our three approaches through relatively large and highly realistic scenarios in real-time. We also comment on the technical implementation and integration details, in particular on those related to the interfacing of the power grid power flow simulation system (GridLAB-D) with the markets and the Ethereum network components. We have seen that a rather small computational cluster is required to fully support all the required computation. The main conclusion that derives from the interpretation of our results is that blockchain distributed systems, designed for an application with high demand on step timing, such as continuous auctions, need to be properly configured and effectively parametrized. In particular, we need to have a block generation time x times smaller compared to a full application round, like the auction period in our case study. For our study we discovered that 5 is a proper value for the parameter x for all cases considered. The determination of its optimal value for generic configurations is beyond the scope of this study. Our efforts are by no means complete. In fact, they may be considered as just an initial step towards established and practical solutions. Further indicative research and development plans include the:
References [1] Chen S, Liu C-C. From demand response to transactive energy: state of the art. J Modern Power Syst Clean Energy 2017;5(1):10–9. https://doi.org/10.1007/ s40565-016-0256-x. [2] Durgvanshi D, Singh BP, Gore MM. Byzantine fault tolerance for real time price in hierarchical smart grid communication infrastructure. 2016 IEEE 7th Power India International Conference (PIICON) IEEE; 2016. p. 1–6. https://doi.org/10.1109/ POWERI.2016.8077386. [3] Wood G. Ethereum: a secure decentralised generalised transaction ledger. Ethereum Project Yellow Paper 2014;151:1–32. [4] Solidity – Solidity 0.4.21 documentation. < http://solidity.readthedocs.io/en/v0.4. 21/ > . [5] Chassin DP, Fuller JC, Djilali N. GridLAB-D: an agent-based simulation framework for smart grids. J Appl Math 2014;2014:1–12. [6] Broeer T, Fuller J, Tuffner F, Chassin D, Djilali N. Modeling framework and validation of a smart grid and demand response system for wind power integration. Appl Energy 2014;113:199–207. https://doi.org/10.1016/J.APENERGY.2013.06. 058. [7] Li Y, Yang W, He P, Chen C, Wang X. Design and management of a distributed hybrid energy system through smart contract and blockchain. Appl Energy 2019;248:390–405. https://doi.org/10.1016/j.apenergy.2019.04.132. [8] Nakamoto S. Bitcoin: a peer-to-peer electronic cash system. [9] Gai K, Wu Y, Zhu L, Qiu M, Shen M. Privacy-preserving energy trading using consortium blockchain in smart grid. IEEE Trans Ind Informat 2019. https://doi.org/ 10.1109/TII.2019.2893433. [10] Hartnett S, Henly C, Hesse E, Hildebrandt T, Jentzch C, Krämer K, et al. The energy web chain. Tech rep; 2018. [11] Hogan WW. Competitive electricity market design: a wholesale primer. Tech rep. Kennedy, John F School of Government, Harvard University, Cambridge, MA, USA; 1998. [12] Denholm P, O’Connell M, Brinkman G, Jorgenson J. Overgeneration from solar energy in California. A field guide to the duck chart. Tech rep. National Renewable Energy Laboratory (NREL), Golden, CO (United States); 11 2015. doi:https://doi. org/10.2172/1226167. [13] Conejo AJ, Sioshansi R. Rethinking restructured electricity market design: Lessons learned and future needs. Int J Electr Power Energy Syst 2018;98:520–30. https:// doi.org/10.1016/J.IJEPES.2017.12.014. [14] Andoni M, Robu V, Flynn D, Abram S, Geach D, Jenkins D, et al. Blockchain technology in the energy sector: a systematic review of challenges and opportunities. Renew Sust Energy Rev 2019;100:143–74. https://doi.org/10.1016/j.rser. 2018.10.014. [15] Ahl A, Yarime M, Tanaka K, Sagawa D. Review of blockchain-based distributed energy: Implications for institutional development. Renew Sust Energy Rev 2019;107:200–11. https://doi.org/10.1016/j.rser.2019.03.002. [16] Energy Web Foundation and PJM-EIS Announce Collaboration to Build and Evaluate Blockchain-based Tool for a Major U.S. Renewable Energy Certificates Market – Energy Web Foundation. < https://tinyurl.com/yckw7q7j > . [17] Mengelkamp E, Gärttner J, Rock K, Kessler S, Orsini L, Weinhardt C. Designing microgrid energy markets: a case study: the Brooklyn Microgrid. Appl Energy 2018;210:870–80. https://doi.org/10.1016/J.APENERGY.2017.06.054. [18] Sikorski JJ, Haughton J, Kraft M. Blockchain technology in the chemical industry: machine-to-machine electricity market. Appl Energy 2017;195:234–46. https://doi. org/10.1016/J.APENERGY.2017.03.039. [19] Pop C, Cioara T, Antal M, Anghel I, Salomie I, Bertoncini M. Blockchain based decentralized management of demand response programs in smart energy grids. Sensors 2018;18(2):162. [20] Lüth A, Zepter JM, Crespo del Granado P, Egging R. Local electricity market designs for peer-to-peer trading: the role of battery flexibility. Appl Energy 2018;229:1233–43. https://doi.org/10.1016/j.apenergy.2018.08.004. [21] Guerrero J, Chapman AC, Verbic G. Decentralized P2P energy trading under network constraints in a low-voltage network. IEEE Trans Smart Grid 2018:1. https:// doi.org/10.1109/TSG.2018.2878445.
• study of the effect of competition among energy participants. A way •
• • •
in which this competition can be expressed in a blockchain application is by the utilization of gas price in the transactions. Producers that are highly competitive may use high gas prices to include their transactions in the next block. evaluation of the effect different block generation periods have on market competition. Different block generation periods result in different levels of information transparency and this affects market competition. Apart from the block generation period, a systematic evaluation of the competition on markets that operate over blockchain must be conducted [37]. study of the behavior of our system under stochastic demand and supply [38] design and implementation of a specific purpose blockchain, tailored to the needs of the power grid [39]. possibility of integrating economic dispatch of the energy market with transaction validation and block generation procedure. Generators that participate in the market but do not succeed in selling their energy in a particular market clearings, instead of 10
Applied Energy 254 (2019) 113604
M. Foti and M. Vavalis [22] Noor S, Yang W, Guo M, van Dam KH, Wang X. Energy demand side management within micro-grid networks enhanced by blockchain. Appl Energy 2018;228:1385–98. https://doi.org/10.1016/J.APENERGY.2018.07.012. [23] Dang C, Zhang J, Kwong C-P, Li L. Demand side load management for big industrial energy users under blockchain-based peer-to-peer electricity market. IEEE Trans Smart Grid 2019:1. https://doi.org/10.1109/TSG.2019.2904629. [24] Zhang T, Pota H, Chu C-C, Gadh R. Real-time renewable energy incentive system for electric vehicles using prioritization and cryptocurrency. Appl Energy 2018;226:582–94. https://doi.org/10.1016/J.APENERGY.2018.06.025. [25] Liang G, Weller SR, Luo F, Zhao J, Dong ZY. Distributed blockchain-based data protection framework for modern power systems against cyber attacks. IEEE Trans Smart Grid 2018:1. https://doi.org/10.1109/TSG.2018.2819663. [26] Mylrea M, Gourisetti SNG. Blockchain: a path to grid modernization and cyber resiliency. 2017 North American Power Symposium (NAPS) IEEE; 2017. p. 1–5. https://doi.org/10.1109/NAPS.2017.8107313. [27] Macdonald M, Liu-Thorrold L, Julien R. The blockchain: a comparison of platforms and their uses beyond bitcoin; 2017. [28] Akram N, De Silva S, Foti M, Jayasinghe M, Dayarathna M, Vavalis M, et al. Real time data analytics platform for power grid smart applications. In: International conference on the European energy market, EEM; 2017. doi:https://doi.org/10. 1109/EEM.2017.7982012. [29] Foti M, Greasidis D, Vavalis M. Viability analysis of a decentralized energy market based on blockchain. 15th international conference on the European energy market. 2018. p. 1–6. [30] Vangulick D, Cornélusse B, Ernst D. Blockchain for peer-to-peer energy exchanges: design and recommendations. In: Power system computation conference, Dublin; 2018.
[31] Foti M. CPP wrapper for json-rpc calls to ethereum node; 2017. < https://github. com/mafoti/ethereum-cpp-rpc-calls > . [32] Foti M. GridLAB-D with blockchain functionalities; 2017. < https://github.com/ mafoti/blockchain-gridlabd > . [33] Postigo Marcos F, Mateo Domingo C, Gómez San Román T, Palmintier B, Hodge BM, Krishnan V, et al. A review of power distribution test feeders in the united states and the need for synthetic representative networks. Energies 2017;10(11):1896. https://doi.org/10.3390/en10111896. [34] Fuller JC, Schneider KP, Chassin D. Analysis of residential demand response and double-auction markets. 2011 IEEE power and energy society general meeting IEEE; 2011. p. 1–7. https://doi.org/10.1109/PES.2011.6039827. [35] Nord Pool Market Closing Times. < https://tinyurl.com/y29jxy64 > . [36] Luu L, Chu D-H, Olickel H, Saxena P, Hobor A. Making smart contracts smarter. Proceedings of the 2016 ACM SIGSAC conference on computer and communications security – CCS’16 New York, USA: ACM Press; 2016. p. 254–69. https://doi.org/10. 1145/2976749.2978309. [37] Lazarczyk E, Coq CL. Information disclosure rules in the european electricity market: an overview. 2018 15th international conference on the European Energy Market (EEM) IEEE; 2018. p. 1–4. https://doi.org/10.1109/EEM.2018.8469779. [38] Xu SX, Huang GQ. Transportation service procurement in periodic sealed double auctions with stochastic demand and supply. Transport Res Part B: Methodol 2013;56:136–60. https://doi.org/10.1016/J.TRB.2013.07.015. [39] Mavromatis K, Foti M, Vavalis M. Blockchain design and implementation for decentralized optimal power flow. doi:https://doi.org/10.6084/m9.figshare. 7093835.v1.
11