Greetings Ethereum geniuses,
I was hoping to get some feedback into how a marriage between SolarCoin and Ethereum would work in theory and in practice. I'm not an official representative for SolarCoin but I am a volunteer and avid supporter of the concept because something needs to be done to put the brakes on CO2 going into the atmosphere ASAP or we're all screwed. It may be the case that the SolarCoin dev team has already been in touch. If so, I would still like to have a discussion on how using Ethereum on our pre-mined "proof of generation" coins would work. It seems to me that it would work incredibly well...
First, a brief background on SolarCoin for those who may not be aware of the Foundation and the goals set forth.
The idea is to incentivize solar power generation over the next 40 years by granting coins to solar producers based on the following fixed relationship:
1 SolarCoin = 1 MegaWatt hour of verifiable solar generation (or 1 SLR = 1 MWh)
A target stable value of $20 per SLR within four years is the expectation.
There will be a total of 98 billion coins based on the IEA’s prediction that there will be 98 billion megawatt-hours of electricity generated from solar over the next 40 years. 99.4% of these coins were pre-mined and are held in the SolarCoin Foundation non-circulating generator pool account. The verification mechanisms for distribution of these coins is being established right now and the granting has begun. See the map here:
http://solarcoin.org/generators/The rules of the contracts vary for each country and even differ within countries. The ideal method for verification is through the use of smart meters, but those are not in place across the globe just yet, so there will be a variety of "rules" governing the granting of coins depending on location and type of system. Also, the verification mechanism right now is manual and the goal is to have it automated and decentralized.
This is where I think Ethereum can be used to help us achieve our goals. It's my understanding that once the rules of the contract are identified, those rules can be coded and the granting of coins from the Generator pool can be housed on an Ethereum blockchain. The transactions using SLR after they've been granted can still be done on the SLR Blockchain. In short, the "granting" of the coins is done on a secure, decentralized Ethereum blockchain and the "use" of the coins is done on the SLR (bitcoin protocol) blockchain with Ethereum coding being used to bridge the two. That way, people claiming their coins can feel safe providing personal information for entering the contract to get their coins and they can feel secure that the use of those coins is not connected with their identity.
If I'm thinking through this correctly, there could even be code put in place that could replace lost or stolen coins. For example, the ethereum blockchain would know how many coins were granted and to what address they were sent on the SLR blockchain. If the person who originally claimed the coins had their computer fry up and lost their private SLR keys, a request could be made to get the coins back. This may require a small percentage of the generator pool coins be held specifically for such insurance, but it's certainly not out of the question. I'm likely getting ahead of myself here though...
There are many questions I have but I'll try to keep it simple:
1. Is my understanding of this flawed somehow? If so, how?
2. How does Ether fit in?
3. Can the SolarCoin Foundation itself become a DAO once all of the coding and rules are defined and put in place? (I assume yes)
4. Would there need to be a relationship between the Foundation and Ethereum to get this up and running? Or does the Foundation need to get volunteers familiar with ethereum coding so that we can do it ourselves? Or both?
Thank you all for your time, I appreciate any feedback you may have and I will share this on our own forums as the implementation ideas begin to flow. I have an Engineering and Finance background but I am by no means a programmer or computer scientist, so forgive my ignorance if I make assumptions that don't hold up in terms of coding. I'm here to learn.
For more information on SolarCoin, you can jump down the rabbit hole here:
http://solarcoin.org/faq-frequently-asked-questions/For more information on the underlying economic model that drove the idea, I strongly recommend reading this paper by two of the founders:
http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1802166
Comments
I mean you might aswel have a contract with a magic wallet. So for if we can do it? Well essentially you need judges in the real world to check that the power is being generated, and that they're not double-claiming. (forget about the magic wallet, especially for this..)
Checking 'x power is generated' is the same as checking 'x is the correct parameter', so i think this is a general judge problem. You could send in someone to check that fact, but he might lie. So inherently you need to send another guy, or yourself. (any checkers taking pictures makes checking of yet more people cheaper, but those secondary checks have a lower chance of showing things)
That brings up the issue; you need to figure out a way to ensure that the different people you try to check are infact different, and not in a scam together. Perhaps networks like TrustDavis(.pdf) paper can cover for it, very different edges could attempted.
Even if those devices could prove measurements where such an such to the blockchain, people would be able to fake condition.
By fake condition do you mean falsly power the meter with another source other then solar?
What I mean is you saying it can be hacked. True when this device is made it very well could be hackable but it could also be so hard to hack it's not worth the time. I mean If the words "it could be hacked" was enough to stop things from being developed, used and trusted... For starters ATM's would never have been created along with a long list of other things... I'm not looking to have a hackable not hackable convo about hardware and software not in existence yet.
However I feel your point about hooking meters in series is plenty easy enough for anyone to do. So just a quick potential solution (sure there is a better one) is a 3 part verification system on the power lines themselves. Use a FM signal on the electrical wire that carries the electric power from the solar panel to the breakers in the circuit box. Upon setting up the solar panel, the meter and the circuit box. Have a synchronize button on all 3 of them, do the whole push and hold wait for the light to flash thing. What this does is synchronize a simple rolling sequence algorithm. After synchronized, the circuit box and solar panel both transmit the same rolling 10 digit code to the meter every 15 minutes. This will stop someone from putting another meter in the middle of the line. Because the solar panel and circuit box both only transmit and the meter only receives. Putting a meter between the first meter and solar panel will brake the communication link. Like I said just a quick thought more on this is needed.
That said, if judges are possible, and we can figure it out, we can have people chase leads, and or check the machines. Instead of using the law, the contracts simply have some kind of stake that can be taken away as fines.
Hardware measures could still be made to try make meddling difficult or more detectable. That said, i am not very happy with the idea of not being in control of my own hardware. This is essentially similar to DRM what we're trying to do here? We have the dreaded 'analog' hole, where 'intellectual property advocates' want to intrude your home to check your analog holes.
Assuming there is some sort of digital signature with anti-replay attack nonce, I think your approach might mean people may just sell their solar panel, and attach some other power source there. If you dont have control over the supply source of your solar cells, the same solar cells may then be sold again with the box attached. Think trying to communicate with a circuit box (in principle)that is intended to be outside the control of the user anyway might be a good idea.
To that end, I have decided to learn the code in my spare time. I used to be a programmer YEARS ago but I hated it. However, this is important enough for SolarCoin that I've decided to dive in and see if I can figure it out myself.
Can anyone point me to a good resource on ethereum coding for beginners?