- From: Orie Steele <orie@transmute.industries>
- Date: Fri, 8 Sep 2023 13:55:34 -0500
- To: Manu Sporny <msporny@digitalbazaar.com>
- Cc: "W3C Credentials CG (Public List)" <public-credentials@w3.org>, W3C VC Working Group <public-vc-wg@w3.org>
- Message-ID: <CAN8C-_LvdiPgOpw8LUdKgywQ0YivR8RrVQL3eXtB3CjL8=f7aw@mail.gmail.com>
Web browsers consume tremendous resources, and many web applications are needlessly wasteful. I filed https://github.com/w3c-ccg/traceability-vocab/issues/870 to gather feedback on how we might attempt to address this topic from the wider W3C community. We already have interoperability and conformance tests, which we might be able to leverage to get this off the ground faster if there is interest. The document that I referenced at the start of this thread makes many excellent recommendations that apply to Verifiable Credentials, which can also be implemented in ways that are wasteful. For example, this document still recommends bitcoin based decentralized identifiers: https://identity.foundation/jwt-vc-presentation-profile It seems like some are suggesting that attempting to remove wasteful CPU and memory usage is "green washing", I don't agree. To make my position clearer, I think JSON-LD processing prior to verification does not align with sustainable software development practices, because it is an expensive operation that can time out or run for a long time and then fail later at signature verification time. A more sustainable approach would be to check the signature on the bytes first, and then do graph processing when you need the graph data model. This lines up with "use a little power first", and then "use more power when it's safe to do so". For the case where verification succeeds, you still get the graph data model, and you don't waste time (and energy) processing tampered data. This is similar to the other recommendations in the document, like code splitting and tree shaking, where we try to avoid doing work, until it is needed. Additionally, JSON and other text formats consume extra storage and network resources when compared to binary formats. I think it would be good to see that consumption visualized, so that the market can see the true cost of the various digital credential formats being proposed by ISO, IETF and W3C. I recognize there are lots of W3C member organizations that are committed to technologies that might not perform well on these guidelines. I say this as a JS developer who often includes dependencies for convenience that are not necessary to the function of the program... That does not make it right to do. I'm trying to improve my GoLang and Rust, but it's hard to code when there is so much standard debate to be done. There was some threatening related commentary shared on the member list recently regarding antitrust and competitive testing / evaluation. Gaming tests, by excluding competing solutions, or biasing the evaluation of the performance of competing formats sounds like something that we should be vigilant about, given that it can artificially constrain digital markets. There are parts of this topic related to competitiveness that feel like they overlap with the sustainability topic, and in fact, previous formal objection debate called out sustainability "values" as something the W3C should not be focused on... and I disagree with that... It should be debated. In other words: When is choosing "expensive and complicated" worth it over "sustainable and cost effective"... What "values" justify "additional cost"... Complexity and cost (power, time and money) all impact price. Using a standards process to impact the price of securities, products or services... Should concern all of us... W3C is not law enforcement or a regulator, but they read our lists, and W3C cares about how it is perceived in this regard. I personally don't want to see a highly competitive low cost market for "privacy destroying surveillance tech"... On the other side, reducing complexity and cost for blue team builders seems worth sacrificing some academic purity or other values over... I'd rather see clean water sold to a billion people, than isotopically pure water sold to a million... We should aim at having a large impact on improving privacy and security. Complex and unsustainable approaches detract from that mission. One could argue that energy consumption from WebGPU could cause the web to impact the environment negatively in service of local machine learning or other missions, the point of debate at W3C is to discuss if the proposed solutions are "worth it", not to dismiss them without evidence... Hence the focus on evidence based approach in https://w3c.github.io/sustyweb/#have-an-ethical-and-sustainability-product-strategy This was discussed during the DID Core formal objections, and positioned politically in both directions... The objectors asked for evidence, the proponents refused and claimed political bias / greenwashing / anti competitiveness. In summary, people argued Bitcoin was "worth it" because it solved for "decentralization best", others disagreed... The objections were not resolved, they were overruled... After 9 months, by Sir Tim, who won't be able to do that next time. I expect folks who felt strongly about them, still hold those feelings.... Recent debate on this list, showed support for proof of stake over proof of work, based on its reduced impact on energy consumption, but that can come with a trade off that can cause conflicts with securities laws... All systems design is a balancing act. Debate now will help strengthen responses to future formal objections, or we can wait and see. Based on the previous experience I don't recommend we take that approach. It might never be possible to agree on W3C values regarding sustainability, but I don't mind being a broken record that CPU and Memory are not "free" and they are not "neutral" in their impact on our planet, and we can and should strive to be better at leveraging them to protect the values we share. Regards, OS On Fri, Sep 8, 2023 at 9:01 AM Manu Sporny <msporny@digitalbazaar.com> wrote: > On Thu, Sep 7, 2023 at 10:21 PM Orie Steele <orie@transmute.industries> > wrote: > > The VCWG could recommend against wasteful cryptographic operations or > dependencies that consume more CPU than is needed to sign or verify. > > Ah yes, the good 'ol "TLS is too expensive to implement at scale" > argument, which has been repeatedly debunked through various > technology cycles: > > http://highscalability.com/blog/2011/2/10/dispelling-the-new-ssl-myth.html > > The argument goes "Cryptography X is too expensive to implement, so we > should just keep doing what we've always been doing!"... which > presumes that two technologies are exactly the same, which they're not > (as has been said earlier in this thread). > > To be clear, we have implemented a variety of the VCDM securing > mechanisms at scale, in production, and the time it takes to secure a > VC is an insignificant rounding error compared to the time taken > running on top of multiple layers of virtualization in cloud > environments, and communicating w/ other HTTP APIs, doing database > updates/calls, and running business logic. > > This is a textbook case of trying to optimize the wrong thing and it's > coming off as political in nature. You might let everyone know that > you're the lead editor on a specification that would benefit from this > sort of "recommendation against wasteful cryptographic operations". > > Furthermore, you might as well suggest that we stop using interpreted > languages, like Javascript and Python on the server and everyone go > back to implementing in C++ (probably still too slow) or assembler. If > you want to call out wasteful CPU cycles, running in an interpreted > language is far, far worse than a handful of cryptographic operations. > > As Dave Lehn pointed out in the thread, getting consensus on a > definition of sustainability (which we all care about), is a difficult > thing to do. For example, if we use the traditional signature models > we can look forward to doubling to tripling disk usage, which is a far > more damaging/permanent thing for the environment (extraction of rare > earth material, chip manufacturing, etc.) than a few milliseconds of > compute. That's just ONE of the complexities that will come up in such > a discussion; it eats away at precious WG time. > > This is not a zero-sum decision... there are trade-offs with each > technology approach, and not everyone has a use case that fits into a > neat narrative. This whole "sustainable VCs" comes off as a > green-washing of your specification (vc-jose-cose) in an attempt to > get the W3C Membership riled up so that they might favor a set of > technical decisions that you want them to make. It's the same > "blockchain guilt by association" thing that was done during the DID > Formal Objections (and was overturned). > > Yes, sustainability matters and is important... but this feels like > you're barking up the wrong tree, here (and it's just going to result > in a big waste of time for everyone involved, and then not have a > great deal of impact from an emissions perspective in the end). > > -- manu > > -- > Manu Sporny - https://www.linkedin.com/in/manusporny/ > Founder/CEO - Digital Bazaar, Inc. > https://www.digitalbazaar.com/ > -- ORIE STEELE Chief Technology Officer www.transmute.industries <https://transmute.industries>
Received on Friday, 8 September 2023 18:55:53 UTC