The system on the blockchain platform IOTA, which allows to issue digital green certificates per unit of green energy produced.
In the future, certificates can be purchased and burned by a company interested in maintaining an ecological form of energy.
Blockchain guarantees transparency and reliability of all operations, and IOTA allows you to collect and send large amounts of information from the counters in a reliable and cheap way.
Video demonstration
Let's see our system in action here.
ProblemWe focused on the following issues:
Pollution due to power generation.
Green electricity costs more, therefore it is usually not economically viable.
People are ready to support the production of green electricity and take care of the environment, but there is no opportunity to do so and transparency in the electricity market.
SolutionWe offer a solution in the form of creating green certificates for every 1 mW of electricity produced during its production.
Further circulation of these certificates is possible on the open market, which will allow you to receive remuneration for the production of green electricity.
Each certificate will be individual and have information about the time, place, conditions of production.
Thus, the market will be stimulated to create green electricity generators.
Technical Implementation1) Record on counters about the produced electricity.
2) Transfer of "green" electrical network
3) Sending information over the Internet to the IOTA system. IOTA is the fastest and cheapest blockchain.
4) Accrual of certificates and record of history. 1 GC = 1 mW
5) Transfer certificates.
6) Redemption certificates.
7) Audit the entire history of each green certificate.
IoT devices
To demonstrate feasibility of our solution we decided to implement the following mock-up (see in the picture below):
The mock-up consists of six main components:
1. Raspberry Pi 3 B+;
2. STM32F0-Discovery development board;
3. Ammeter and Voltmeter for energy metering;
4. Input/Output terminals;
5. Artificial load;
6. Solar panel.
Let's break down the purpose of each part. To make demo work and measure actual energy consumption we have decided to implement simple voltmeter and ammeter. The voltmeter is based on straightforward voltage divider, which circuit is depicted below:
The output signal is then connected to analog input of stm32f0 microcontroller. The ammeter is bit more complicated but is implemented with the use of widely known operational amplifier LM358:
Basically to measure the current we need to drop somewhere the voltage. The most common used approach is to use so-called shunt resistor with low impedance (<0.1 Ohm). Using the shunt resistor the voltage drop is created and then measured. The voltage drop will increase proportionally to current value. Output of this device is connected to the second analog input of MCU.
The next part of the device is stm32f0 module. The stm32f0 module constantly measures output values from ammeter/voltmeter and accumulates these data. Once enough data are stored it averages data streams and issues a package over USART interface to Raspberry Pi 3 module. The program is written purely in C with low layer library provided by STMicroelectronics.
Raspberry Pi 3 module is responsible for receiving data from stm32f0 module and process it further on. After additional processing it publishes current state in IOTA network.
The separation of both measuring and processing modules is necessary as modules should be electrically isolated: the former part operates directly with high voltages, the latter part is a gate to network.
It is worth mentioning that to test this mock-up we use 12V 15 Wh solar panel CHN15-36M:
Finally, to imitate a real load (overhead power lines) we decided to use ceramic resistor with 10 Wh of power dissipation. In such setup we managed to load the solar panel to the beams, which meant full energy emission to the grid.
The implemented mock-up is very informative is sense of usability of solution we propose. At the same time it is very cheap and does not require buying very expensive measuring device. In case of need to implement this solution in industry, it can be easily up-scaled without loss of functionality.
IOTA (Blockchain)
There are three types of participants in the network:
1. central party
2. electricity meters (owners of meters)
3. consumers
1) In scheme on the picture above there is a central party which sells electricity meters and controls off-chain payment system. This party is a single point of failure. Further we explain how this party could stay trustworthy using IOTA ledger.
Central party is a http server, it stores local ERC20-like table of green certificates and can handle three types of queries: create, burn and request.
- Create query ( POST /erc20/transfer ) - can be sent only by electricity meter. Such request allocates one green certificate for each unit of generated energy on the account of meter owner.
- Request query ( POST /erc20/transferFrom ) - can be sent by consumers. First param of such request - address of certificates owner, second - address of consumer.
- Burn query ( POST /erc20/transferFrom ) - can be sent by consumers. If user has some certificates, he can proof that he consume "green" energy by burning his certificates.
Each query to central party changes state of ERC20-like table which is controlled only by this party. Party should proof its credibility by publishing Merkel root of ERC20 table snapshot (hash of entry in the table - leaf of Merkel tree). But it's not enough, central party still can ignore some queries from participants. To avoid such behaviour each consumer sends transaction to IOTA network with appropriate meta-information and attaches transaction hash to http requests. If central party wants to stay trustworthy it shouldn't ignore such request. Http server publishes root of Merkel tree and all transactions hashes included in current snapshot to IOTA ledger. Such type of anchoring make system verifiable by any user.
Merkel root is published by sending transaction to yourself with root as message.
2) Electricity meter is a device described in section IoT devices. It counts energy produced by any "green" source. Meter publish his current state in their own MAM channels, when one unit of energy generated meter sends transaction (not MAM) (stage 1 on scheme) to central party, first root of channel attached to this transaction as message. For the next unit meter creates new channel. And as a final step meter sends request to http-server to update balance. Since root is attached to transaction - credibility of meters can be easily checked by any third-party, just by calculating generated energy by issued states in the MAM channel.
3) Consumers can buy, send and burn certificates. For such purposes we developed web-site. As was mentioned earlier, consumer's query consists of two parts: transaction to IOTA and request to central party.
Note 1: each activity (buy, burn and etc) on web-site demands 1 IOTA token. It was done with the goal to avoid deletion of zero-value transaction during snapshoting.
Note 2: for prototype IOTA dev-net was used
Note 3: payment system is controlled by central authority, users should pay for certificates off-chain (visa, master card or other payment providers), in this prototype it's not implemented
Web-interface (Software)
For consumers we provide web-site, where they can buy and burn certificates.
On the main screen You can see current state of ERC20 table. Before start You should click on Sign Up and enter your IOTA seed.
As was said before, each action like burning and purchasing requires 1 IOTA, so if you want to manage you certificates, you should have IOTAs on your wallet.
After completed actions consumer will get notification with hash of first bundle in transaction.
_________________________________________________
Our web-site You can find here. (https://desolate-shelf-45369.herokuapp.com/index.html)
User StoryAs the first step, Alice installs a solar panel for energy generation. Exposed to the sun the solar panel starts to produce power. After being measured the energy is delivered to the power grid. For each kilowatt of energy generated Alice receives a green certificate.
Then one creates an account on our website. After the registration process, one should see the main webpage. On the web page, the user can buy some certificates for future reference.
Suppose a user has no certificates associated with his account. If this is the case, the consumer can visit the stock exchange and buy certificates issued by Alice. For example, we bought 50 certificates. Then we can see a hash of transaction, which can be traced on website devnet.thetangle.org.
We can burn some of the certificates in order to publicize the use of green energy or the transfer of it to another user. Find the ‘Burn’ button. Enter 50 certificates, press the button to proceed. We can observe the process of certificates transmission and their further burning. Therefore, blockchain stores the information that one consumed energy at the cost of 50 green certificates.
Our prototypeWe are a StartBlock team from Russia. We develop and implement the best blockchain solutions in the real world.
Let's see our other projects on the web-site: STARTBLOCK
Comments