Tokenizing Renewable Energy Certificates (RECs)—A Blockchain Approach for REC Issuance and Trading

Renewable Energy Certificate (REC) is a market-based instrument and tracking mechanism for electricity generated from renewable sources as they flow into the power grid. The current REC issuance and tracking system is centralized, highly regulated, and operationally expensive. We proposed a blockchain-based, decentralized platform for REC issuance and trading by allowing greater traceability and transparency in transactions and reducing the operational costs of REC exchanges. The main design of the platform is to tokenize RECs and provides a decentralized, trustworthy mechanism for REC issuance, trading, verification, and retirement. The platform provides low costs, transparency, and easy to use. Representing RECs as blockchain tokens ensures that the trustworthy information is immutably recorded and available for all stakeholders to track and verify, thereby improving the reliability and security of the REC issuance and tracking systems. We present the design of the platform and detailed simulations of REC issuance and trading.


I. INTRODUCTION
With global warming and climate changes, using renewable energy generation is increasingly important to protect the environment. Also called Green Tag or Tradable Renewable Certificate, Renewable Energy Certificate (REC) is a market-based instrument that certifies the holder owns one megawatt-hour (MWh) of electricity generated from a renewable energy resource [1]. After an electricity generator feeds the electricity into the power grid, it is impossible to identify which type of resource the electricity was generated from. Therefore, REC is a way to label certain amount of electricity was produced using renewable energy resources, e.g., wind, solar, fuel cells, and other green energies. REC is used in accounting, tracking, and assigning ownership to renewable electricity generation and use [2]. REC is tradeable as it can be sold, for example, by a homeowner with rooftop solar panels, or used as a credit against their own power usage. In many The associate editor coordinating the review of this manuscript and approving it for publication was Giambattista Gruosso . countries, REC markets exist to facilitate REC issuance and trading.
There are in general two types of REC markets: compliance markets and volunteer markets. For the first ones, many states in US have a Renewable Portfolio Standard (RPS), which requires power services to create a certain amount of renewable power [1]. Since those requirements are mandatory, RPS directly drives the demands for RECs. Therefore, a utility company, for example, may need to purchase a certain number of RECs from an electricity generator just to meet the RPS requirements. On the other hand, the volunteer REC markets are optional -an organizations or individual chooses to buy renewable power out of a desire to use clean energy [3]. In either market, a REC can only be used once -once a buyer makes an environmental claim based on a REC, the REC is considered used and must be permanently ''retired.'' By its nature, a REC represents a claim to certain environmental attributes specified by the REC [4]. A REC may define such attributes as renewable fuel type, renewable facility location, certificate unique identification number, utility to which project is interconnected, eligibility for certification VOLUME 10, 2022 This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/ or renewable portfolio standard (RPS), etc. [2]. Since a REC represents the ownership of one megawatt-hour of renewable energy electricity and the ownership may change hand to hand, REC transactions must be tracked to avoid double spending. According to [5], a REC tracking system performs the following functions: a) verifying that a certain amount of renewable power has been generated; b) ensuring that the ownership is correctly assigned during transactions and there is no double counting; and c) tracking financial transactions to create a record of the volume and price of REC sales and purchases.
The current REC trading markets are largely centralized and fragmented with high transaction costs [6]. Under the current REC systems, the certification of renewable energy sources itself is complex and costly. REC trading in most part still relies on the intermediary service providers. Third party marketers, brokers, or asset managers are often involved in the marketplace. Those intermediaries usually charge a fee when reselling the purchased RECs, pushing the REC prices higher for the final buyers. Moreover, RECs have been considered highly regulated with little flexibility [7]. Double counting of RECs is possible under the current REC trading system [8] given the isolations of the REC issuance and monitoring authorities.
Blockchain has been increasingly used in various fields to decentralize information sharing and transactions among unknown entities. By its inherent characteristics, blockchain provides a transparent record of all the transactions and facilitates transaction traceability and verification. Since no intermediary is involved, the entities can directly transact, thus improving efficiency and saving a significant amount of transaction costs. Given the transparency and immutability features of a blockchain system, a reliable record of the generation and transaction can be constructed, leading to a trustworthy and attractive system [9]. In this regard, blockchain can be used as a decentralized platform for REC issuance and trading by allowing greater traceability and transparency in transactions and reducing the operational costs. A blockchain-based platform has the potential to standardize and streamline the processes through which RECs are issued, recorded, transferred, and retired with lower costs.
This research presents such a blockchain-based approach to tokenize RECs and provides a decentralized, trustworthy platform for REC issuance, transferring, verification, and retirement. Crypto assets are one of the earliest and most popular applications of blockchains. Representing RECs as blockchain tokens ensures that the trustworthy information is immutably recorded and available for all the stakeholders to track and verify, thereby improving the reliability and security of the current REC tracking and trading systems. The goal of our research is to provide a uniformed platform based on blockchain that allows the authorities to verify and issue REC and for the participants to trade their RECs in a decentralized fashion. The platform provides low costs, fraud-free, traceability, and easy to use.
The main contributions of the paper can be summarized as follows: • We identified the lifecycle of RECs including REC issuance, trading, verification, and retirement.
• We proposed and designed a blockchain-based platform for REC issuance and trading. We identified the components of the system and the operation flows of REC issuance and trading process.
• We proposed to tokenize RECs and use blockchain to trade RECs as cryptocurrencies without a trusted third party.
• We tested and validated the proposed platform through a set of simulations using Multichain, a Bitcoinlike private blockchain. Security measures such as multi-signature account and atomic transactions are used to improve the security and reliability of the platform.
The rest of the paper is organized as follows. Section II presents the blockchain basics and related work. In Section III, we discuss the proposed REC issuance and trading platform using blockchain. Section IV presents our simulations of the proposed platform using Multichain. We offer further discussions related to the proposed platform in Section V. Finally, Section VI concludes this paper.

II. BLOCKCHAIN BASICS AND RELATED WORK
In this section, we first briefly introduce the blockchain technology and then present the related work.

A. BLOCKCHAIN AND MULTICHAIN
Blockchain is a distributed digital ledger technology to record transactions and track assets for an application. An asset to be tracked can be tangible or intangible and can be traded on a blockchain network. Since a trust mechanism is built in, the risks of manipulation are reduced and the operational costs are minimized for all involved. A transaction is recorded once in a block. All the blocks are linked to a chain structure in a chronical order. After a transaction is added to the blockchain, its information can be accessible by all the participants. Since a chain structure is used and one block keeps information about the previous block, no data can be modified or tampered without a detection. These blocks record a line of the transactions as an asset moves from place to place or ownership changes from hand to hand [10]. Since the transactions are irreversible once on the chain, blockchain provides immediate, shared and transparent information stored on an immutable ledger. From application perspective, a blockchain network can track orders, shipments, payments, and many more. Since a single copy of the global data is maintained, the blockchain participants can be assured that a global view of the truth is shared.
Consensus protocols are used in a blockchain for the participants to agree on a single state of the blockchain transactions. No transaction can be added to a block without being validated and agreed upon by the participants through the consensus protocols. This is to ensure that the blockchain data is authentic and tamper free. The underlying blockchain infrastructure is a peer-to-peer network. Every participant must follow the transaction processing rules and the consensus protocols to record transactions. Several types of blockchains are available including public, private and consortium blockchains. Blockchain provides various benefits including system built-in trust, data transparency, and a high level of efficiency. Blockchains have been used in various fields including trading and tracking assets. As each asset transaction occurs, it is recorded as part of block data. All the transactions show the exchanges and the changes of ownerships of the asset among the involving participants. The blockchain data can record such essential transaction data as who conducted the transactions, what the transactions were about, when the transactions occurred, where the transactions occurred, and even under what conditions that the transactions occurred -such as making a payment upon receiving an ordered product.
As an open source software, Multichain 1 is a platform for blockchain based on Bitcoin created by Coin Sciences Ltd. It is a relatively lightweight private blockchain. Multichain provides a command-line interface and offers various functionalizes including permission management, asset tokenization, data stream, multi-signature transactions, atomic multi-asset payments, subscription to an asset to query transactions, and per chain configuration. A Multichain blockchain system can be used within the organizations or between the organizations [11]. It is easy to use and maintainthe participants can join the blockchain network and share the transactions. As a permissioned blockchain, Multichain can use simple consensus among the authorized participants instead of using the expensive Proof-of-Work consensus protocols. The transaction costs and block rewards are nearly zero [11], which makes the blockchain system more efficient. Multichain blockchain has been used by enterprises in various applications including financial transactions, full asset lifecycle (issuance, transfer, exchange, escrow, re-issuance, redemption, destruction), and general storage and search. Given its ability for full-range asset tracking, we propose to use Multichain as the underlying platform infrastructure to issue and trade RECs.

B. BLOCKCHAIN IN ENERGY TRADING AND REC MARKETS
Although blockchain has been applied to various fields including finance, healthcare, supply chain, IoT, manufacturing, agriculture and utility, studies on blockchain-based renewable energy certificates are still in an early stage ( [12], [13], [14]). Most of the work on blockchain-enabled REC tracking is on concepts and discussions. We present our proof-of-concept platform with detailed simulations on Multichain to demonstrate the feasibility of applying blockchain to REC issuance and trading. Next, we discuss some related 1 www.multichain.com work on blockchain-based REC trading and smart grid energy trading.
A framework was proposed in [7] for the State Public Utilities Commissions (PUC) to issue renewable energy credits (RECs) on Ethereum. When the renewable energy is fed into the power grid, the corresponding crypto-REC is generated and sent to a qualified renewable energy producer (QP). After receiving the REC, the QP can further sell it to a non-qualified renewable energy producer (NQ) or trade it in an electronic market. Any NQ that purchases the crypto-REC can send it back to the PUC as evidence of purchase. The authors in [15] proposed a blockchain and Internet of Things based system to monitor energy sources and track RECs on smart grids. Given the trustworthiness characteristic of a blockchain, the proposed system provides the visibility and transparency on smart grids to safeguard the RECs market. The authors conducted experiments to demonstrate the efficiency and scalability of the proposed system. The authors in [16] studied how different organizations propose their blockchain technological artifacts in the RECs market. The authors analyzed the problem space of two organizations that propose blockchain-based applications to produce and trade RECs.
The authors in [17] studied how the key technologies of blockchain can meet the power consumption demand of renewable energy. In their research, blockchain is used to design a renewable energy power consumption voucher management method. To solve the problems of inefficient REC issuance and inflexible pricing, the authors in [18] proposed a hybrid REC trading system using permissioned blockchain and continuous double auction mechanism. The authors revised the view change protocol in the Practical Byzantine Fault Tolerance algorithm to improve system stability. In another work [9], a blockchain-based individual green certificates system, called I-Green, is proposed to promote voluntary adoption of distributed renewable energy. Based on the blockchain technology and the theories of social norm and peer effects, the green ratio incentive scheme and the proof of generation consensus protocol are designed for the proposed system. The simulation results show that the system has a potential to facilitate a widespread adoption of distributed energy generation.
The authors in [19] proposed to use blockchain tokens as Guarantees of Origins (GoOs) to represent a unit of energy submitted to the market. Their research focuses on simulating a marketplace using Ethereum and smart contracts. In the proposal, the prosumers can sell tokenized GoOs directly to consumers without a third party. Their study identifies that the Ethereum Blockchain is robust enough to function as a platform for tokenized GoOs trading. Similarly, [20] introduced a Bitcoin-like digital currency, called NRGcoin when energy is generated. Prosumers in the smart grid can trade the locally produced renewable energy using NRGcoins. The authors in [21] analyzed two cases of applying blockchain technology to energy certificates markets. The authors identified some benefits of using blockchain in the energy sector including VOLUME 10, 2022 reduced transaction costs, increased reliability, transparency and improved security.
There are also several practical applications of blockchain technology in distributed renewable energy promotions. Smart Solar 2 provides a blockchain-connected solar panel to prove and track the generated energy. It can also create and transact RECs autonomously. EWorigin 3 is another blockchain-based application to record and track the ownership of renewable energy generation. Finally, SolarCoin 4 is a platform to reward solar energy producers with blockchain cryptocurrencies to encourage renewable energy generation.
In terms of smart grid and utility trading, there are some blockchain-based research works. A proof-of-concept system was proposed in [22] for decentralized energy trading using the blockchain technology, multi-signatures, and anonymous encrypted messaging streams. The proposed system facilitates secure energy transactions in a fully decentralized smart grid. The authors in [23] proposed a distributed demand management system for a community micro-grid. The smart home users attempt to optimize their daily energy consumption of various devices and in the meanwhile maintain their privacy of energy consumption. Blockchain provides a trusted platform for all the participants to communicate. A theoretical framework was developed in [24] for the electricity power transmission system operators to implement a blockchain energy system. The authors analyzed the implications of this application on PJM Environmental Information Services (PJM EIS), which is a regional transmission organization that coordinates controls and monitors an electric grid in the Northeastern United States. PJM EIS owns and operates a generation attribute tracking platform to buy and sell RECs.
The authors in [25] studied the challenges of demandresponse management in peer-to-peer (P2P) energy trading and correspondingly proposed a blockchain-based energy trading system for a community P2P market. A cluster network was used to prototype the proposed system. In the proposal, a coordinator runs as a smart contract in a Hyperledger blockchain. In another work [26], a blockchain-based dispatching approach was proposed for the distribution network in high renewable energy penetrated power systems. The authors developed a dispatching model, which takes into consideration the charging behaviors of each electronic vehicle (EV) and the prosumers' economic benefits.

III. THE REC ISSUANCE AND TRADING PLATFORM
In this section, we present our blockchain-centered REC issuance and trading platform. We first identify the requirements for an efficient and reliable platform to issue and trade RECs. Then, we present the high-level system architecture and discuss the operation flows of the REC issuance and trading process.

A. THE LIFE CYCLE OF REC AND THE REQUIREMENTS FOR THE REC ISSUANCE AND TRADING PLATFORM
The generic life cycle of a REC is shown in Figure 1. The process starts when the smart meter installed in an electricity generator site measures that one megawatt-hour of electricity is generated from a renewable energy source. While the energy is fed into the utility grid, the smart meter submits the evidential document to the REC Authority and the REC Registry. As a mechanism for separation of duties, the REC Authority and the REC Registry jointly verify the evidential document and, if verified, issue an REC to the electricity generator. In our proposal, an REC is tokenized and mint to the blockchain marketplace. As the owner of the REC token, the electricity generator can choose to sell the REC to other parties. The buyers can use the purchased REC for their own claim or resell the REC. Eventually, each REC is retired when its owner makes a claim on it regarding the consumption of one megawatt-hour of renewable energy.
Based on the life cycle of a REC, a blockchain-based platform should satisfy the following requirements to provide effective and efficient REC issuance and trading: REC data integrity: All the REC transaction data cannot be modified by any entity. Therefore, the transactions, logs and events should be time stamped and must be tamper-proof. By its design, blockchain guarantees that no data can be modified without detection. Data integrity is ensured by the underlying blockchain mechanisms such as the chronically hashed block headers, Merkle tree of transaction structure, and public/private key encryptions. REC transaction validity: REC issuance, transfer and retirement transactions must be validated by the platform participants to eliminate any illegal or invalid transactions. This is done through the blockchain consensus protocol. All the transactions must follow certain procedure and protocol. To improve the validity of the REC issuing process, multi-signature accounts are used in our proposal to enforce separation of duties in REC issuance. REC data traceability: One key benefit of the blockchain technology is the transparency of transactions and the ability to log all the transactions on a distributed ledger, which is available to all the participants. This helps to make sure that no double counting of any REC ever occurs. The characteristics of blockchain make all the REC transactions traceable back to their originators. Security: REC data must be secure. By its design, blockchain ensures security by cryptographic encryption/decryption. Furthermore, we use atomic transactions to enhance security at the application level of the REC trading. Low cost: The operational costs of REC issuance and trading must be minimal as compared with the high administration costs of the current centralized REC tracking systems. Through tokenization of REC assets and blockchain-based cryptocurrency trading, the proposed platform automates the tedious human tasks of REC management and reduces the costs in REC issuance and trading.

B. THE SYSTEM ARCHITECTURE
The core of the architecture is a blockchain network. Logically, there are three layers of the system: user layer, blockchain layer, and utility layer. All the participants of this platform are connected through the blockchain platform, collectively maintaining a transparent and immutable records of REC issuance, trading, and retirement. The high-level system architecture and the operation flows are shown in Figure 2.

1) USER LAYER
There are various participants of this platform including the REC Registry, REC Authority, electricity generators, utility companies, government agencies and consumers (REC buyers). Those participants have different roles as briefly described below.
• REC Authority: The REC Authority plays two roles. As a supervising entity, it establishes the blockchain system, enrolls the entities in the system, and monitors the system operations. As a functional actor, it manages REC issuance and retirement. More specifically, the REC Authority takes the electricity generation data, verifies the data, and co-authorize REC issuance (with the REC Registry). It may use multiple sources of data to verify that the reported electricity generation is accurate. It also accepts the RECs to be retired and records the information in a reliable database as a verification for the requester to report their renewable energy consumption. Even the REC Authority is the supervising entity of the blockchain system; once a REC is issued, it cannot modify the blockchain data or reverse transactions without the permissions from the majority of the nodes in the network.
• REC Registry: This is the entity that enforces the REC regulations and co-issues RECs to the electricity generators. The REC Registry refers to the renewable energy laws and regulations and makes sure that the evidential document submitted from an electricity generator truly complies with the rules before a REC can be issued. Issuing a REC means that a blockchain token is generated and mint to the blockchain network so that it is available for trade among the platform participants. Both the REC Authority and the REC Registry must co-sign the transaction before a REC token is sent to the electricity generator.
• Electricity generator: This is the entity, which produces electricity using renewable energy sources. While the electricity is fed into the electricity grid, the smart meter installed in the electricity generator site automatically reports to the REC Authority when one megawatt-hour of electricity is generated from the renewable energy resource. The evidential document is transferred to the REC Authority, which was further forwarded to the REC Registry for rule-compliance checking. To ensure that the electricity data is accurate from the beginning, the smart meter must be certified and tamper-free in its operations.
• Utility companies, government agencies and consumers: They are the entities representing REC buyers in a REC mandate market or a volunteer market. Each of those entities uses the blockchain cryptocurrencies to purchase RECs. They also retire RECs to report their claims for consuming renewable energy.

2) BLOCKCHAIN LAYER
For the purpose of operational efficiency and due to the sensitive nature of REC issuance and trading, we use a permissioned blockchain, which can track the participating entities and all the transactions. The blockchain is first created by the REC Authority. Each entity of the system is assigned a blockchain address and has a computing node connected to the blockchain network. To ensure privacy, each entity only uses its blockchain address for the REC transactions without revealing its real physical identity. The working principle of our proposed system is to tokenize RECs as crypto assets on the blockchain system. Trading RECs is represented by transferring the crypto tokens between the participants. Two categories of assets are tokenized: RECs and cash. Each asset category can be issued with a set of tokens. The REC asset is issued with nonfungible tokens, i.e., the tokens in the asset category are not exchangeable as each has some unique characteristics such as the REC series number and the types of renewable energy sources from which the electricity was generated. On the other hand, the cash asset is issued with fungible tokens, as all the payment cash coins can be exchangeable just like any fiat currency (e.g., US dollars, Euro dollars). To ensure the security and reliability of the token exchanges, atomic transactions are used for enhanced security and reliability. An atomic transaction is such a transaction where REC token transfer and cash payment occur as a whole. Any failure of one activity will instantly make another invalid. This is to avoid a situation where a REC token has been transferred to the buyer, but the buyer does not make a payment. By using atomic transaction, the customer confidence has been improved as any REC sale will guarantee a payment. Otherwise, the REC sale cannot be finalized. Finally, REC retirement is represented by burning an REC token, taking it out of the circulation. This essentially means that the token will never be reused.
The blockchain layer has data stream to store, query, and search data about REC information. A data stream is created by an entity with the corresponding permission. Since a blockchain token has a limited space to store the detailed information about a REC token, more detailed information about the REC can be published in the data stream. That information can be the certificate type of the REC, renewable fuel type, renewable facility location, certificate unique identification number, utility to which project is interconnected, eligibility for certification or renewable portfolio standard (RPS), omissions rate of the renewable resource, the owner of the REC, and the price of the REC. Any interested entities can subscribe to this stream and query/search the data from this stream about the REC. Once a REC is retired, its corresponding stream data is also deleted.

3) UTILITY LAYER
This layer includes the entities and devices, which handle electricity transmissions and renewable energy reporting. More specifically, it includes the power grid operators and the smart meters and IoT devices installed in each electricity generator site. While a power grid operator manages the electricity network and electricity distribution, a smart meter is responsible for reporting renewable energy for issuance of RECs. This layer also includes the electricity aggregators, which integrated multiple small-scale electricity generators (e.g., individual households with roof solar electricity generators).

C. THE SEQUENCE OF OPERATIONS
The proposed platform is captured as a series of functions and events in sequence of operations. In this section, we describe the operation flow of the platform in the following steps as shown in Figure 2: 1) When one megawatt-hour of electricity is generated from the renewable energy source, the smart meter in the electricity generator site sends a documentary message to the REC Authority with information about the electricity generator name, the renewable energy source type, the location of the generator, etc. This communication is initialized by the smart meter and conducted off the blockchain.
2) The REC Authority verifies the evidential document and cross-checks that one megawatt-hour of electricity is indeed generated from a renewable energy source.
3) The REC Authority forwards the evidential document to the REC Registry, which verifies the document against the REC issuing rules and regulations. 4) If verified, the REC Authority creates a shared, 2-2 multi-signature account with the REC Registry. Any newly issued REC must be sent from this account to the designated owner of the REC and must be co-signed by both the REC Authority and the REC Registry.
Requiring a multilanguage account and co-signing a transaction is to ensure the separation of duty of issuing a REC token. 5) The REC Authority issues a non-fungible token of the REC asset with a unique series number. Other information about the REC such as the generator name, the location of production, and the renewable energy type is published in the blockchain data stream. Other entities can check the detailed information about this REC and also know the quantity of the RECs currently on sale. Since the REC token is issued by the REC Authority, it is the current owner of this token.
To mint the token to the blockchain network for circulation, the REC Authority sends this REC token to the multi-signature account, which is shared with the REC Registry. 6) If the quantity and the sources of the electricity are verified and all the rules are followed, the REC Registry and the REC Authority co-sign the transaction to transfer the newly generated REC token to its ownerthe electricity generator. 7) If the electricity generator decides to retire the token, it only needs to send the REC token to the REC Registry and receive a confirmation that one megawatt-hour of electricity has been generated from the renewable sources. The confirmation message can be used for the electricity generator to make a claim with a regulatory body to satisfy its renewable energy source obligation. 8) If the electricity generator decides to sell the REC to a buyer, e.g., a utility company, a government agency, or a consumer, it conducts an atomic transaction with the buyer on the blockchain. No intermediatory such as a broker or sales agent is ever needed. The electricity generator simply sends the REC token to the buyer and at the same time, the buyer sends the payment cryptocurrency cash coins to the electricity generator.
The cash coins can be redeemed for fiat currency and vice versa. 9) Similarly, the buyer can resell the REC token to another entity following the same procedure in step 8). 10) A utility company, a government agency or a consumer may retire a REC by sending the REC token to the REC Registry and at the same time receives a confirmation message. The confirmation can be used as an evidence to report its renewable energy consumption or for the volunteers to accomplish its voluntary energy saving goals. 11) All entities can publish, retrieve REC data, and search data on the blockchain data streams.

IV. SIMULATIONS
We used Multichain to simulate the proposed REC issuance and trading platform. Multichain has its native assets and can easily create new assets to tokenize the physical items, tangible or intangible. As a permissioned blockchain, Multichain allows the administrator to control who can mine blocks, which permissions each participant can receive, and which entity can issue tokens for different types of assets. Multichain also provides mechanisms for atomic transactions, multi-signature accounts, and data streaming for on-chain data storage, query and retrieval. It also provides an easyto-use interface to create a blockchain and interact with the blockchain from different nodes. The simulation was conducted on a computer with 64-bit Windows 10, 16 GB RAM, Intel Core (TM) i7-8706G CPU@ 3.10GHz. For the sake of simplicity, we simulated an environment with a small number of entities: a REC Registry, a REC Authority, an Electricity Generator, a Utility Company, and an Electricity Consumer. Different data folders were created on the computer for each entity so that those participants can join the blockchain network just like independent nodes. As each data folder path is irrelevant to the simulation results, we did not show the complete folder paths in the following figures. Rather, we used the ''. . . '' notation to represent the part of the path to the data folder.
The simulation is composed of the following steps: • System setup -Multichain blockchain creation and entity connections • REC assets generation (REC assets and cash assets) • Blockchain stream creation for data storage, query, and retrieval • REC token sent to the electricity generator through mutlisignature account • REC token trading between the Electricity Generator and the Utility Company through an atomic transaction.

A. SYSTEM SETUP
The proposed platform can be used by the stakeholders to issue, sell and purchase RECs. The system setup includes the following steps: (1) the REC_Authority creates VOLUME 10, 2022 a Multichain blockchain, called REC_Chain; (2) any interested entities send requests to join this blockchain; (3) The REC_Authority grants the connection permissions to those nodes; and (4) other nodes connect and join the blockchain network. After those steps, the entities form the private Multichain blockchain network for REC issuance and trading. Figure 3 shows the system setup. As the first step, the REC_Authority initializes and creates a Multichain blockchain, called REC_Chain using the command ''multichain-util.exe create REC_Chain.'' By default, REC_Authority has the administrative authority of this blockchain with all the permissions on the blockchain including mine, send, and receive. Since REC_Authority starts the blockchain, it is also called the seed node. Figure 3-(a) shows that the Genesis block of the blockchain has been created, and other nodes can connect to the seed node using the IP address and the port number (177.26.178:4281).
Next, we created three nodes to connect to this blockchain. Those nodes represent the Rec_Registry, UtilityCompany and ElectricityGenerator, respectively. Each node has a dedicated blockchain address and an IP address/port number for connection. Those nodes must first be granted ''connect'' permission by the REC_Authority. They consequently have connected to the REC_Chain to form a four-node blockchain. The addresses of the nodes in this blockchain are shown in Figure 3-(b).

B. CRYPTO ASSET GENERATON AND TOKENIZATION
There are two categories of crypto assets in the system: RecAsset representing the RECs and CashCoin representing the cryptocurrency for REC purchasing payments. We first show how the REC_Authority creates the CashCoin asset with 1000 units of tokens, each of which can be subdivided into 100 parts. CashCoin tokens are issued as fungible tokens as they represent the currencies in the blockchain system to conduct business transactions such as purchasing RECs. Then, we show how the REC_Authority generates the non-fungible tokens to represent RECs. The crypto assets generation, tokenization and token transfer are shown in Figure 4.
First, the crypto asset named CashCoin is created in REC_Authroity's wallet with 1,000 units as shown in Figure 4-(a). The REC_Authority acts like a central bankcreating currencies in an economy. Those currencies then circulate for various business activities. To use CashCoin, each entity must purchase using fiat currency, such as US dollars. Let's assume that the UtilityCompany has purchased 15 Cash-Coins and made the payments through an offchain channel. Now, the REC_Authroity needs to send 15 CashCoins to the UtilityCompany. As we will see next, the UtilityCompany will need those CashCoins to purchase RECs. Figure 4-(b) shows the confirmation of this purchase transaction as evidenced by the hash value of the transaction, i.e., badb5f3ff4bacfc0c03ecd9ab8d84ce14fdc3037db61490756 da89a68681b0f3. Next, we show the REC_Authority generates the RecAsset asset (non-fungible), which represents the class of RECs. For a non-fungible asset, the asset must be first created before any tokens of this asset class can be issued. After the RecAsset is created, the REC_Authority can issue some tokens for this asset when a certain amount of electricity is generated from a renewable energy source. Each token is issued when the smart meter from an electricity generator sends an evidential file indicating that one megawatt-hour electricity has been generated from a renewable energy source. Here, we simulate that three unique tokens were issued according to 3 megawatthour of energy, naming them recToken1, recToken2, and recToken3 respectively. Each token is associated with some JSON metadata providing a REC series number and a content hash. The RecAsset token itself only contains the unique series number to identify itself. The detail about the REC will be published in a data stream as shown in next section. Figure 4-(c) shows the recToken1 token issuance.

C. DATA STREAM FOR REC INFORMATION STORAGE AND QUERY
In this section, we show how the REC_Authority creates a data stream to store the REC information and how the interested entities retrieve and query the REC data from this stream. Those activities are shown in Figure 5. It is noted that any entity with the appropriate permission can create a data stream. Other entities may subscribe to this stream and retrieve the information of interest.
A data stream called recStream is create by the REC_Authority as shown in Figure 5-(a). As we discussed above, each crypto token can only contain limited metadata. So, the data stream is used for the detailed information about the REC. Since 3 RecAsset tokens have been created to present the RECs, their information is published in the stream. Let us publish some JSON to the stream, with Rec_Series_Num (each REC has a unique series number, e.g., 100001, 100002, 100003) as the key. Figure 5-(b) shows the publication of REC with key 100002. As we can, the detailed information about the three RECs have been saved in the stream such as renewable fuel type, renewable facility location, certificate type, tracking system ID, and eligibility for RPS. Other entities may be interested in seeing the data in the stream. To do so, they must first subscribe to the stream. Then, they can search and query the data in the stream. For example, UtilityCompany can query the stream for the REC with a series number 100002 for detailed information about recToken2 using the command ''multichain-cli REC_Chain liststreamkeyitems recStream 100002''.

D. MULTI-SIGNATURE TRANSACTION TO SEND RecAsset TOKEN TO ELECTRICITYGENERATOR
In this section, we simulate how the REC_Authority and the REC_Registry co-sign a transaction to transfer a RecAsset token to the ElectricityGenerator, which generated one megawatt-hour of electricity from a renewable energy source. Although 3 RecAsset tokens have been issued as shown in Section V-B, they have not been sent to their corresponding electricity generators. Therefore, the RecAsset tokens have not entered the blockchain-based market for trading. This section simulates how the REC_Authority and the REC_Registry co-exercise their authorities to deliver the tokens to the ElectricityGenerators and make the tokens available in the market for circulation. Requiring two entities to deliver the tokens using a multi-signature account is for separation of duty. The initial acceptance of a RecAsset token in the blockchain network is critical to ensure the accuracy of the blockchain data. This is essentially to minimize the ''garbage in and garbage out'' problem as any data in the blockchain cannot be altered even if it is wrong. If faked assets or wrong tokens enter the blockchain, the data cannot be changed. Furthermore, using a multi-signature account is also for security and escrow of token assets.
A 2-of-2 multi-signature account is first created on the REC_Chain between the REC_Authority and the REC_Registry. Without showing the detail, the multisignature address is 4EX2B4p8p98BBPtf8eSXwwCmvTGhA SYVYL48sj. To send any token from this account, the REC_Authority and the REC_Registry must both sign the transaction. Next, we show how the two authorities co-sign the transaction to send a RecAsset token to the Electricity-Generator as shown in Figure 6.
Since the RecAsset tokens were first issued by the REC_Authority, they stay in the REC_Authority's blockchain wallet. The REC_Authority first transfers three RecAsset tokens to the multi-signature address. Since this address represents a 2-2 multi-signature account, the REC_Authority and the REC_Registry must co-sign a transaction to send any RecAsset token from this account. The co-signing requires a sequence of actions between the REC_Authority and the REC_Registry. The REC_Authority first signs the transaction as shown in Figure 6-(a). This transaction generates a set of hexadecimal text, which we represent as ht1 (for a demonstration purpose, the content of ht1 is not shown here due to its size). Technically, ht1 represents the raw transaction, which has been partially signed by one party. However, it cannot be sent out without the consent of the co-signer. Now, the REC_Registry signs the raw transaction represented by ht1 as shown in Figure 6-(b). The response contains a complete field with value true, along with another set of hexadecimal text, represented as ht2. Finally, the REC_Registry finishes the co-signing of the transaction with ht2 as an input. This generates a response transaction ID as shown in Figure 6-(c). The response also contains the 64-character hexadecimal txid of the sent transaction: 0afe19f7432bca0c9b945b5200297946a37d0b2653ebb5e05 fc4d4932ccf7c7d, indicating this transaction has been submitted to the blockchain network with a destination to Elec-tricityGenerator.
Similarly, the other two RecAsset tokens can be transferred from the multi-signature account to the Electricity Generator, which is the owner of the RECs represented by those tokens.

E. REC TOKEN TRADING BETWEEN ElectricityGenerator AND UtilityCompany THROUGH ATOMIC TRANSACTION
This section simulates how to purchase a RecAsset token using CashCoins via an atomic transaction. Atomic transaction means that the cryptocurrency payment is delivered simultaneously with the delivery of the asset tokens. Essentially, the two transfers occur in one indivisible transaction. A failure of one delivery will automatically invalid the other delivery and revert the entire transaction. Using atomic transaction for REC purchasing is to ensure a secure and fair business transaction. Figure 7 shows the execution of this atomic transaction.
As we have followed through the transactions in the previous sections, we know that the UtilityCompany has 15 Cashcoins, which were purchased from the REC_Authority. Now, the UtilityCompany wants to purchase 1 RecAsset token from the ElectricityGenerator. The price is 10 CashCoins. We assume this selling price is available in the blockchain data stream. The parties have already agreed up the exchange price. Next, we show a sequence of actions for the Util-ityCompany and the ElectricityGenerator to complete this atomic transaction to finish this REC purchase deal. This atomic transaction is shown in Figure 7.
The atomic transaction starts on the ElectricityGenerator and then completes on the UtilityCompany. The Electricity-Generator first creates a locked transaction output containing 1 RecAsset, i.e., recToken1, as shown in Figure 7-(a). The response of this action includes a ''txid'' value, and a ''vout'' value of 0. Next, the ElectricityGenerator creates an exchange by executing a command containing the Utility-Company's blockchain address, using the ''txid'' from the previous step as shown in Figure 7-(b). As we can see, this produces the third set of hexadecimal text (ht3) that contains the raw transaction data representing the offer of exchange. On the other side, the UtilityCompany decodes the exchange offer. With this information, the UtilityCompany creates a locked transaction output containing 10 CashCoins, which will be used to pay for 1 RecAsset as shown in Figure 7-(c). Now the two parties can prepare the exchange transaction simultaneously. The UtilityCompany appends the raw exchange transaction, using the set of hexadecimal text ht3, and the ''txid'' and ''vout'' values from the previous step. The output contains the fourth set of hexadecimal text (ht4), as shown in Figure 7-(d). ht4 is the raw transaction representing the completed exchange. We can see that the field complete has a value true, indicating the transaction is ready to send to the other party, the ElectricityGenerator. Finally, the UtilityCompany sends the transaction to the network. The atomic transaction between the Electric-ityGenerator and the UtilityCompany is now completed. As we can see, the response contains a transaction ID: 6955338e4cecdf965a48b0de771961b158996c033e39e7364 2fdc0bc97c1c4de, which confirms that the atomic transaction has completed. This transaction ID can then be used to track this transaction in the blockchain ledger.
We can verify that the exchange was successful by checking the exchanged CashCoins and RecAsset on Electricity-Generator. The ElectricityGenerator did trade 1 RecAsset token for 10 Cashcoins with the UtilityCompany. After this transaction, the ElectricityGenerator has 2 RecAsset tokens left and the UtilityCompany has 5 CashCoins left. A successful atomic transaction has taken placed between two parties and the transaction is secure and reliable.

F. RETIRING REC
Retiring a REC means that the owner of the RecAsset token sends the token to the REC_Registry to burn it. In this way, the REC_Registry registers the retiring token and mark it as retired. Effectively, the token will be out of circulation. From the REC management perspective, the owner of the RecAsset token can use the retirement evidence to report its use of electricity from a renewable energy source and thus satisfy its obligation to REC regulations. Figure 8 shows the process to retire one RecAsset token by the UtilityCompany. We show that the UtilityCompany retires the recToken1 as it received by trading with the ElectricityGenerator. The Util-ityCompany has 1 RecAsset token. Now, the UtilityCompany decides to retire this token through the REC_Registry by sending it to the REC_Registry to record and burn. As we can see in Figure 8-(a), a transaction hash is generated confirming the transfer of this token to REC_Registry. After this transaction, let us check the UtilityCompany's account balance. It should have no RecAsset token as shown in Figure 8-(b). On the other hand, the REC_Registry should have already received the recToken1. After recording this information, the REC_Registry can burn the token by sending it to a special account, which permanently locks up the token. In this way, recToken1 will be completely out of circulation on the blockchain. This completes the lifecycle of a RecAsset token, which represents one REC in the market.

V. DISCUSSIONS
blockchain, the security and privacy issues of the blockchain system as well as other related issues to our research.

A. COSTS AND PERFORMANCE OF BLOCKCHAIN
Blockchain costs and performance are important to any blockchain-based applications that require real-time responses and efficient communications. Today's public blockchains usually have a low system throughput and require a higher operational cost. For example, the Bitcoin blockchain takes 10 minutes or longer to confirm a block, which leads to a throughput of about seven transactions/second [27]. For an Ethereum blockchain, extensive gas fees may be required to execute a transaction or to call a smart contract function. Those fees could easily drive the blockchain-based applications quite expensive to operate. A private blockchain like Multichain provides a faster transaction speed, thus improving the efficiency and throughput. No fee is required on Multichain to execute a transaction. Those will help low the costs of the blockchain operations and improve the application efficiency. However, a blockchain performance is negatively related to the number of participants in the system. When more users join the blockchain system, its performance usually decreases. While a public blockchain has no ability to limit the number of participants and it can grow globally with millions and billions of users, a private blockchain may need to restrict its user participation or divide the blockchain network into several smaller systems to maintain a reasonable number of participants in order to maintain an acceptable level of performance.
A private blockchain requires a group of dedicated miners. In the case of Multchain, mining is performed on a round robin fashion among a set of authorized nodes, which are granted the mining permissions. In general, such a consensus process is very efficient. There is no cost-and time-intensive consensus protocols such as Proof of Work. This certainly improves the entire REC system performance. Although a private blockchain usually offers a higher level of operational efficiency, it may sacrifice the decentralization nature of what a blockchain is designed for. Basically, a private blockchain is not open and it is permissioned. This implies a certain degree of centralization and a single authority. So, a tradeoff between the efficiency and control vs decentralization is needed. In our application, we believe it is appropriate to use a private blockchain. Even some REC authorities exist, but their abilities to compromise the trustworthiness of the blockchain are rather limited. All the REC issuance and trading records are available on the blockchain, which are accessible to all the participants. Given the inherent blockchain data structure and the consensus protocol, even an ''authorized'' user cannot change any of the transaction records as every participant has a copy of the digital ledger.

B. SECURITY AND PRIVACY
As a permissioned, private blockchain, Multichain creators have an exclusive authority to determine who would be the miners and who can join the blockchain network. This improves the security and privacy of the entire system as any unauthorized entities may not be able to join the system from the beginning. In addition to the built-in security and privacy features of a blockchain, such as transparency, data integrity, traceability and entity anonymity, our proposal uses multi-signature and atomic transactions to further improve the security and safety of the REC issuance and trading process. Both of those mechanisms serve as an additional layer of security to enhance the trustworthiness of the REC trading and management platform.
To protect entity privacy, a participant is identified by a blockchain address, which is linked to the entity's public key. The real physical identify of the participant is protected and probably only known to the REC_Authority or the REC_Registry. This kind of privacy protection is important in the cases when an ElectricityGenerator does not want others such as its competitors to know how much electricity it has generated and from which sources, or when an individual household with a roof solar electricity generator panel does not want others to know how much electricity it has generated and how much it has consumed. The privacy may also be relevant when individuals or organizations do not wish to release how many RECs they have purchased or retired as this may be related to their accounting and cost management. Therefore, in our proposal, each entity is only represented by an unidentifiable blockchain address, which is not linkable to the real identity of the entity.

C. REGISTRATION ON PARTICIPATING ENTITIES AND INTEGRATION TO THE ORGANIZATION'S EXISTING SYSTEMS
An entity participating the REC issuance and trading platform must be a Multichain user and must know how to perform the functions on Multichain. At present, Multichain only provides a command line user interface to issue commands. While it is very handy and easy to use the blockchain from a command-line environment, a full-pledged REC application may be needed to build a more intuitive and user-friendly interface. Furthermore, the core of Multichain provides powerful functions to tokenize crypto assets and manage the tokens on the blockchain network. Just like any applications running on other types of blockchain systems, the participants in our proposal platform need to purchase CashCoins as a payment vehicle to trade for RECs. On the other way, any entity, which has sold RECs, may need to redeem CashCoins for fiat money. A user-friendly module to allow such convenient crypto currency and fiat currency exchanges would improve the platform's usability.
Integrating the proposed system to the organizations' existing system and components, such as smart meter devices, IoT devices, electricity generation reporting system, gridmonitoring system, accounting system for REC reporting is a non-trivial issue. This may require remodeling or reconfiguring the existing systems in a revolutionary way. As the blockchain technology changes the current centralized system architecture to a decentralized system, the current hierarchy of the information management and command and control systems that exist in many organizations would become flat. This further results in a series of updates and changes of the current business processes. It is also interesting to see how the proposed platform is linked to the current REC databases to monitor and regulate REC issuance and management.
Although blockchain can ensure data integrity after the data is on the blockchain, it cannot guarantee the accuracy of the data when the data is fed into the blockchain network at the first point. In our proposal, the REC Authority and the REC Registry rely on the evidence data submitted by the smart meters about the amount of electricity generated from the renewable energy sources. Therefore, the integrity and authenticity of the smart meters are critical to ensure the accuracy of the data used to issue the correct RECs. This requires the certification of smart meter software to make sure it is authentic and tamper-free. There are several ways to do so including verifying the hash value of the firmware installed on each smart meter and periodically checking its validity. The hash of the firmware can be stored in the blockcahin as well. Any modification of the firmware will result in the smart device software not validated.

D. LACK OF REGULATION AND STANDARD
Although blockchain can ensure data integrity after the data is on the blockchain, it cannot guarantee the accuracy of the data when the data is fed into the blockchain network at the first point. In our proposal, the REC Authority and the REC Registry rely on the evidence data submitted by the smart meters about the amount of electricity generated from the renewable energy sources. Therefore, the integrity and authenticity of the smart meters are critical to ensure the accuracy of the data used to issue the correct RECs. This requires the certification of smart meter software to make sure it is authentic and tamper-free. There are several ways to do so including verifying the hash value of the firmware installed on each smart meter and periodically checking its validity. The hash of the firmware can be stored in the blockcahin as well. Any modification of the firmware will result in the smart device software not validated.

VI. CONCLUSION AND FUTURE WORK
A renewable energy certificate (REC) is a market-based instrument that represents the non-power attributes of renewable electricity generation. The current REC management and trading systems are centralized with a high operational cost. In this paper, we present a proof-of-concept platform to decentralize REC issuance and trading with a goal to improve the market efficiency for REC circulations. We propose to tokenize REC assets and use blockchain technology to facilitate token exchanges and transfer. This helps decrease the operational costs of REC issuance and trading and increase the transparency, traceability, and trustworthiness of REC management. We use the Multichain blockchain to simulate the proposed REC platform with such technologies as fungible and non-fungible token issuance, multi-signature account transactions, and atomic transactions.
In our future work, we plan to develop detailed modules for the REC Authority and the REC Registry to automatically process the evidence data submitted by the smart meters and automatically issue REC tokens to mint to the blockchain system. Quantitative analysis of the performance as compared with other blockchain-based systems would be conducted to further justify the validity and practicability of the proposed platform.