Provenance of Environmental Claims
ETHCC 6 · July 2023 · 26:57
Alan Ransil presents Filecoin Green work on tracing environmental data. Examples include ERC-721 claims about node energy use, provenance through CO2.storage and ERC-1155 tracking of renewable energy.
Speakers
Topics
From ETHCC 6, hosted by Ethereum France.
Transcript
and who care about these Crossroads of environment and cryptography and it's going to be really interesting topic we talked with Alan for a couple of minutes before and it seems that he's really into it so let's welcome onto the floor and see what he has to say about it thanks so much awesome um hi I'm Alan I started a project called Falcon green which is part of protocol labs and focuses on connecting the falcoin network to renewable energy um but my talk today is going to be a little bit more broad really talking about environmental claims in general so renewable energy you're saying that this
node in a network uses 100 renewable energy that's one type of environmental claim but what I'm going to be talking about is the fact that we need better tools for justifying environmental claims broadly and talk about how data provenance is a really good fit for a lot of the tools that we're building in web 3. um so I'm gonna you know first build out that thesis right so why do we need new tools for impact evaluation and environmental claims then talk about something that we've been building called transform.storage if you go to transform.storage right now it'll redirect to co2. storage which is the Prototype that we've been building specifically for carbon offsets but I'm going to be talking about these tools
sort of broadly and what they can be used for in the near future I'm going to talk about what's built right now so how can how can you use this to prove impact in projects that you're building right now today um and then give you an opportunity to actually use some of these tools to decarbonize your travel here for free um so if you if you have a brave browser with a wallet set up or if you have metamask on your phone um you can scan a QR code and uh say how far you traveled and automatically retire carbon offsets and build automatically on your phone using decentralized compute and anchored in content data types build a carbon Ledger for your travel here and offset that with uh with credits from the regen
Network and so firstly why do we need new tools for impact evaluation well so all of these claims that we make all of these environmental claims their claims about the real world right and so here's the top some examples of carbon offset projects and renewable energy certificates right so these are used to make claims about you know Net Zero um Net Zero companies Net Zero projects Net Zero activities or claim that we're using renewable energy for a particular purpose and they're used to make statements like this right so my trip to ECC was Net Zero or our power bill last month was 85 kilowatt hours or our
regenerative Farm removed a certain amount of carbon or we recycled so much E-Waste right these are claims about the real world and we need better tools to justify them than the ones that we have so rwcs are not like ownership right they're not like you can't just just verify that you own an RWC and you know like verify that you own an nft and therefore automatically trust that the data there is accurate right you need if you're you're trying to say okay my power bill last month was 85 kilowatt hours you can't just like go to a chain and say if you want to verify that you can't just use like just on chain data to do that they're not like Price Right the information isn't distributed so having a hundred different people vote on what my power bill was last month it
doesn't make a lot of sense right because 100 different people don't have access to that data I have access to that data and my power company has access it's not like State we need a lot of compute to determine many of these real world claims so we're just talking about satellite Data before like if you try to do um you know if you try to compute over a satellite image on chain you're going to run out of of money to pay gas fees really really quickly right so we need we need compute over data it's not like identity identity is a useful building block but just establishing someone's identity through a did or a VC or a wallet address that doesn't give you any any sort of assurance that what they're saying is actually true about the real world that like what they're saying about my power bill matches the facts on
the ground about my power bill it's not like a market um the fact that someone is willing to pay a lot for a data set doesn't actually mean that that data is true right often it's the reverse right if I can establish that this data is true someone will be willing to pay for it um but you can't just like use a market to solve that problem automatically um it's not decentralized physical infrastructure we don't want to come up with new ways of building new consensus mechanisms every time we want to validate something new right we need something that is uh that is faster and more and more plug and play and it's not uniform right so different data is validated differently if I am claiming that my project or my company is net zero there's going to be a ton of different data sets that go into that
claim and they're going to be validated using different methods so how do we get the benefits that we talk talk about in web 3 about verifiability while respecting the nature of real world claims so um you know here's the the big beta and switch of this talk is you come for the sustainability and stay for the category Theory um so we're modeling these sorts of claims as compute graphs and so the idea here is that you have a compute graph where data comes in one side from the left and leaves to the right and a line in any of these compute graphs is a data set that data set is typed and the type itself is content addressed so we'll talk a little bit more about that and
why we're setting things up that way so a line is data and a box is a function or a transformation that happens to that data that function might be entirely public and verifiable because it's public it might be part of a zero knowledge proof it might happen entirely offline and you you just know that you can trust it if it was done by someone you trust right there's a bunch of different trust models that can be built into these functions but the idea is a line is data a box is a function or a transfer mission to that data and then functions can have multiple inputs or multiple outputs right functions can also compose so if the output type of one function equals the input type of another function then you can plug the first function into the the
second function right and so um this is all based on uh this paper here wiring diagrams as normal forms for computing and symmetric monologue categories which we could we could talk about I think there's going to be some questions or some time for questions afterwards if you uh have more have more thoughts about you know sort of where this comes from and so I said that this all this data is based on content addressed data and content addressed types right so why why do that why is that important for real world claims well like I was saying different types of real world claims are going to be justified using different methods right and if you anchor your data in content addressed data types
that gives you portability and interoperability between different data stores and different sources of compute over your data so you can store your data a bunch of different places and as long as you know that the data itself is content addressed you can verify that the data is the same across across all these different data stores and if you use content address types then you know that data of one type which can be verified across all these different data stores is going to plug into compute of a type that exists on another data store but you can you can verify the types are the same right so this is just using content addressing to verify across all these different platforms
and so you know the structure of a real world claim right so I talked about connecting um falcoin to renewable energy that's that's what we focus on so you may have different types of data that verify different types of this process so on the left here you have the certificate that comes from a file coin node proving their actual energy use using their power bill to a third party that data is signed you can use that data in Erica 1121 token you can get if you go to greenscores.xyz right now you can see a bunch of these outputs from different storage fighters who have gone through this process so this is is validated data based on a power bill we also have information from the filecoin chain that
we can use to estimate the amount of energy use by a storage fighter over a given period of time right and so these give you different types of information so what would this look like in this RWC compute diagram that I was talking about well so you have data coming in from these different sources right you have you have data from the Falcon chain you have data from this energy validation process again lines are data boxes are functions and data travels from left to right so you then plug that data from from from the chain into this function that gives you these estimates right so that's one transformation that you're doing to that data again everything all the data is content addressed all the types are content addressed and in this case the function is public and you can just
rerun it and that's that's how you get your verifiability then you put both of those different sorts of information so the the energy estimation that's based on chain compute and also this validated information from the power bill into this green score calculator which again is public it gives you this grain score that comes up so the an example of how we can track different forms of justification for real world claims that interoperate between different platforms and different sources of information right and so uh so how does this plug into what we're calling transform.storage and the the Prototype I mentioned which is co2.
storage where we're experimenting with a lot of these these Concepts well so real world uh claims don't just have a single layer of compute information they actually have three layers right so at the base layer you have data assets so this is the raw data that is transformed by all these different functions and ultimately what your claims are based on on top of that you have functions right so the function layer an input is a type and an output is a type and the boxes themselves are the definitions of functions then on top of that you have provenance right you want to know where is my verifiability coming from for all this different data and all these different functions and all the compute over data that we're doing so you can
take individual pieces of data you can sign them with this this Providence information and establish do I trust the source of this data or do I trust the method of verifying data say something something is really good for like a decent decentralized Oracle right the provenance information just says okay that's where where I got this information I got it from chain Linker somewhere or it says uh this data was validated by this particular auditor who knows a lot about validating this type of information for this purpose right so that's what the provenance layer is for or it says who wrote this function right do I trust this person to have enough domain expertise in that area in order to to write a good function for this type of data transformation for this
real world claim um so that's the provenance layer right so we have compute diagrams over these three different layers right so the raw data Transformations that data and then provenance of both those functions and that data itself so what's a what's a what's the actual sort of like type structure of this what's the data model look like so you have this very simple compute diagram where just one data set comes in it gets transformed by a single function and then the output data comes out right and that exists at these three different layers so we'll start with the function um it's pretty simple you have a function this function has an input which is a type an output which is
another type and a definition which is just sort of raw data right then that type has a schema right so you want some way to know based on a Content address type that your data conforms to that type because then you know whether you can plug it into this function and you also know whether your functions can compose right so that's that's the next kind of key to all of this on top of that if you want to actually flow raw data through this compute pipeline you have data assets and a data asset says I have some data it conforms to this type then on top of that you have Providence information for the raw data and the functions themselves and you wrap all of this up into a pipeline every individual piece of data here has its own CID and
your pipeline itself has a CID right and so that pipeline says here is all of the data I'm using here's how that data is transformed here is Who provided that data or the method that I'm using for verifying that data here is who wrote all of these functions and then the provenance information of that CID says I carried out this computation and I say that when you take this data and input it into this compute pipeline this is the data that you get out right so you're able to trace provenance at all of these different hierarchical levels of these data structures and so you know an example of this um using this for a claim would be you could take a hypersert which is from the
the network Goods team at protocol Labs um and the hyperservice foundation um I think in collaboration with super modular and you can say okay this hyper tracks impact or actions that have impact you can then use a property of that hypersert to point to a pipeline or the provenance associated with the pipeline and say here is how I reached that conclusion about the impact that is tracked with this hypersert right and maintain that both the hierarchical provenance information and the traceability of that claim um across all of these different uh these different platforms where you might want to actually store and compute over data so if you're interested in more about how we're thinking about this um this paper is a work in progress
um but uh this is this is sort of where a lot of this stuff is going is this data Providence over computational graphs uh paper also at the upper left or the upper right hand uh Corner if you want these slides you can you can scan that and get them um so how do I actually use this to evaluate impact in my project like what's what's built right now that you could use if you want to start using this like today um so the the you know check boxes here are stuff that we've implemented documented and have a UI at it um for co2. storage has a API too um if you actually you know want to want to like use this in in a uh at scale um so you can write out uh schemas associate those with content address
data types you can make assets you can easily allow your users to create assets based on this entire model and you can tag all of that with provenance information um this stuff is partially implemented there actually is like a UI for a lot of this now um and it's uh it's it's coming pretty soon um but we're going to give you a chance also to create a data pipeline in order to build automatically using a decentralized compute over data so project block layout give you the ability to make a carbon Ledger in just a couple minutes that is going to certify that your travel here was Net Zero so you know I said you can type in a data schema this is what the UI for that looks like you could do this by hand if
you want and just type in say you know there's all these different field types you can say my record is going to have this set of different field types um and do that in the UI if you want you could also just use the API to import a Json schema that already exists then again this gives you a type that is anchored in a Content address right so that means that that type is portable across different compute environments as that's like really the secret sauce to this whole thing right is you need not just data that is verifiable across different different environments but data types that are available across different compute environments where you want to do that compute because the method that you're going to use to verify different types of data are
inherently going to be different based on what you're verifying and what your real world claim actually is right so you can use this UI you can type out your your schema you can use the JS API you can import your own Json schemas if you want then you can take the CID of that type and right now you can just enter that into form.co2.storage.cid and if someone opens that in Brave with their wallet set up or if they open that in the metamask browser they just have a form that looks like a Google form except you log in with your wallet you enter that information into the form and you sign it with your wallet address right so that's how you get the Providence information associated with an instance of a data type right so that makes it
really easy to just collect information from you know say you have a carbon offset project so you're working with a ton of people on the ground who need some easy way of giving you information that is tagged with um with with you know those provenance data sets then you can just you know send them that link right and have them fill in that form they don't need to know that much beyond having their wallet set up and so this is the the data model for that then like I said their data contains auditable provenance information that you can just verify in the browser so you can just take their signature over that um that whole data type including the the schema itself and verify that they actually contributed that data and
then you can use that say you have data from 20 different sources it's all signed with provenance information if you know who contributed it then you know that you know whether or not you trust all of the inputs to a compute pipeline that gives you your your real world claim right so this is the situation in a lot of say Net Zero claims or claims about issuing carbon offsets right your data may come from 20 different people on the ground and also the validation and verification body and also the carbon offset registry right and then ultimately you're matching that to some estimate of your emissions that comes from a different Source you might have data from 10 20 30 hundreds of different sources if you can track the
Providence of all of that information automatically and then show how that flows through a compute pipeline where the steps of that compute pipeline are done in different compute environments that's what we need in order to actually verify real world claims so you know what's coming next um data pipelines actually had been implemented um they weren't when I initially made this slide um uh private data encrypted data there's a bunch of different ways of doing that um monetizing your data and code and things like impact evaluation as a service so giving people the ability to certify different different types of impact and maintain these provenance pipelines which can then be extended when people want to like add to them um or or use that impact to match
against something so decarbonize your travel for free so um if you have Brave with a wallet setup um or if you have metamask and you want to want to use that to sign a record what you can do here is scan um you know the corresponding code here you can enter in your name um and how far you traveled and what the event is and what the date is and then it'll take a couple of minutes because this is actually using project baklao this is using decentralized compute over data um but we will calculate the amount of emissions associated with your travel we'll then automatically retire and offset on the regen Network um uh that you know that that money goes to one of several different carbon
offset projects that are avoiding or sequestering or removing carbon through ecosystem benefits will then create a record that gives you the hash the transaction hash of that offset matches that to your your actual travel and then gives you a carbon Ledger right that is is expressed as this the simple data pipeline right so one record goes in it's uh this this function transforms it and the record that comes out certifies that your travel was canceled out by that uh that carbon offset record um so happy to take any questions um and also to answer any questions about the the demo if you're trying it thanks foreign thanks for that fascinating
um just wondering where you are on getting traction with this like three months ago I tuned in to ey doing a conference about their blockchain Solutions um that they're developing on ethereum and one of the things they were demoing were um carbon tracking capabilities through through supply chain um I'm just wondering how how much engagement or discussions you're doing with like business parties who who really care about this sort of stuff at at a sort of like business and Enterprise level not just at a personal level thanks yeah totally yeah we've we know the Folk City way and we've uh we've talked to you know a bunch of different people in this space um so yeah we're pretty actively pursuing that there are a few different um uh refi projects that are actively building on top of this too so you know
look into um you know both go after the all the sort of web3 native stuff and then sort of expand into a lot of the the more traditional corporate areas where people you know people really like you're saying really care about traceability and carbon offsets right and I think especially what we're seeing is that over the past six months or so that's really come to a head as there have been sort of a lot of Revelations about some of these carbon offset projects right which have shown that um some of the carbon offsets many of the carbon offsets that have been certified by some of the largest Registries like were not actually very good um and so you know they're really actively looking for ways to establish the the provenance underlying the the claims that they're making right um we work really closely with you know
an example of that is this project called gain Forest which takes actual satellite images that are updated every two weeks plugs them into a data processing Pipeline and shows that you know either this this carbon offset is really good it's really protecting a forest in an area that is at risk of deforestation um or showing that you know okay this registry made this claim but it actually is not backed up by data because there is a deforestation in that region um so yeah pretty pretty actively going after that awesome thank you hi um thanks for the presentation I
think absolutely brilliant um just thinking about it from implementation perspective so some of the challenges that we've been having currently be using satellite data and our challenges are more around scalability and performance so how does this scale up from performance perspective responses and scalability so basically that's the question yeah I mean so so we're building this on on file coin and ipfs right and so falcoin uh has huge scale right it's it's something like 13 megabytes of of data storage capacity um so you know you can take like all of the data across all web 3 projects and store them thousands of times just with the data storage capacity that filecoin already has it's like it's something like it's between five and ten percent
the total size of AWS um so from a data storage capacity you know we're pretty good I think that um the from the compute over data perspective right like there's a bunch of different answers to that and it's evolving pretty quickly right I put I put you know 10 different logos of places that you might do do Cod um and so we're using project baklao which is a um you know a project that uh takes all these different nodes and and capacity compute capacity that is underutilized in mainly filecoin and allows people to use their CPUs and gpus to contribute to this this decentralized data processing Network um but the whole point right that I
emphasized a couple times is like you could plug this into a bunch of different um Cod Solutions so just a quick follow-up question on that so base based on a normal implementation that you've spoken about right now um what have you seen in form of latency in those challenges um you know in being able to scale up so we're looking at something around uh 15 to 10 minutes on an average for a data set to be computed in you know stored so does it play nice with this requirement at all yeah I mean so if it depends a lot on on what exactly you're trying to do right and what the design requirements are one of the things that's useful about an architecture like this is that you could easily get the computational graph which is like rigorously and verifiably tied
to the actual data that you're working with and that graph is pretty small compared to those data sets so something you could do is like you know have this potentially very large compute Pipeline and know what the CID is and what the size of each of these these data sets is that's coming in and then you can just like inspect the pieces that you actually care about for a given job right um but you know the details on like what exactly the compute time is in latency and stuff like that would have a lot to do with the specifics of your of what you're trying to do thank you um last question yeah really cool thanks so much I just tried it worked like a charm so that's really cool I just wonder if you could talk
quickly about the integration with regen and how that works and specifically how that relates to the provenance layer in our diagram yeah I mean so so right now um if you inspect the compute pipeline that that came out of what you did right there's a transaction hash there and so you can enter that into minscan and it should have the details that you entered about your your travel should be like associated with that carbon offset which is one of the ways that you can match that um you know so there's a bunch of different ways that you could establish verifiability right of of like particular regen offsets um you could do it manually like I just described um you can have an oracle between regen and whatever Network you're trying to use to validate this um or you could also just make a make a
you know Providence node right that just um you know manually has its own sort of integration with with regen and so all those different different methods are possible but again it's you know it's really based on what you're trying to do and what the the requirements of your projector okay um thank you Alan thanks much again it was uh Alan from Falcon green thank you everybody and I wish you a good day foreign