<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[tahpot: User Owned Web]]></title><description><![CDATA[Building a user-owned future of personal AI and digital ownership.

Thoughts, demos and tech deep dives relating to AI, web3 and self-sovereign technology.]]></description><link>https://www.chriswere.com</link><image><url>https://substackcdn.com/image/fetch/$s_!KCnc!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a945ec8-1d10-4325-b264-7186839864cc_400x400.jpeg</url><title>tahpot: User Owned Web</title><link>https://www.chriswere.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 04 May 2026 11:45:19 GMT</lastBuildDate><atom:link href="https://www.chriswere.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[tahpot]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[tahpot@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[tahpot@substack.com]]></itunes:email><itunes:name><![CDATA[tahpot]]></itunes:name></itunes:owner><itunes:author><![CDATA[tahpot]]></itunes:author><googleplay:owner><![CDATA[tahpot@substack.com]]></googleplay:owner><googleplay:email><![CDATA[tahpot@substack.com]]></googleplay:email><googleplay:author><![CDATA[tahpot]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Will AI Kill the SaaS Business Model?]]></title><description><![CDATA[AI is moving at a pace, the SaaS industry has enjoyed a spectacular run... where will this lead us?]]></description><link>https://www.chriswere.com/p/will-ai-kill-the-saas-business-model</link><guid isPermaLink="false">https://www.chriswere.com/p/will-ai-kill-the-saas-business-model</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Thu, 29 Jan 2026 10:28:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KCnc!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a945ec8-1d10-4325-b264-7186839864cc_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The SaaS industry has enjoyed a spectacular run. For two decades, we&#8217;ve watched companies build billion-dollar empires on the foundation of monthly recurring revenue, feature-rich platforms, and the promise of continuous updates. But as I watch developers &#8220;vibe code&#8221; entire applications in minutes and see AI chat interfaces directly challenge established SaaS products, I can&#8217;t help but ask: are we witnessing the beginning of the end for the traditional SaaS model?</p><h2><strong>The Velocity of Change</strong></h2><p>AI is moving at a pace that makes Moore&#8217;s Law look leisurely. Consider this: Lovable reportedly reached $100 million in ARR in just 8 months&#8212;the fastest-growing startup in history. Cursor hit a $9.9 billion valuation with $500 million ARR. These aren&#8217;t just impressive numbers; they&#8217;re indicators of a fundamental shift in how software gets built and consumed.</p><p>By late 2024, Google reported that 25% of all new code was AI-generated. A year later, Anthropic&#8217;s CEO revealed that for some internal teams, that number has reached 70-90%. This isn&#8217;t gradual evolution&#8212;it&#8217;s a step function change in software development velocity.</p><h2><strong>The Rise of Vibe Coding</strong></h2><p>I&#8217;ve been experimenting with vibe coding myself, primarily using Cursor. The experience is both exhilarating and humbling. As an experienced software engineer, I can carefully guide the AI to build functional applications rapidly. Where it still struggles&#8212;like when I asked it to perform Test-Driven Development and it started modifying code to pass tests rather than fixing the actual issues&#8212;shows we&#8217;re not quite at full autonomy yet. But the trajectory is clear: people are increasingly building complete applications using nothing but AI.</p><p>Junior developers using these tools report 21-40% speed increases for routine tasks. More importantly, <em>non-developers</em> are now building functional software. This democratization of development isn&#8217;t just changing who can build software&#8212;it&#8217;s changing what gets built.</p><h2><strong>The Perfect Storm Against SaaS</strong></h2><p>Several converging trends are creating an existential threat to traditional SaaS:</p><p><strong>1. AI Can Now Build the Entire Stack</strong></p><p>SaaS, at its core, is a combination of:</p><ul><li><p>Data management</p></li><li><p>Business logic</p></li><li><p>User interfaces</p></li><li><p>Connectivity</p></li></ul><p>AI can now handle all of these components. It writes business logic, controls databases, and increasingly builds complete user interfaces (Google&#8217;s Flash UI being a prime example). OpenAI is innovating with UI widgets that appear directly in chat interfaces, essentially embedding micro-applications within conversations.</p><p><strong>2. Direct Competition from Chat Interfaces</strong></p><p>OpenAI and Anthropic have both launched health-focused chat interfaces that directly challenge existing health SaaS platforms. This isn&#8217;t theoretical disruption&#8212;it&#8217;s happening now. Why pay for a specialized meditation app or symptom tracker when an AI chat interface can provide personalized guidance instantly?</p><p><strong>3. The Bloat Problem</strong></p><p>Many mature SaaS products have become victims of their own success. They&#8217;re bloated with features that most users never touch. Vibe-coded alternatives have a compelling advantage: they do exactly what a user wants, nothing more, nothing less. They may not be as polished or pretty, but they&#8217;re often a better fit for the user&#8217;s actual needs.</p><h2><strong>The Migration Pattern</strong></h2><p>I see a clear migration path emerging. Simple, single-purpose SaaS applications will fall first, such as:</p><ul><li><p>Calendar scheduling (Calendly)</p></li><li><p>Social media posting (Buffer, Hootsuite)</p></li><li><p>Basic health and lifestyle apps</p></li></ul><p>These tools have minimal moats and can be replicated by a competent vibe coder in hours, not months. Consumer and SMB markets will lead this exodus&#8212;they have lower switching costs and simpler requirements that are easier to vibe code.</p><p>Enterprise SaaS has more breathing room, but not much. The complexity that once protected enterprise software is becoming increasingly manageable by AI systems.</p><h2><strong>The Moat Question</strong></h2><p>The survival of any SaaS company now hinges on a simple question: what&#8217;s your moat?</p><p>SaaS companies with genuine moats will survive and potentially thrive:</p><ul><li><p>Proprietary data that has inherent value</p></li><li><p>Network effects that make switching costly</p></li><li><p>Regulatory compliance that requires certification</p></li><li><p>Deep integrations that create switching friction</p></li></ul><p>Without these moats, SaaS companies are essentially selling convenience&#8212;and convenience is exactly what AI-generated micro apps provide, often better and cheaper.</p><h2><strong>The Infrastructure Gap</strong></h2><p>There&#8217;s a critical piece missing in this new world: connectivity infrastructure for micro apps.</p><p>While platforms like Zapier and n8n work well for businesses building internal tools, they&#8217;re not designed for deploying vibe-coded applications that others can use. We need a new platform architecture where micro apps can:</p><ul><li><p>Share data seamlessly</p></li><li><p>Communicate with other users</p></li><li><p>Maintain security and privacy</p></li><li><p>Scale automatically</p></li></ul><p>This gap represents both the biggest challenge and the biggest opportunity in the transition away from traditional SaaS.</p><h2><strong>The Support Paradox</strong></h2><p>When something breaks in a vibe-coded app, who fixes it? This question points to an emerging product category: AI infrastructure assistants that can automatically debug, fix, and maintain vibe-coded applications. We&#8217;re not there yet&#8212;as my TDD experiments showed, AI still struggles with certain debugging scenarios&#8212;but this will be solved.</p><h2><strong>The Platform Wars</strong></h2><p>The race to become the platform for these micro apps is already underway:</p><ul><li><p>OpenAI and Anthropic are early contenders with their MCP interfaces and chat widgets</p></li><li><p>Startups like Lovable and Manus AI have captured the vibe coder market</p></li><li><p>Google is a serious dark horse with incredible AI infrastructure&#8212;they may be building something in stealth</p></li></ul><p>The winner of this platform war will essentially become the new operating system for AI-generated software.</p><h2><strong>My Predictions for 2026 and Beyond</strong></h2><p><strong>1. Vibe coding becomes production-ready</strong><br>We&#8217;ll see tooling that makes it trivial to deploy vibe-coded apps securely and at scale. The current gap between &#8220;it works on my machine&#8221; and &#8220;it&#8217;s production-ready for thousands of users&#8221; will narrow dramatically.</p><p><strong>2. Full-stack AI platforms emerge</strong><br>Vibe coding tools will evolve into complete deployment and integration platforms. Think Heroku meets GPT meets Zapier&#8212;all in one seamless experience.</p><p><strong>3. Browser-based development becomes the norm</strong><br>Users will vibe code complete interfaces and applications entirely within browsers. No local development environment needed.</p><p><strong>4. The SaaS reckoning becomes public</strong><br>By late 2026, we&#8217;ll see leading SaaS companies publicly acknowledge that AI alternatives&#8212;whether vibe-coded apps or AI chat tools&#8212;are causing growth stagnation. The first major SaaS bankruptcy blamed on AI disruption will be a watershed moment.</p><h2><strong>The Pricing Revolution</strong></h2><p>The monthly subscription model that defined SaaS may not survive this transition. We&#8217;re likely moving toward usage-based AI pricing, though human psychology favors predictable costs. I expect we&#8217;ll see tiered &#8220;AI usage&#8221; plans that mirror current SaaS tiers but fundamentally change what we&#8217;re paying for&#8212;compute and intelligence rather than features and seats.</p><h2><strong>Final Thoughts</strong></h2><p>The SaaS model isn&#8217;t going to disappear overnight, but its dominance is ending. We&#8217;re entering an era where software becomes truly personal&#8212;not personalized by configuration, but personally created on demand.</p><p>Smart SaaS companies need to act now: identify your moat or build one immediately. If you can&#8217;t, consider a pivot while you still have runway. The companies that survive will be those that embrace AI not as a feature to add, but as a fundamental restructuring of how software gets created and delivered.</p><p>The irony isn&#8217;t lost on me: SaaS promised to democratize access to software, but AI is democratizing the creation of software itself. The revolution that SaaS started, AI will complete&#8212;just not in the way SaaS companies expected.</p><p><em>Credits: Open Source LLM&#8217;s were used to support the research and editing of this post.</em></p>]]></content:encoded></item><item><title><![CDATA[OpenAI (gpt-4o) is unable to use tools properly]]></title><description><![CDATA[Comparing OpenAI, Anthropic and Meta models and their ability to properly understand LLM tools]]></description><link>https://www.chriswere.com/p/openai-gpt-4o-is-unable-to-use-tools</link><guid isPermaLink="false">https://www.chriswere.com/p/openai-gpt-4o-is-unable-to-use-tools</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Thu, 27 Mar 2025 03:53:29 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/159964565/adcf57feb24ed9999de6ffce13759237.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been experimenting with different large language models and have been using <a href="https://docs.verida.ai/">Verida</a>&#8217;s Personal Agent Kit to connect a command line chatbot to my emails, Telegram data, and other private information. During my experiments, I noticed something unexpected in how the various models process tools.</p><p>I started by running my command line app configured to use Claude 3.5 from Anthropic. I asked it to list the tools it can access and then inquired about the parameters for the query email tool. Claude correctly returned a detailed list of parameters&#8212;such as selector, field, sort, limit, skip, and count&#8212;demonstrating its full support for filtering and sorting.</p><p>Next, I switched my configuration to use OpenAI&#8217;s GPT-4. After updating the settings, I ran the same command to view the available tools. While GPT-4 did list the tools (with names or descriptions), when I asked for the parameters of the query email tool, it only returned four: field, limit, skip, and count. Notably, it omitted the selector and sort parameters. Without these, it's difficult to filter emails (for example, by using a regular expression or distinguishing between sent and received emails) effectively.</p><p>I also tested Llama 3.3 70B. When configured with Llama, the model initially tried to execute the tools rather than just listing them. After a second attempt&#8212;making sure it only listed the parameters&#8212;it successfully returned the complete set, including selector and sort.</p><p>This inconsistency, particularly with GPT-4 and other OpenAI models, limits their utility in scenarios where full tool parameter support is required. I&#8217;m curious to know if others have experienced similar issues or have found workarounds.</p>]]></content:encoded></item><item><title><![CDATA[Anthropic's MCP: First impressions as a developer]]></title><description><![CDATA[I jumped in and created a MCP server to connect to my personal data stored on Verida. Here's my initial experience.]]></description><link>https://www.chriswere.com/p/anthropics-mcp-first-impressions</link><guid isPermaLink="false">https://www.chriswere.com/p/anthropics-mcp-first-impressions</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Wed, 27 Nov 2024 23:48:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jcrj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Two days ago, <a href="https://x.com/alexalbert__/status/1861079762506252723">Alex Albert from Anthropic AI formally announced the Model Contex Protocol</a>:</p><blockquote><p>&#8220;An open standard we've been working on at Anthropic that solves a core challenge with LLM apps - connecting them to your data.</p><p>No more building custom integrations for every data source. MCP provides one protocol to connect them all.&#8221;</p></blockquote><p>It&#8217;s important to make a clarification here:</p><p><em><strong>Model Context Protocol doesn&#8217;t negate the need to build custom integrations for every data source. MCP is a protocol that enables a LLM to have a common pathway to integrate with every data source. The integrations still need to be built for each data source</strong></em><strong>.</strong></p><p>I thought I&#8217;d try it out to see how well it worked and if it was a viable way to connect my data in Verida (email, calendar, google docs, telegram messages etc.) to Claude.</p><p>Here&#8217;s a detailed breakdown of my experience.</p><h2>Background research</h2><p>I started by skimming through the MCP documentation, starting with the <a href="https://modelcontextprotocol.io/introduction">Getting Started guide</a>. I am familiar with using Claude via AWS Bedrock, so planned on integrating directly there, however it became clear that MCP is only supported on Claude desktop as of today:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nxCF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nxCF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png 424w, https://substackcdn.com/image/fetch/$s_!nxCF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png 848w, https://substackcdn.com/image/fetch/$s_!nxCF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png 1272w, https://substackcdn.com/image/fetch/$s_!nxCF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nxCF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png" width="415" height="174" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:174,&quot;width&quot;:415,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nxCF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png 424w, https://substackcdn.com/image/fetch/$s_!nxCF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png 848w, https://substackcdn.com/image/fetch/$s_!nxCF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png 1272w, https://substackcdn.com/image/fetch/$s_!nxCF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb4fabf8-414a-4f87-8297-9bdc4b07a529_415x174.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>After <a href="https://modelcontextprotocol.io/docs/concepts/architecture">groking the architecture</a>, it realized I would need to create a MCP server, then configure Claude desktop to know about my server. Not too difficult I thought.</p><p>So I jumped into the documentation on creating my first <a href="https://modelcontextprotocol.io/docs/first-server/typescript">MCP server with typescript</a>.</p><h2>Creating a MCP server</h2><p>After reading the MCP server for typescript example I learned there are different types of interfaces in the protocol such as; resources, prompts, tools. I clearly needed a &#8220;tool&#8221; to enable querying my data, but wasn&#8217;t sure about the other interfaces.</p><p>I decided to take a closer look at the <a href="https://github.com/modelcontextprotocol/typescript-sdk">Typescript SDK in Github</a> and discovered a collection of <a href="https://github.com/modelcontextprotocol/servers">example servers</a>. As I had the basic concepts in mind, modifying an existing server would probably be easier.</p><p>I found a <a href="https://github.com/modelcontextprotocol/servers/tree/main/src/postgres">PostgreSQL example server</a>, this seemed perfect as a starting point. Reading the code, it provides two key interfaces:</p><ol><li><p>Resources: This lists the available database tables available to be queried, presumably so Claude knows about them.</p></li><li><p>Tools: The actual &#8220;query&#8221; tool to extract data from the database for Claude to process.</p></li></ol><p>I proceeded to spend the next hour creating a new Github repo with this PostgreSQL server as a starting point. I added the <a href="https://developers.verida.network/">Verida SDK</a> as a dependency in the package.json and copied some existing code to query my private data stored on Verida.</p><p>After some usual wrangling with typescript build processes, I finally had something that I hoped would be close to working.</p><p>Now, how to test?</p><h2>Testing my MCP server</h2><p>For the most part, the MCP documentation is quite good. It clearly has large gaps, where there are placeholders for future content, but the current content is clear and concise. There&#8217;s a clear section on <a href="https://modelcontextprotocol.io/docs/tools/debugging">debugging</a> and it points out they&#8217;ve built a really great <a href="https://modelcontextprotocol.io/docs/tools/inspector">inspecto</a>r to help with testing your MCP server.</p><p>I spun up the inspector in no time and opened it in my local browser.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jcrj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jcrj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png 424w, https://substackcdn.com/image/fetch/$s_!jcrj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png 848w, https://substackcdn.com/image/fetch/$s_!jcrj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png 1272w, https://substackcdn.com/image/fetch/$s_!jcrj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jcrj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png" width="1331" height="947" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:947,&quot;width&quot;:1331,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jcrj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png 424w, https://substackcdn.com/image/fetch/$s_!jcrj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png 848w, https://substackcdn.com/image/fetch/$s_!jcrj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png 1272w, https://substackcdn.com/image/fetch/$s_!jcrj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff797781c-c5d1-4a73-a115-1919d4bc3244_1331x947.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I could easily navigate to see the &#8220;Resources&#8221; I had exposed. I could also navigate to &#8220;Tools&#8221; and manually execute my &#8220;query&#8221; tool.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!160a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!160a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png 424w, https://substackcdn.com/image/fetch/$s_!160a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png 848w, https://substackcdn.com/image/fetch/$s_!160a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png 1272w, https://substackcdn.com/image/fetch/$s_!160a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!160a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png" width="1456" height="587" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:587,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!160a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png 424w, https://substackcdn.com/image/fetch/$s_!160a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png 848w, https://substackcdn.com/image/fetch/$s_!160a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png 1272w, https://substackcdn.com/image/fetch/$s_!160a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c13ab3-f1d4-4fb0-aab0-c116255ccf3e_1600x645.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is where I hit my first real issue. Debugging currently sucks. The documentation has some basic dot points on <a href="https://modelcontextprotocol.io/docs/tools/inspector#development-workflow">development workflow</a>. Basically, you have change your code, rebuild your code, reconnect the inspector, then test again.</p><p>There is no ability (that I&#8217;m aware of) to attach my IDE to a debugger for real-time debugging. There is also no ability to console.log output to see what&#8217;s going on in the server as this causes problems with Claude.</p><p>As such, my debugging ended up being throwing Errors to get insight into values of variables on the code and those Errors propagated up to the inspector for me to review. Very slow and cumbersome, but I assume Anthropic are working on a better flow here.</p><p>I was able to work through my issues and ended up with my two interfaces fully tested and working via the MCP inspector:</p><ul><li><p>Schema resources: List all the available database schemas that can be queried</p></li><li><p>Query tool: Run a database query against one of the database schemas</p></li></ul><h2>Connecting my MCP server with Claude</h2><p>As mentioned above, MCP is only supported on the Desktop version of Claude (which I didn&#8217;t have). I downloaded, signed in and was ready to test.</p><p>First, I needed to configure Claude Desktop to know about my MCP server. In the Claude Desktop settings there is a &#8220;Developer&#8221; section, which can open a JSON configuration file where you enter your MCP configuration.</p><p>This was pretty straightforward to do, and once I restarted Claude, the settings showed my MCP server was available.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3M8R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3M8R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png 424w, https://substackcdn.com/image/fetch/$s_!3M8R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png 848w, https://substackcdn.com/image/fetch/$s_!3M8R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png 1272w, https://substackcdn.com/image/fetch/$s_!3M8R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3M8R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png" width="515" height="235" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:235,&quot;width&quot;:515,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3M8R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png 424w, https://substackcdn.com/image/fetch/$s_!3M8R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png 848w, https://substackcdn.com/image/fetch/$s_!3M8R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png 1272w, https://substackcdn.com/image/fetch/$s_!3M8R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9122bb37-6eaf-4be4-9b8f-f1570747b6cf_515x235.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>However, I hit a snag:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dkWA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dkWA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png 424w, https://substackcdn.com/image/fetch/$s_!dkWA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png 848w, https://substackcdn.com/image/fetch/$s_!dkWA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png 1272w, https://substackcdn.com/image/fetch/$s_!dkWA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dkWA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png" width="346" height="80" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:80,&quot;width&quot;:346,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dkWA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png 424w, https://substackcdn.com/image/fetch/$s_!dkWA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png 848w, https://substackcdn.com/image/fetch/$s_!dkWA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png 1272w, https://substackcdn.com/image/fetch/$s_!dkWA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb067e589-e6a1-4779-ad43-50d37d4bc2cf_346x80.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Claude was showing this error message with no further information. According to the MCP documentation there <a href="https://modelcontextprotocol.io/docs/tools/debugging#viewing-logs">should be logs on my local computer to help debug</a>, however I have none.</p><p>After a lot of mucking around, I realized there was an issue with my schema resources endpoint which I fixed. Now, after restarting Claude Desktop it appeared I was connected properly.</p><p>There is a little tool icon that appears:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yVFv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yVFv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png 424w, https://substackcdn.com/image/fetch/$s_!yVFv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png 848w, https://substackcdn.com/image/fetch/$s_!yVFv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png 1272w, https://substackcdn.com/image/fetch/$s_!yVFv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yVFv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png" width="703" height="207" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:207,&quot;width&quot;:703,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yVFv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png 424w, https://substackcdn.com/image/fetch/$s_!yVFv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png 848w, https://substackcdn.com/image/fetch/$s_!yVFv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png 1272w, https://substackcdn.com/image/fetch/$s_!yVFv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F126acd8c-03e6-420b-a3cc-7b9866395592_703x207.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Clicking that icon shows information about the MCP tools that are connected.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h6IT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h6IT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png 424w, https://substackcdn.com/image/fetch/$s_!h6IT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png 848w, https://substackcdn.com/image/fetch/$s_!h6IT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png 1272w, https://substackcdn.com/image/fetch/$s_!h6IT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h6IT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png" width="575" height="256" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:256,&quot;width&quot;:575,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h6IT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png 424w, https://substackcdn.com/image/fetch/$s_!h6IT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png 848w, https://substackcdn.com/image/fetch/$s_!h6IT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png 1272w, https://substackcdn.com/image/fetch/$s_!h6IT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F526de01a-1b66-4f7d-96b2-0c9948fd5a9e_575x256.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Ok, I&#8217;m all set, now let&#8217;s test this out</p><h2>Using Claude with my MCP Server</h2><p>Unfortunately, this is where things started to fall down.</p><p>Claude really struggled to discover my server and use it, even with my increasingly specific attempts to use it.</p><p>I started with something simple, summarize my recent calendar entries.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YSCW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f011907-b686-4881-876f-477bd5969b95_794x453.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YSCW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f011907-b686-4881-876f-477bd5969b95_794x453.png 424w, https://substackcdn.com/image/fetch/$s_!YSCW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f011907-b686-4881-876f-477bd5969b95_794x453.png 848w, https://substackcdn.com/image/fetch/$s_!YSCW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f011907-b686-4881-876f-477bd5969b95_794x453.png 1272w, https://substackcdn.com/image/fetch/$s_!YSCW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f011907-b686-4881-876f-477bd5969b95_794x453.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YSCW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f011907-b686-4881-876f-477bd5969b95_794x453.png" width="794" height="453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f011907-b686-4881-876f-477bd5969b95_794x453.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:453,&quot;width&quot;:794,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YSCW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f011907-b686-4881-876f-477bd5969b95_794x453.png 424w, https://substackcdn.com/image/fetch/$s_!YSCW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f011907-b686-4881-876f-477bd5969b95_794x453.png 848w, https://substackcdn.com/image/fetch/$s_!YSCW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f011907-b686-4881-876f-477bd5969b95_794x453.png 1272w, https://substackcdn.com/image/fetch/$s_!YSCW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f011907-b686-4881-876f-477bd5969b95_794x453.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s clear here that Claude couldn&#8217;t make the connection between me asking for &#8220;calendar entries&#8221; and the CALENDAR database schema that was available via my MCP Server.</p><p>I thought I&#8217;d ask it what it know about the connected MCP servers, but alas it doesn&#8217;t seem to know:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gjAU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gjAU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png 424w, https://substackcdn.com/image/fetch/$s_!gjAU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png 848w, https://substackcdn.com/image/fetch/$s_!gjAU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png 1272w, https://substackcdn.com/image/fetch/$s_!gjAU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gjAU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png" width="741" height="181" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:181,&quot;width&quot;:741,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gjAU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png 424w, https://substackcdn.com/image/fetch/$s_!gjAU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png 848w, https://substackcdn.com/image/fetch/$s_!gjAU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png 1272w, https://substackcdn.com/image/fetch/$s_!gjAU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c00329c-ed29-4292-a18a-6d16fa8e1757_741x181.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I tried to be much more explicit and ask for information about the available schema resources, but that didn&#8217;t work either:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8ZBI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8ZBI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png 424w, https://substackcdn.com/image/fetch/$s_!8ZBI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png 848w, https://substackcdn.com/image/fetch/$s_!8ZBI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png 1272w, https://substackcdn.com/image/fetch/$s_!8ZBI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8ZBI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png" width="758" height="343" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:343,&quot;width&quot;:758,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8ZBI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png 424w, https://substackcdn.com/image/fetch/$s_!8ZBI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png 848w, https://substackcdn.com/image/fetch/$s_!8ZBI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png 1272w, https://substackcdn.com/image/fetch/$s_!8ZBI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14c41710-ff58-4b99-a9b9-c56b4f402347_758x343.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I tried a different approach and use more keywords:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PcWt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PcWt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png 424w, https://substackcdn.com/image/fetch/$s_!PcWt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png 848w, https://substackcdn.com/image/fetch/$s_!PcWt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png 1272w, https://substackcdn.com/image/fetch/$s_!PcWt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PcWt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png" width="777" height="678" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:678,&quot;width&quot;:777,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PcWt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png 424w, https://substackcdn.com/image/fetch/$s_!PcWt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png 848w, https://substackcdn.com/image/fetch/$s_!PcWt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png 1272w, https://substackcdn.com/image/fetch/$s_!PcWt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e31d134-cf9a-4afb-a6ad-34c11fdc66ce_777x678.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, this did work! (sort of).</p><p>This prompt appeared asking for my approval to allow the query tool to run:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0GTb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0aee852-7dba-4dcd-b835-115c726674e2_516x252.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0GTb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0aee852-7dba-4dcd-b835-115c726674e2_516x252.png 424w, https://substackcdn.com/image/fetch/$s_!0GTb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0aee852-7dba-4dcd-b835-115c726674e2_516x252.png 848w, https://substackcdn.com/image/fetch/$s_!0GTb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0aee852-7dba-4dcd-b835-115c726674e2_516x252.png 1272w, https://substackcdn.com/image/fetch/$s_!0GTb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0aee852-7dba-4dcd-b835-115c726674e2_516x252.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0GTb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0aee852-7dba-4dcd-b835-115c726674e2_516x252.png" width="516" height="252" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0aee852-7dba-4dcd-b835-115c726674e2_516x252.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:252,&quot;width&quot;:516,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0GTb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0aee852-7dba-4dcd-b835-115c726674e2_516x252.png 424w, https://substackcdn.com/image/fetch/$s_!0GTb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0aee852-7dba-4dcd-b835-115c726674e2_516x252.png 848w, https://substackcdn.com/image/fetch/$s_!0GTb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0aee852-7dba-4dcd-b835-115c726674e2_516x252.png 1272w, https://substackcdn.com/image/fetch/$s_!0GTb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0aee852-7dba-4dcd-b835-115c726674e2_516x252.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I accepted, but as you can see from the screenshot above, it failed to return any results. This is because calendar_entries is not the correct schema name, it should be CALENDAR (which is returned from my MCP server resources endpoint).</p><p>At this point, I&#8217;m unclear if the inability for Claude to establish the link between the schema resources (CALENDAR) and the query tools is something I haven&#8217;t done well enough in my MCP server or is more an issue with Claude.</p><p>So, I decided to be very very explicit with running a query:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DVWP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d79744-aba1-428f-979e-68d911e0163c_740x843.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DVWP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d79744-aba1-428f-979e-68d911e0163c_740x843.png 424w, https://substackcdn.com/image/fetch/$s_!DVWP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d79744-aba1-428f-979e-68d911e0163c_740x843.png 848w, https://substackcdn.com/image/fetch/$s_!DVWP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d79744-aba1-428f-979e-68d911e0163c_740x843.png 1272w, https://substackcdn.com/image/fetch/$s_!DVWP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d79744-aba1-428f-979e-68d911e0163c_740x843.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DVWP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d79744-aba1-428f-979e-68d911e0163c_740x843.png" width="740" height="843" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01d79744-aba1-428f-979e-68d911e0163c_740x843.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:843,&quot;width&quot;:740,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DVWP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d79744-aba1-428f-979e-68d911e0163c_740x843.png 424w, https://substackcdn.com/image/fetch/$s_!DVWP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d79744-aba1-428f-979e-68d911e0163c_740x843.png 848w, https://substackcdn.com/image/fetch/$s_!DVWP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d79744-aba1-428f-979e-68d911e0163c_740x843.png 1272w, https://substackcdn.com/image/fetch/$s_!DVWP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d79744-aba1-428f-979e-68d911e0163c_740x843.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So, this is much better. You can see it has sent a MCP server tool request with the correct schemaName of CALENDAR, and then it even tried a different variation when that didn&#8217;t work.</p><p>But.. it didn&#8217;t work and this is where I gave up (for now).</p><p>The query was clearly executing in the MCP server, but was returning an error in the top right of Claude desktop:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ke-y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8484b37-713c-42c9-8730-c85d042daa90_527x103.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ke-y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8484b37-713c-42c9-8730-c85d042daa90_527x103.png 424w, https://substackcdn.com/image/fetch/$s_!ke-y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8484b37-713c-42c9-8730-c85d042daa90_527x103.png 848w, https://substackcdn.com/image/fetch/$s_!ke-y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8484b37-713c-42c9-8730-c85d042daa90_527x103.png 1272w, https://substackcdn.com/image/fetch/$s_!ke-y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8484b37-713c-42c9-8730-c85d042daa90_527x103.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ke-y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8484b37-713c-42c9-8730-c85d042daa90_527x103.png" width="527" height="103" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8484b37-713c-42c9-8730-c85d042daa90_527x103.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:103,&quot;width&quot;:527,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ke-y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8484b37-713c-42c9-8730-c85d042daa90_527x103.png 424w, https://substackcdn.com/image/fetch/$s_!ke-y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8484b37-713c-42c9-8730-c85d042daa90_527x103.png 848w, https://substackcdn.com/image/fetch/$s_!ke-y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8484b37-713c-42c9-8730-c85d042daa90_527x103.png 1272w, https://substackcdn.com/image/fetch/$s_!ke-y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8484b37-713c-42c9-8730-c85d042daa90_527x103.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>As mentioned above, I have no logs available on my local machine to give more insight on this error.<br><br>I replicated the exact same CALENDAR query using the MCP inspector console and it works perfectly every time, which is rather confusing.</p><h2>Summary</h2><p>MCP seems promising. The concept of a common interface for connecting LLM&#8217;s to external data sources is going to be really important moving forward.</p><p>I had some issues with debugging and getting things to work, however I expect those things to be improved over time. All things considered, it was a fairly good developer experience for a first release of a new protocol.</p><p>I am concerned about the lack of Claude&#8217;s ability to recognize that a prompt can use an available tool and the challenges of linking that tool precisely enough to make it work correctly. It&#8217;s not really viable to be asking Claude very specific questions to use a tool, it really needs to seamlessly integrate it with your usage.</p><p>This was my first attempt at using MCP, so it&#8217;s quite possible I missed a few things that could have improved my server and produced better results. That being said, this is a warts and all breakdown after spending a couple of hours playing with MCP and I expect it would be similar to the experience of other developers trying MCP for the first time.</p>]]></content:encoded></item><item><title><![CDATA[Anatomy of an AI Agent]]></title><description><![CDATA[A breakdown of the key components that will make up our future AI Agents]]></description><link>https://www.chriswere.com/p/anatomy-of-an-ai-agent</link><guid isPermaLink="false">https://www.chriswere.com/p/anatomy-of-an-ai-agent</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Mon, 04 Nov 2024 00:52:30 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/151136970/e925a8ebad8bee6d96289471a0a35422.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Artificial Intelligence (AI) is rapidly evolving beyond simple prompts and chat interactions. While tools like ChatGPT and Meta AI have made conversations with large language models (LLMs) commonplace, the future of AI lies in agents&#8212;sophisticated digital entities capable of knowing everything about us and acting on our behalf. Let&#8217;s dive into what makes up an AI agent and why privacy is a crucial component in their development.</p><h4>1. The Brain: The Core of AI Computation</h4><p>Every AI agent needs a "brain"&#8212;a system that processes and performs tasks for us. This brain is an amalgamation of various technologies:</p><ul><li><p><strong>Large Language Models (LLMs)</strong>: The foundation of most AI agents, these models are trained to understand and generate human-like responses.</p></li><li><p><strong>Fine-Tuning</strong>: A step further, where LLMs are tailored using personal data to offer more personalized and accurate outputs.</p></li><li><p><strong>Retrieval-Augmented Generation (RAG)</strong>: A method that smartly incorporates user data into the context window, helping the LLM access relevant personal information and provide more meaningful interactions.</p></li><li><p><strong>Databases</strong>: Both vector and traditional databases come into play, enabling the AI agent to store and retrieve vast amounts of information efficiently.</p></li></ul><p>The synergy of these technologies forms an AI's cognitive abilities, allowing it to generate intelligent and context-aware responses.</p><h4>2. The Heart: Data Integration and Personalization</h4><p>An AI agent's brain is only as good as the data it has access to. The "heart" of the AI agent is its data engine, which powers personalization. This engine requires access to various types of user data, such as:</p><ul><li><p><strong>Emails and Private Messages</strong>: Insights into communication preferences.</p></li><li><p><strong>Health Records and Activity Data</strong>: Information from fitness trackers or health apps like Apple Watch.</p></li><li><p><strong>Financial Records</strong>: Transaction histories and financial trends.</p></li><li><p><strong>Shopping and Transaction History</strong>: Preferences and past purchases for tailored shopping experiences.</p></li></ul><p>The more data an AI agent has, the better it can serve as a "digital twin," representing and anticipating user needs.</p><h4>3. The Limbs: Acting on Your Behalf</h4><p>For an AI agent to be genuinely useful, it must do more than just think and understand&#8212;it needs the capability to act. This means connecting to various services and APIs to:</p><ul><li><p><strong>Book Flights or Holidays</strong>: Manage travel arrangements autonomously.</p></li><li><p><strong>Order Services</strong>: Call for a ride, order groceries, or make appointments.</p></li><li><p><strong>Send Communications</strong>: Draft and send emails or messages on your behalf.</p></li></ul><p>To enable these capabilities, the agent must be seamlessly integrated with a wide array of digital services and platforms, with user consent being a critical aspect.</p><h4>4. Privacy and Security: The Final Piece</h4><p>As these agents become more capable and integrate deeply into our lives, ensuring privacy and security is paramount. The more data an agent holds, the more vulnerable it becomes to potential misuse. Here's why this matters:</p><ul><li><p><strong>Self-Sovereign Technologies</strong>: The ideal future of AI agent technology is built on decentralized and self-sovereign systems. These systems empower users as the sole owners of their data and AI computation.</p></li><li><p><strong>Guarding Against Big Tech Control</strong>: Companies like Google, Apple, and Microsoft already possess vast amounts of user data. Concentrating even more data into their control can lead to potential exploitation. A decentralized model prevents these corporations from having unrestricted access to personal AI agents, ensuring that only the user can access their private information.</p></li></ul><h4>Final Thoughts</h4><p>For AI agents to flourish and be trusted, they must be built on a foundation that respects user privacy and autonomy. In essence, a robust AI agent will consist of:</p><ul><li><p><strong>A Brain</strong>: Advanced AI computation.</p></li><li><p><strong>A Heart</strong>: A rich data engine powered by user data.</p></li><li><p><strong>Limbs</strong>: The ability to take action on behalf of the user.</p></li></ul><p>However, without strong privacy and security measures, these agents could pose significant risks. The future of AI agents hinges on creating a technology layer that preserves individual ownership, enforces privacy, and limits the control of major tech companies. By ensuring that only the agent&#8217;s owner can access its data, we set the stage for a safer, more empowering digital future.</p>]]></content:encoded></item><item><title><![CDATA[AI Builders! Join me at Devcon (and get early access to Verida AI)]]></title><description><![CDATA[I&#8217;ll be attending Devcon 2024 in Bangkok from the 9th of November.]]></description><link>https://www.chriswere.com/p/ai-builders-join-me-at-devcon-and</link><guid isPermaLink="false">https://www.chriswere.com/p/ai-builders-join-me-at-devcon-and</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Fri, 01 Nov 2024 00:13:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/lOMcAtLdNsA" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ll be attending <a href="https://devcon.org/en/">Devcon 2024</a> in Bangkok from the 9th of November.</p><p>If you are a builder, particularly in the AI space, Verida has just <a href="https://news.verida.network/verida-ai-whitelist-access-open-now-for-devcon-builders-cf59650289bf">announced exclusive early access for builders to try the Verida AI tools for AI builders</a>. You can <a href="https://verida.notion.site/12d9539274bc81bc8ab0ca08359451a5?pvs=105">register here</a>.</p><p>Here&#8217;s a snapshot of the Verida API&#8217;s for AI builders to access private user data:</p><div id="youtube2-lOMcAtLdNsA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;lOMcAtLdNsA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/lOMcAtLdNsA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Please reach out if you&#8217;re interested in learning more or keen to meet in person if you are also attending Devcon.</p><p>I&#8217;ll be attending a number of other relevant events over the week, including:</p><ul><li><p><a href="https://lu.ma/ysjjjaxa">Decentralized Data Summit</a></p></li><li><p><a href="https://lu.ma/3ohfalvn">FHE Summit</a></p></li><li><p><a href="https://lu.ma/dagisummit">dAGI Summit</a></p></li><li><p><a href="https://lu.ma/TheScaling2024BKK">Scaling DeAI Summit</a></p></li><li><p><a href="https://lu.ma/cambridgeAIWeb3">Cambridge Research: AI for Web3</a></p></li><li><p><a href="https://lu.ma/mvvkb8q9">Applied AI + Crypto Day</a></p></li><li><p><a href="https://lu.ma/4xglzrk8">Encryption Day: ZK, FHE &amp; MPC</a></p></li></ul><p>I look forward to meeting many of the members of the Verida community in person at Bangkok!</p><p></p>]]></content:encoded></item><item><title><![CDATA[[Part 3/3] Verida Technical Litepaper: Self-Sovereign Confidential Compute Network to Secure Private AI]]></title><description><![CDATA[This is the third and final post to release the &#8220;Verida Technical Litepaper: Self-Sovereign Confidential Compute Network to Secure Private AI&#8221;.]]></description><link>https://www.chriswere.com/p/part-33-verida-technical-litepaper</link><guid isPermaLink="false">https://www.chriswere.com/p/part-33-verida-technical-litepaper</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Mon, 02 Sep 2024 11:02:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cDCW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is the third and final post to release the &#8220;<em>Verida Technical Litepaper: Self-Sovereign Confidential Compute Network to Secure Private AI&#8221;. Read <a href="https://www.chriswere.com/p/part-13-verida-technical-litepaper">Part 1</a> and <a href="https://www.chriswere.com/p/part-23-verida-technical-litepaper">Part 2</a>.</em></p><div><hr></div><h1>Confidential Compute Nodes</h1><p>Confidential Compute Nodes running on the Verida Self-Sovereign Compute Network operate a web server within a secure enclave environment to handle compute requests and responses.</p><p>There will be different types of nodes (i.e., LLM, User API) that will have different code running on them depending on the service(s) they are providing.</p><p>For maximum flexibility, advanced users and developers will be able to run compute nodes locally, on any type of hardware.</p><p>Nodes have key requirements they must adhere to:</p><p><strong>GPU access</strong> is required for some compute nodes (i.e., LLM nodes), but not others. As such, the hardware requirements for each node will depend on the type of compute services running on the node.</p><p><strong>Code Verifiability</strong> is critical to ensure trust in the compute and security of user data. Nodes must be able to attest the code they are running has not been tampered with.</p><p><strong>Upgradability</strong> is essential to keep nodes current with the latest software versions, security fixes and other patches. Coordination is required to ensure applications can ensure their code is running on the latest node versions.</p><p><strong>API endpoints</strong> are the entry point for communicating with nodes. It&#8217;s essential a web server host operates within the secure enclave to communicate with the outside world.</p><p><strong>SSL termination</strong> must occur within the secure enclave to ensure the host machine can&#8217;t access API requests and responses.</p><p><strong>Resource restraints</strong> will exist on each node (i.e., CPU, memory) that will limit the number of active requests they can handle. The network and nodes will need to coordinate this to ensure nodes are selected that have sufficient resources available to meet any given request.</p><h1>Interoperability and Extensibility</h1><p>In order to create an efficient and highly interoperable ecosystem of self-sovereign API&#8217;s, it's necessary to have a set of common data standards. Verida&#8217;s self-sovereign database storage network provides this necessary infrastructure via guaranteed <a href="https://developers.verida.network/docs/concepts/schemas">data schemas within encrypted datasets</a>, providing a solid foundation for data interoperability.</p><p>Developers can build new self-sovereign compute services that can be deployed on the network and then used by other services. This provides an extensible ecosystem of API&#8217;s that can all communicate with each other to deliver highly complex solutions for end users.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cDCW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cDCW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!cDCW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!cDCW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!cDCW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cDCW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png" width="960" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cDCW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!cDCW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!cDCW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!cDCW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6d12b10-27ed-45ec-8845-113a57bc31bd_960x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Figure 4: Interoperable data between self-sovereign AI services</em></p><p>Over time, we expect a marketplace of private AI products, services and APIs to evolve.</p><h3>Service Discovery</h3><p>Verida&#8217;s self-sovereign compute network will enable infrastructure operators to deploy and register a node of a particular service type. When an API needs to send a request to one of those service types, it can perform a &#8220;service lookup&#8221; on the Verida network to identify a suitable trusted, verifiable node it can use to send requests of the required service type.</p><h3>User Data Security Guarantees</h3><p>It is essential to protect user privacy within the ecosystem and prevent user data leaking to non-confidential compute services outside the network. Each service deployed to the network will be running verifiable code, running on verifiable confidential compute infrastructure.</p><p>In addition, each service will only communicate with other self-sovereign compute services. Each API request to another self-sovereign compute service will be signed and verified to have been transmitted by another node within the self-sovereign network.</p><h1>Tokenized Payment</h1><p>The VDA token will be used for payment to access self-sovereign compute services. A more detailed economic model will be provided, however the following key principles are expected to apply.</p><p><strong>End users</strong> will pay on a &#8220;per-request&#8221; basis to send confidential queries to compute nodes and the services they operate. The cost per request will be calculated in a standardized fashion that balances the computation power of a node, memory usage and request time. Applications can sponsor the request fees on behalf of the user and then charge a subscription fee to cover the cost, plus profit, much like a traditional SaaS model.</p><p><strong>Node operators</strong> will be compensated for providing the confidential compute infrastructure to Verida&#8217;s Self-Sovereign Compute Network.</p><p><strong>Builders</strong> of services (i.e., AI Prompts and Agents) will be able to set an additional fee for using their compute services, above and beyond the underlying &#8220;per-request&#8221; compute cost. This open marketplace for AI Agents and other tools drives innovation and provides a seamless way for developers to generate revenue from the use of their intellectual property.</p><p><strong>Verida Network </strong>will charge a small protocol fee (similar to a blockchain gas fee) on compute fees.</p><h1>Other Use Cases</h1><h2>Data Training Marketplaces</h2><p>Verida&#8217;s Private Data Bridge allows users to reclaim their private data from platforms such as Meta, Google, X, email, LinkedIn, Strava, and much more.</p><p>Users on the Verida network could push their personal data into a confidential compute service that anonymizes their data (or generates synthetic data) which is made available to various AI data marketplaces. This provides an option for users to monetize their data, without risk of data leakage, while unlocking highly valuable and unique datasets such as private messages, financial records, emails, healthcare data for training purposes.</p><h2>Managed Crypto Wallets</h2><p>There is a vast array of managed wallet services available today that offer different trade-offs between user experience and security.</p><p>Having an always available cloud service that can protect user&#8217;s private keys, but still provide multiple authorization methods for a user is extremely useful to onboard new users and provide additional backup protection measures for existing users.</p><p>Such a managed wallet service becomes rather trivial to build and deploy on the Verida self-sovereign compute network.</p><h2>Verifiable Credentials</h2><p>Verida has extensive experience working with decentralized identity and verifiable credential technology, in combination with many ecosystem partners.</p><p>There is a significant pain point in the industry, whereby developers within credential ecosystems are required to integrate many disparate developer SDK&#8217;s to offer an end-to-end solution. This is due to the self-sovereign nature of credentials and identity solutions where a private key must be retained on end user devices to facilitate end-to-end security.</p><p>Verida&#8217;s self-sovereign compute network can provide a viable alternative, whereby application developers can replace complex SDK integrations with simple self-sovereign APIs. This makes integration into mobile applications (such as identity wallets) and traditional web applications much easier, simpler and viable.</p><p>This could be used to provide simple API integrations to enable:</p><ol><li><p>Identity wallets to obtain access to a user&#8217;s verifiable credentials</p></li><li><p>End users to pre-commit selective disclosure rules for third party applications or identity wallets, without disclosing their actual credentials</p></li><li><p>Provide trusted, verifiable universal resolvers</p></li><li><p>Trust registry APIs</p></li></ol><p>Any complex SDK that requires a user&#8217;s private key to operate, could be deployed as a micro service on Verida&#8217;s self-sovereign compute network to provide a simpler integration and better user experience.</p><h1>Conclusion</h1><p>Verida's mission to empower individuals with control over their data continues to drive our innovations as we advance our infrastructure. This Litepaper outlines how the Verida Network is evolving from decentralized, privacy-preserving databases to include decentralized, privacy-preserving compute capabilities, addressing critical issues in AI data management and introducing valuable new use cases for user-controlled data.</p><p>As AI faces mounting challenges with data quality, privacy, and transparency, Verida is at the forefront of addressing these issues. By expanding our network to support privacy-preserving compute, we enable the more effective safeguarding of private data while allowing it to be securely shared with with leading AI models. This approach ensures end-to-end privacy and opens the door to hyper-personalized and secure AI experiences.</p><p>Our solution addresses three fundamental problems: enabling user access to their private data, providing secure storage and sharing, and ensuring confidential computation. Verida's "Private Data Bridge" allows users to securely reclaim and manage their data from various platforms and facilite its use in personalized AI applications without compromising privacy.</p><p>While we are not focusing on decentralized AI model training or distributed inference, Verida is committed to offering high-performance, secure, and trusted infrastructure for managing private data. We are collaborating with partners developing private AI agents, AI data marketplaces, and other privacy-centric AI solutions, paving the way for a more secure and private future in AI. This empowers users to be confident about the ways their data is used, and receive compensation when they do choose to share elements of their personal data.</p><p>You can learn more or get involved at <a href="https://www.verida.network/">https://www.verida.network/</a></p>]]></content:encoded></item><item><title><![CDATA[[Part 2/3] Verida Technical Litepaper: Self-Sovereign Confidential Compute Network to Secure Private AI]]></title><description><![CDATA[This is the second of three posts over the next three weeks to release the &#8220;Verida Technical Litepaper: Self-Sovereign Confidential Compute Network to Secure Private AI&#8221;.]]></description><link>https://www.chriswere.com/p/part-23-verida-technical-litepaper</link><guid isPermaLink="false">https://www.chriswere.com/p/part-23-verida-technical-litepaper</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Tue, 27 Aug 2024 10:24:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AU-q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is the second of three posts over the next three weeks to release the &#8220;<em>Verida Technical Litepaper: Self-Sovereign Confidential Compute Network to Secure Private AI&#8221;. <a href="https://www.chriswere.com/p/part-13-verida-technical-litepaper">Read Part 1</a>.</em></p><div><hr></div><h1>Confidential Compute</h1><p>A growing number of confidential compute offerings are being offered by the large cloud providers that provide access to Trusted Execution Environments (TEEs). These include: AWS Nitro, Google Confidential Compute and Azure Confidential Compute. Tokenized confidential compute offerings such as <a href="https://www.marlin.org/">Marlin Oyster</a> and <a href="https://superprotocol.com/">Super Protocol</a> have also emerged recently.</p><p>These compute offerings typically allow a container (such as a Docker instance) to be deployed within a secure enclave on secure TEE hardware. The enclave has a range of verification and security measures that can prove that both the code and the data running in the enclave is the code you expect and that the enclave has been deployed in a tamper-resistant manner.</p><p>There are some important limitations to these secure enclaves, namely:</p><ol><li><p>There is no direct access available to the enclave from the infrastructure operator<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. Communication occurs via a dedicated virtual socket between the secure enclave and the host machine.</p></li><li><p>There is no disk storage available, everything must be stored in RAM.</p></li><li><p>Direct GPU access is typically not available within the secure enclave (necessary for high performance LLM training and inference), however this capability is expected to be available in early 2025.</p></li></ol><p>The Verida network is effectively a database offering high performance data synchronization and decryption. While secure enclaves do not have local disk access (by design), it is possible to give a secure enclave a private key, enabling the enclave to quickly download user data, load it into memory and perform operations.</p><p>While enclaves do not have direct access to the Internet, it is possible to facilitate secure socket connections between the host machine and enclave to &#8220;proxy&#8221; web requests to the outside world. This increases the surface area of possible attacks on the security of the enclave, but is also a necessary requirement for confidential compute that interacts with other web services.</p><p>It is critical that confidential AI inference for user prompts has a fast response time to ensure a high quality experience for end users. Direct GPU access via confidential compute is most likely necessary to meet these requirements. Access to GPUs with TEEs is currently limited, however products such as the <a href="https://developer.nvidia.com/blog/confidential-computing-on-h100-gpus-for-secure-and-trustworthy-ai/">NVIDIA H100</a> offer these capabilities and these capabilities will be made available for use within the Verida network in due course.</p><h1>Self-Sovereign Compute</h1><p>Verida offers a self-sovereign compute infrastructure stack that exists on top of confidential compute infrastructure.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AU-q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AU-q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!AU-q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!AU-q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!AU-q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AU-q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png" width="960" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3061ce2e-b401-46fd-b334-45613c965914_960x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AU-q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!AU-q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!AU-q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!AU-q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3061ce2e-b401-46fd-b334-45613c965914_960x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Figure 1: Self-Sovereign Compute Architecture</em></p><p>The self-sovereign compute infrastructure provides the following guarantees:</p><ol><li><p>User data is not accessible by infrastructure node operators.</p></li><li><p>Runtime code can be verified to ensure it is running the expected code.</p></li><li><p>Users are in complete control over their private data and can grant / revoke access to third parties at any time.</p></li><li><p>Third-party developers can build and deploy code that will operate on user data in a confidential manner.</p></li><li><p>Users are in complete control over the compute services that can operate on their data and can grant / revoke access to third parties at any time.</p></li></ol><p>There are two distinct types of compute that have different infrastructure requirements; Stateless Confidential Compute and Stateful Confidential Compute.</p><h2>Stateless (Generic) Confidential Compute</h2><p>This type of computation is stateless, it retains no user data between API requests. However, it can request user data from other APIs and process that user data in a confidential manner.</p><p>Here are some examples of Generic Stateless Compute that would operate on the network.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bcYX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bcYX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png 424w, https://substackcdn.com/image/fetch/$s_!bcYX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png 848w, https://substackcdn.com/image/fetch/$s_!bcYX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png 1272w, https://substackcdn.com/image/fetch/$s_!bcYX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bcYX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png" width="1440" height="1156" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1156,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bcYX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png 424w, https://substackcdn.com/image/fetch/$s_!bcYX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png 848w, https://substackcdn.com/image/fetch/$s_!bcYX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png 1272w, https://substackcdn.com/image/fetch/$s_!bcYX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0428c61f-fbd0-4ea3-9438-1353615fed64_1440x1156.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Figure 2: Verida Personal Data Bridge</em></p><p><strong>Private Data Bridge</strong> facilitates users connecting to third-party platform APIs (ie: Meta, Google, Amazon, etc.). These nodes must operate in a confidential manner as they store API secrets, handle end user access / refresh tokens to the third-party platforms, pull sensitive user data from those platforms, and then use private user keys to store that data in users&#8217; private databases on the Verida network.</p><p><strong>LLM APIs</strong> accept user prompts that contain sensitive user data, so they must operate in a confidential compute environment.</p><p><strong>AI APIs</strong> such as AI prompt services and AI agent services provide the &#8220;glue&#8221; to interact between user data and LLMs. An AI service can use the User Data APIs (see below) to directly access user data. This enables it to facilitate retrieval-augmented generation (RAG) via the LLM APIs, leveraging user data. These APIs may also save data back to users&#8217; databases as a result of a request (i.e., saving data into a vector database for future RAG queries).</p><p>See <a href="https://www.chriswere.com/i/147906865/self-sovereign-ai-interaction-model">Self-Sovereign AI Interaction Model</a> for a breakdown of how these generic compute services can interact together to provide AI services on user data.</p><h2>Stateful (User) Confidential Compute</h2><p>This type of computation is stateful, where user data remains available (in memory) for an extended period of time. This enhances performance and, ultimately, the user experience for end users.</p><p>A User Data API will enable authorized third party applications (such as private AI agents) to easily and quickly access decrypted private user data. It is assumed there is a single User Data API, however in reality it is likely there will be multiple API services that operate on different infrastructure.</p><p>Here are some examples of the types of data that would be available for access:</p><ol><li><p>Chat history across multiple platforms (Telegram, Signal, Slack, Whatsapp, etc.)</p></li><li><p>Web browser history</p></li><li><p>Corporate knowledge base (ie: Notion, Google Drive, etc)</p></li><li><p>Emails</p></li><li><p>Financial transactions</p></li><li><p>Product purchases</p></li><li><p>Health data</p></li></ol><p>Each of these data types have different volumes and sizes, which will also differ between users. It&#8217;s expected the total storage required for an individual user would be somewhere between 100MB and 2GB, whereas enterprise knowledge bases will be much larger.</p><p>In the first phase, the focus will be on structured data, not images or videos. This aligns with Verida&#8217;s existing storage node infrastructure that provides and aids the development of a first iteration of data schemas for AI data interoperability.</p><p>The User Data API exposes endpoints to support the following data services:</p><ol><li><p>Authentication for decentralized identities to connect their account to a User Data API Node</p></li><li><p>Authentication to obtain access and refresh tokens for third-party applications</p></li><li><p>Database queries that execute over a user&#8217;s data</p></li><li><p>Keyword (ie: Lucene) search over a user&#8217;s data</p></li><li><p>Vector database search over a user&#8217;s data</p></li></ol><h3>Connecting Stateful Compute to Decentralized Identities</h3><p>Third party applications obtain an access token that allows scoped access to user data, based on the consent granted by the user.</p><p>A decentralized identity on the Verida network can authorize three or more self-sovereign compute nodes on the network, to manage access to their data for third-party applications. This is via the serviceEndpoint capability on the identity&#8217;s DID Document. This operates in the same way that the current Verida database storage network allocates storage nodes to be responsible for user data.</p><p>Secure enclaves have no disk access, however user data is available (encrypted) on the Verida network and can be synchronized on demand given the appropriate user private key. It&#8217;s necessary for user data to be &#8220;hot loaded&#8221; when required which involves synchronizing the encrypted user data from the Verida network, decrypting it, storing it in memory and then adding other metadata (i.e., search indexes). This occurs when an initial API request is made, ensuring user data is ready for fast access for third-party applications.</p><p>After a set period of time of inactivity (i.e., 1 hour) the user data will be unloaded from memory to save resources on the underlying compute node. In this way, a single User Data API node can service requests for multiple decentralized identities at once.</p><p>It will be necessary to ensure &#8220;hot loading&#8221; is fast enough to minimize the first interaction time for end users. It&#8217;s also essential these compute nodes have sufficient memory to load data for multiple users at once. Verida has developed an internal proof-of-concept to verify the &#8220;hot loading&#8221; concept with user data will be a viable solution.</p><p>For enhanced privacy and security, the data and execution for each decentralized identity will operate in an isolated VM within the secure enclave of the confidential compute node.</p><div><hr></div><p>Stay tuned, the third and final release of the Litepaper will be made available next week.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>&nbsp;In some instances the infrastructure operator controls both the hardware attestation key and the cloud infrastructure which introduces security risks that need to be carefully worked through, but is outside the scope of this document.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[[Part 1/3] Verida Technical Litepaper: Self-Sovereign Confidential Compute Network to Secure Private AI]]></title><description><![CDATA[Verida&#8217;s mission has always been clear: empower individuals to own and control their data. Now, we&#8217;re taking it further.]]></description><link>https://www.chriswere.com/p/part-13-verida-technical-litepaper</link><guid isPermaLink="false">https://www.chriswere.com/p/part-13-verida-technical-litepaper</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Tue, 20 Aug 2024 10:35:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is the first of three posts over the next three weeks to release the &#8220;<em>Verida Technical Litepaper: Self-Sovereign Confidential Compute Network to Secure Private AI&#8221;</em></p><div><hr></div><h1>Introduction</h1><p>Verida&#8217;s mission has always been clear: empower individuals to own and control their data. Now, we&#8217;re taking it further.</p><p>This Technical Litepaper presents a high-level outline of how the Verida Network is growing beyond decentralized, privacy preserving databases, to support decentralized, privacy-preserving compute optimized for handling private data. There are <a href="https://www.chriswere.com/p/top-three-data-privacy-issues-facing">numerous privacy issues currently facing AI</a> that <a href="https://www.chriswere.com/p/how-web3-and-depin-solves-ais-data">web3 and decentralized physical infrastructure networks</a> can <a href="https://news.verida.io/verida-is-enabling-the-privacy-preserving-ai-tech-stack-7e9558f822f3">help solve</a>. From Verida&#8217;s perspective, this represents an expansion of our mission from allowing individuals to control their data to introducing new and powerful ways for users to benefit from their data.</p><h2>Current AI Data Challenges</h2><p><strong>We are running out of high-quality data to train LLMs</strong></p><p>Public internet data has been scraped and indexed by AI models, with researchers estimating that by 2026, we will exhaust high-quality text data for training LLMs. Next, we need to access private data, but it&#8217;s hard and expensive to access.</p><p><strong>Private enterprise and personal AI agents need to access private data</strong></p><p>There is a lot of excitement around the next phase of AI beyond chat prompts. Digital twins or personal AI agents that know everything about us and support every aspect of our professional and personal lives. However, to make this a reality AI models need access to private, real time context-level user data to deliver more powerful insights and a truly personalized experience.</p><p><strong>Existing AI platforms are not private</strong></p><p>The mainstream infrastructure providers powering the current generation of AI products have full access to prompts and training data, putting sensitive information at risk.</p><p><strong>AI trust and transparency is a challenge</strong></p><p>Regulation is coming to AI and it will become essential that AI models can prove the training data was high quality, ethically sourced. This is critical to reduce bias, misuse and improve safety in AI.</p><p><strong>Data creators aren&#8217;t being rewarded</strong></p><p>User-owned data is a critical and valuable resource for AI and those who create the data should benefit from its use. Reddit recently sold user data for $200M, while other organizations&nbsp; have reached similar agreements. Meta is training its AI models on user data from some countries, but excluding European users due to GDPR preventing them from doing so without user consent.</p><h2>Verida&#8217;s Privacy Preserving Infrastructure</h2><p>Verida has already developed the leading private decentralized database storage infrastructure (see <a href="https://verida.network/whitepaper">Verida Whitepaper</a>) which provides a solid foundation to address the current AI data challenges.</p><p>Expanding the Verida network to support privacy-preserving compute enables private, encrypted data to be integrated with leading AI models, ensuring end-to-end privacy, safeguarding data from model owners. This will unlock a new era of hyper-personal and <em>safe</em> AI experiences.</p><p>AI services such as ChatGPT have full access to any information users supply and have already been known to leak sensitive data. By enabling model owners access to private data, there is increased risks of data breaches, imperiling privacy, and ultimately limiting AI use cases.</p><p>There are three key problems Verida is solving to support secure private AI:</p><ol><li><p><strong>Data Access:</strong> Enabling users to extract and store their private data from third party platforms for use with emerging AI prompts and agents.</p></li><li><p><strong>Private Storage and Sharing:</strong> Providing secure infrastructure allowing user data to be discoverable, searchable and accessible with user-consent to third party AI platforms operating within verifiable confidential compute environments.</p></li><li><p><strong>Private Compute: </strong>Provide a verifiable, confidential compute infrastructure enabling agentic AI computation to securely occur on sensitive user data.</p></li></ol><p>Supporting the above tasks, Verida is building a &#8220;Private Data Bridge&#8221;, allowing users to reclaim their data and use it within a new cohort of personalized AI applications. Users can pull their private data from platforms such as Google, Slack, Notion, email providers, LinkedIn, Amazon, Strava, and much more. This data is encrypted and stored in a user-controlled private data Vault on the Verida network.</p><p>It&#8217;s important to note that Verida is not building infrastructure for decentralized AI model training, or distributed AI inference. Rather, Verida&#8217;s focus is on providing a high performance, secure, trusted and verifiable infrastructure suitable for managing private data appropriate for AI use cases.</p><p>We have relationships with third parties that are building; private AI agents, AI data marketplaces and other privacy-centric AI use cases.</p><h2>Comparing Current AI Solutions</h2><p>AI solutions can be deployed primarily through two methods: cloud-based/hosted services or on local machines.</p><p>Cloud-based AI services, while convenient and scalable, expose sensitive user data to potential risks, as data processing occurs on external servers and may be accessible to third parties.</p><p>In contrast, local AI environments offer enhanced security, ensuring that user data remains isolated and inaccessible to other applications or external entities. However, local environments come with significant limitations, including the need for technical expertise that is not available to the majority of users. Moreover, these environments often face performance challenges; for instance, running large language models (LLMs) on standard consumer hardware is typically impractical due to the high computational demands.</p><p>Verida&#8217;s Confidential Storage and Compute infrastructure offers alternatives to these approaches.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fGLH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fGLH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png 424w, https://substackcdn.com/image/fetch/$s_!fGLH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png 848w, https://substackcdn.com/image/fetch/$s_!fGLH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png 1272w, https://substackcdn.com/image/fetch/$s_!fGLH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fGLH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png" width="561" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:561,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:76336,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fGLH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png 424w, https://substackcdn.com/image/fetch/$s_!fGLH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png 848w, https://substackcdn.com/image/fetch/$s_!fGLH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png 1272w, https://substackcdn.com/image/fetch/$s_!fGLH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb885209e-cee5-40cd-bf6a-7fb46e3e400a_561x450.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Apple has recently announced <a href="https://security.apple.com/blog/private-cloud-compute/">Private Cloud Compute</a> that provides a hybrid local + secure cloud approach. AI processing occurs on a local device (ie: mobile phone) by default, then when additional processing power is required, the request is offloaded to Apple&#8217;s servers that are operating within a trusted execution environment. This is an impressive offering that is focused on solving important security concerns relating to user data and AI. However, it is centralized, only available to Apple devices and puts significant trust in Apple as they control both the hardware and attestation keys.</p><h1>Self-Sovereign AI Interaction Model</h1><p>Let&#8217;s look at what an ideal model of confidential AI architecture looks like. This is an interaction model of how a basic &#8220;Self-Sovereign AI&#8221; chat interface, using a RAG-style approach, would operate in an end-to-end confidential manner.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yO8n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yO8n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!yO8n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!yO8n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!yO8n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yO8n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png" width="960" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yO8n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!yO8n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!yO8n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!yO8n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd49ff1ba-4d5c-4bb4-a4ee-e76576de9f01_960x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Figure 3: Self-Sovereign AI Interaction Model</em></p><p>The <strong>End User Application </strong>in this example will be a &#8220;Chat Prompt&#8221; application. A user enters a prompt (i.e., &#8220;<em>Summarize the conversation I had with my mates about the upcoming golf trip</em>&#8221;).</p><p>A <strong>Private AI API </strong>endpoint<strong> </strong>(AI Prompt) receives the chat prompt and breaks down the request. It sends a prompt to the <strong>LLM</strong>, converting the original prompt into a series of search queries. The <strong>LLM</strong> could be an open source or proprietary model. Due to the confidential nature of the secure enclave, proprietary models could be deployed without risk of IP theft by the model owner.</p><p>The search queries are sent to the <strong>User Data API</strong> which has access to data previously obtained via Verida&#8217;s <strong>Private Data Bridge</strong>. This data includes emails, chat message histories and much more.</p><p>The <strong>Private AI API </strong>collates the search query results and sends the relevant responses and original prompt to the <strong>LLM</strong> to produce a final result that is returned to the user.</p><p>Verida is currently developing a &#8220;showcase&#8221; AI agent that implements this architecture and can provide a starting point for other projects to build their own confidential private AI products.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.chriswere.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to be notified when part 2 is released:</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.chriswere.com/p/part-13-verida-technical-litepaper?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.chriswere.com/p/part-13-verida-technical-litepaper?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p>]]></content:encoded></item><item><title><![CDATA[Dynamic loading of personal data for realtime AI]]></title><description><![CDATA[A breakdown of my latest progress making personal data available for AI use cases]]></description><link>https://www.chriswere.com/p/dynamic-loading-of-personal-data</link><guid isPermaLink="false">https://www.chriswere.com/p/dynamic-loading-of-personal-data</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Tue, 23 Jul 2024 10:27:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MaWg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>At <a href="https://verida.network/">Verida</a>, We are working rapidly towards enabling personal data to be connected to AI for training and inference, in an end-to-end privacy preserving manner.</p><p>One of the questions to answer is how fast can data, stored in a decentralized database storage network like Verida, be made available to a personal AI agent. This is a critical question as huge time lags will create a poor user experience, making any personal AI products unviable.</p><p>There are many ways to use AI to communicate with data, however in this case we are assuming a Retrieval-Augmented Generation (RAG) approach.</p><h2>Dynamic User Data Queries</h2><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MaWg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MaWg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png 424w, https://substackcdn.com/image/fetch/$s_!MaWg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png 848w, https://substackcdn.com/image/fetch/$s_!MaWg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png 1272w, https://substackcdn.com/image/fetch/$s_!MaWg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MaWg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png" width="1456" height="1019" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1019,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:319838,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MaWg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png 424w, https://substackcdn.com/image/fetch/$s_!MaWg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png 848w, https://substackcdn.com/image/fetch/$s_!MaWg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png 1272w, https://substackcdn.com/image/fetch/$s_!MaWg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8287a504-3d68-422d-a7b8-13403c520f2a_1706x1194.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The current architecture we are researching involves a &#8220;User Data API&#8221; that unlocks personal data stored (encrypted) on the Verida network, decrypts the data and then makes it available to AI agents and large language models (LLM&#8217;s) on demand.</p><p>This poses key latency questions:</p><ol><li><p>What is the latency to fetch encrypted data from the network?</p></li><li><p>What is the latency to decrypt the data and make it queryable?</p></li><li><p>What is the latency to make the data searchable via Lucene style search queries?</p></li></ol><p>While (3) isn&#8217;t absolutely necessary, at this stage it seems reasonable to assume a Lucene style search is a powerful tool to allow fast, flexible search queries across user data.</p><h2>Test Setup</h2><p>I used an early version of the <a href="https://news.verida.io/building-a-personal-data-bridge-to-enable-personal-ai-0b5dde3e0f09">Verida Personal Data Bridge</a> (<a href="https://github.com/verida/data-connector-server">source code</a>) to pull my most recent 4,000 emails. This resulted in 250MB of raw database data (including PDF attachments converted to text), which became 330MB once database indexes were included.</p><p>I then ran the <a href="https://github.com/verida/user-data-api/tree/feature/2-lucene-support">Verida User Data API</a> to hit the search endpoint that searches all my data matching the email schema (https://common.schemas.verida.io/social/email/v0.1.0/schema.json):<br><br>http://localhost:5022/search/ds/aHR0cHM6Ly9jb21tb24uc2NoZW1hcy52ZXJpZGEuaW8vc29jaWFsL2VtYWlsL3YwLjEuMC9zY2hlbWEuanNvbg===?q=name:Luca</p><p>For testing purposes, the <em>Personal Data Bridge<strong> </strong></em>and <em>User Data API</em> are running locally on my Macbook Pro. The Verida account is on the <em>Banksia</em> testnet, connected to a <em>Storage Node</em> running on my local machine.</p><h2>Test Results</h2><p>Here&#8217;s the timed output from this initial set of tests:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C86a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C86a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png 424w, https://substackcdn.com/image/fetch/$s_!C86a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png 848w, https://substackcdn.com/image/fetch/$s_!C86a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png 1272w, https://substackcdn.com/image/fetch/$s_!C86a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C86a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png" width="1456" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:268258,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!C86a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png 424w, https://substackcdn.com/image/fetch/$s_!C86a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png 848w, https://substackcdn.com/image/fetch/$s_!C86a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png 1272w, https://substackcdn.com/image/fetch/$s_!C86a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ecf00a4-75c9-4be3-b09f-e52eb23ae036_1848x1076.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Latency</h3><p>Making a /<em>search</em> request involves the following time sensitive operations:</p><ol><li><p>Time to sync encrypted user data from the Verida network to the local machine</p></li><li><p>Time to decrypt the user data into a decrypted database</p></li><li><p>Time to load all records from the decrypted database into memory</p></li><li><p>Time to load all data into an in memory Lucene index and query it</p></li></ol><p>The screenshot shows three requests running over 4,000 of my personal emails.</p><p><strong>Request 1</strong></p><p>The first request took 3m 41s to complete steps 1,2,3.</p><p>Step 4 took an incredibly fast 38 ms.</p><p><strong>Request 2</strong></p><p>The second request used a cached copy of the Lucene index so only needed to complete step 4, again returning results in 38 ms.</p><p><strong>Request 3</strong></p><p>For the third request, I shut down the server, which cleared the in memory Lucene cache.</p><p>This request didn&#8217;t need to complete step 1. It completed steps 2 and 3 in 34s and generated the Lucene results in 26ms.</p><p><em>Note: Step 1 is actually pulling data from a Storage Node running on my local machine, not the network itself. As such step 1 is a bit faster than real world usage which would have this code running in data centres with fast pipes.</em></p><h3>Memory</h3><p>The baseline memory usage of the <em>User Data API</em> server is (bytes):</p><pre><code>{
    "rss": 115982336,
    "heapTotal": 36827136,
    "heapUsed": 33001104,
    "external": 2117266,
    "arrayBuffers": 54788
}</code></pre><p>After loading the data in-memory (bytes):</p><pre><code>{
    "rss": 772591616,
    "heapTotal": 362926080,
    "heapUsed": 351119608,
    "external": 2156712,
    "arrayBuffers": 82355
}</code></pre><p>This shows an increase in memory usage for the process from a baseline of 115MB to 772MB.</p><h2>Discussion</h2><p>Here&#8217;s a breakdown of the learnings and a discussion on each.</p><p>It&#8217;s important to note that this infrastructure is intended to be run within secure enclaves to guarantee end-to-end privacy of user data. As it currently stands, secure enclaves only support in-memory storage, with no access to long term physical disk storage.</p><h3>Latency</h3><p>These are roughly extrapolated times for each step:</p><p><strong>Step 1: </strong>Sync encrypted data: ~3 minutes</p><p><strong>Step 2 &amp; 3: </strong>Locally decrypt data and load into memory: ~34 seconds</p><p><strong>Step 4: </strong>Load data into Lucene and run query: 34 milliseconds</p><p>The time to query the data is incredibly fast at 34ms, which is a huge positive.</p><p>However, the time to load the data in Step 1 is a blocker to a great user experience. That being said, this step only needs to occur once for any given server.</p><p>Under the Verida model of using decentralized identifiers, each Verida account will specify specific confidential compute nodes to act on their behalf. These nodes can sync this data once and then receive regular updates (using the Verida network real-time sync capabilities), keeping it up-to-date at all times.</p><p>The 34 seconds to decrypt and load into memory only needs to happen when the <em>User Data API</em> doesn&#8217;t have user data in it&#8217;s memory cache. This will happen when; 1) The server starts for the first time, or 2) If the cache is cleared (likely to happen after a period of inactivity for a user). </p><p>In reality, there may be a 30 second delay for this load process when a user makes their first request and then all subsequent requests should be very fast. Better hardware will drastically improve this load time.</p><h3>Memory Usage</h3><p>Memory usage ballooned from 115MB to 772MB, an increase of 657MB. The raw uncompressed data (stored in memory database) was 330MB including indexes.  657MB is almost exactly 2x330MB which makes sense, because the data is actually loaded into memory twice. One copy is an in-memory database, the second copy is an in-memory Lucene database.</p><p>It&#8217;s quite possible the Lucene search service proves to be more useful than the in-memory database, allowing it to be dropped and halving that memory usage.</p><p>A future piece of work is to investigate running Lucene locally within the secure enclave, instead of storing in-memory. This would potentially eliminate the 30 second load time and significantly reduce the memory usage of the <em>User Data API </em>server.</p><h3>4,000 emails?</h3><p>Our vision is to enable AI to access all your digital data; email history, message history from chat platforms, search and browser history, health care data, financial records and more. That obviously requires a lot more than the 330MB of data used in this example.</p><p>The <em>Personal Data Bridge</em> supports pulling Facebook page likes and posts. I have pulled down over 3,000 facebook posts (excluding images and videos) which was less than 10MB.</p><p>We are still learning the volume of data for each dataset as we connect more sources to the <em>Personal Data Bridge</em>, but it&#8217;s probably safe to assume that email will be the largest data set for most people.</p><p>In my case 4,000 emails represented just 2 months of one of my multiple inboxes. The vast majority of those messages are junk / spam that I never intend to read. It may be sensible to add an additional processing layer over the data to eliminate emails that aren&#8217;t worth indexing. This will save memory and reduce time.</p><p>Extending that idea further, there will likely be a need to build additional metadata based on your personal data to help AI assistants to quickly know more about you. For example, you can enable a LLM to search your email and social media history to create a profile for you; age, gender, family, income, food preferences and much more. This is incredibly useful context to help guide any personal AI assistant, when combined with conducting real time search queries for specific prompts.</p><h2>Where next?</h2><p>The current focus is getting an end-to-end solution that can be run on a local machine to connect your personal data to AI LLM&#8217;s.</p><p>While there are some performance bottlenecks mentioned above that could be investigated further, there is nothing that is an obvious blocker.</p><p>To that end, the next key priority is to be able to write a prompt (ie: <em>Create a haiku of the conversation I had with my Mum about Mars</em>) and have it sent to a locally running LLM (ie: Llama3) that has access to user data via the Lucene index to produce a meaningful result.</p>]]></content:encoded></item><item><title><![CDATA[Verida is enabling the privacy preserving AI tech stack]]></title><description><![CDATA[The Verida Network provides storage infrastructure perfect for AI solutions and the upcoming data connector framework will create a new data economy that benefits end users]]></description><link>https://www.chriswere.com/p/verida-is-enabling-the-privacy-preserving</link><guid isPermaLink="false">https://www.chriswere.com/p/verida-is-enabling-the-privacy-preserving</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Fri, 19 Apr 2024 05:40:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OVtq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OVtq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OVtq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!OVtq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!OVtq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!OVtq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OVtq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OVtq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!OVtq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!OVtq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!OVtq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5e2c4e-8503-41df-a911-d21e8aeec33a_1600x800.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This post is part of a Privacy / AI series. See <a href="https://www.chriswere.com/p/top-three-data-privacy-issues-facing">Part 1: Top Three Data Privacy Issues Facing AI Today</a> and <a href="https://www.chriswere.com/p/how-web3-and-depin-solves-ais-data">Part 2: How web3 and DePIN solves AI&#8217;s data privacy problems</a>.</p><p><a href="https://www.verida.network/">Verida</a> is providing key infrastructure that will underpin the next generation of the privacy preserving AI technology stack. The Verida Network provides private storage, sources of personal data and expandable infrastructure to make this future a reality.</p><p>Let&#8217;s dive into each of these areas in more detail.</p><h2><strong>Private storage for personal AI models</strong></h2><p>The Verida network is designed for storing private, personal data. It is a <a href="https://news.verida.io/revolutionizing-web3-storage-a-deep-dive-into-ipfs-and-verida-dbstore-7a15745dd118">highly performant, low cost, regulatory compliant solution</a> for storing structured database data for any type of application.</p><p>Data stored on the network is protected with a user&#8217;s private key, ensuring they are the only account that can request access to, and encrypt their data (unless they provide permission to another account).</p><p>This makes the Verida Network ideal for storing private AI models for end users. The network&#8217;s high performance (leveraging P2P web socket connections), makes it suitable for high speed read / write applications such as training LLMs.</p><h2><strong>Source of data for training AI models</strong></h2><p>We&#8217;ve all heard the saying &#8220;garbage in, garbage out&#8221; when it comes to data. This also applies to training AI models. They are only as good as the data they are fed for training purposes.</p><p>The Verida ecosystem provides a broad range of capabilities that make it ideally suited to being a primary source of highly valuable data for training AI models.</p><p>Verida has been developing an API data connector framework that enables users to easily connect to existing API&#8217;s of centralized platforms and claim their personal data, that they can securely store on the Verida network.</p><p>Users on the Verida network will be able to pull health activity data from the likes of Strava and Fitbit. They can pull their private messages from chat platforms, their data from Google and Apple accounts. This can all then be leveraged to train AI models for exclusive use by the user, or that data can be anonymized and contributed to larger training models.</p><p>Establishing a data-driven token economy offers a promising avenue for fostering fairness among all stakeholders. Eventually, major tech and data corporations may introduce a token system for service payments, thereby incentivizing users to share their data.</p><p>For an example; individuals could leverage their anonymous health data to train AI models for healthcare research and receive token rewards in return. These rewards could then be utilized for subscribing to the service or unlocking premium features, establishing a self-sustaining cycle where data sharing leads to increased service access as a reward. This model fosters a secure and equitable relationship between data contribution and enhanced service access, ensuring that those who contribute more to the ecosystem reap greater benefits in return.</p><p>Users could also use their personal data to train AI models designed just for them. Imagine a digital AI assistant guiding you through your life. Suggesting meetup events to attend to improve your career, suggesting a cheaper greener electricity retailer based on your usage, suggesting a better phone plan or simply reminding you of an event you forgot to add to your calendar.</p><h2><strong>Expandable infrastructure</strong></h2><p>As touched on in &#8220;<a href="https://www.chriswere.com/p/how-web3-and-depin-solves-ais-data">How web3 and DePIN solves AI&#8217;s data privacy problems</a>&#8221;, privacy preserving AI will need access to privacy preserving computation to train AI models and respond to user prompts.</p><p>Verida is not in the business of providing private decentralized computation, however the Verida identity framework (based on the DID-Core W3C standard) is expandable to connect to this type of Decentralized Physical Infrastructure (DePIN).</p><p>Identities on the Verida network can currently be linked to three types of DePIN; Database storage, Private inbox messages, Private notifications. This architecture can easily be extended to support new use cases such as &#8220;Private compute&#8221; or &#8220;Personal AI prompt API&#8221;.</p><p>With the appropriate partners who support decentralized private compute, there is a very clear pathway to enable personalized, privacy preserving AI leveraging a 100% DePIN technology stack.</p><p>This is incredibly exciting, as it will provide a more secure, privacy preserving solution as an alternative to giving all our data to large centralized technology companies.</p>]]></content:encoded></item><item><title><![CDATA[How web3 and DePIN solves AI’s data privacy problems]]></title><description><![CDATA[The emergence of Decentralized Physical Infrastructure Networks (DePIN) are a linchpin for providing privacy preserving decentralized infrastructure to power the next generation of large language mode]]></description><link>https://www.chriswere.com/p/how-web3-and-depin-solves-ais-data</link><guid isPermaLink="false">https://www.chriswere.com/p/how-web3-and-depin-solves-ais-data</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Fri, 12 Apr 2024 06:26:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XtnD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XtnD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XtnD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!XtnD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!XtnD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!XtnD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XtnD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac26379e-86e4-492e-9154-75305bd661db_1600x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XtnD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!XtnD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!XtnD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!XtnD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac26379e-86e4-492e-9154-75305bd661db_1600x800.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This post is part of a Privacy / AI series and continues from the <a href="https://www.chriswere.com/p/top-three-data-privacy-issues-facing">Top Three Data Privacy Issues Facing AI Today</a>.</p><div><hr></div><p>Artificial intelligence (AI) has become an undeniable force in shaping our world. From personalized recommendations to medical diagnosis, AI's impact is undeniable. However, alongside its potential lies a looming concern: <em><strong>data privacy</strong></em>. Traditional AI models typically rely on centralized data storage and centralized computation, raising concerns about ownership, control, and potential misuse.</p><p>See part 1 of this series, &#8220;<a href="https://www.chriswere.com/p/top-three-data-privacy-issues-facing">Top3 data privacy issues facing AI today</a>&#8221;, for a breakdown of key privacy issues which we will explain how web3 can help alleviate these problems.</p><p>The emergence of Decentralized Physical Infrastructure Networks (DePIN) are a linchpin for providing privacy preserving decentralized infrastructure to power the next generation of large language models (LLMs).</p><p>At a high level, DePINs can provide access to decentralized computation and storage resources that are beyond the control of any single organization. If this computation and storage can be built in such a way that it is privacy preserving; ie: those operating the infrastructure have no access to underlying data or computation occurring, this is an incredibly robust foundation for privacy preserving AI.</p><p>Let&#8217;s dive deeper into how that would look, when addressing the top three data privacy issues.</p><h2><strong>Privacy of user prompts</strong></h2><p>Safeguarding privacy of user prompts has become an increasingly critical concern in the world of AI.</p><p>An end user can initiate a connection with a LLM hosted within a decentralized privacy-prserving compute engine called a Trusted Execution Environment (TEE), which provides a public encryption key. The end user encrypts their AI prompts using that public key and sends the encrypted prompts to the secure LLM.</p><p>Within this privacy-preserving environment, the encrypted prompts undergo decryption using a key only known by the TEE. This specialized infrastructure is designed to uphold the confidentiality and integrity of user data throughout the computation process.</p><p>Subsequently, the decrypted prompts are fed into the LLM for processing. The LLM generates responses based on the decrypted prompts without ever revealing the original, unencrypted input to any party beyond the authorized entities. This ensures that sensitive information remains confidential and inaccessible to any unauthorized parties, including the infrastructure owner.</p><p>By employing such privacy-preserving measures, users can engage with AI systems confidently, knowing that their data remains protected and their privacy upheld throughout the interaction. This approach not only enhances trust between users and AI systems but also aligns with evolving regulatory frameworks aimed at safeguarding personal data.</p><h2><strong>Privacy of custom trained AI models</strong></h2><p>In a similar fashion, decentralized technology can be used to protect the privacy of custom-trained AI models that are leveraging proprietary data and sensitive information.</p><p>This starts with preparing and curating the training dataset in a manner that mitigates the risk of exposing sensitive information. Techniques such as data anonymization, differential privacy, and federated learning can be employed to anonymize or decentralize the data, thereby minimizing the potential for privacy breaches.</p><p>Next, an end user with a custom-trained Language Model (LLM) safeguards its privacy by encrypting the model before uploading it to a decentralized Trusted Execution Environment.</p><p>Once the encrypted custom-trained LLM is uploaded to the privacy-preserving compute engine, the infrastructure decrypts it using keys known only to TEE. This decryption process occurs within the secure confines of the compute engine, ensuring that the confidentiality of the model remains intact.</p><p>Throughout the training process, the privacy-preserving compute engine facilitates secure communication between the end user's infrastructure and any external parties involved in the training process, ensuring that sensitive data remains encrypted and confidential at all times. In a decentralized world, this data sharing infrastructure and communication will likely exist on a highly secure and fast protocol such as the <a href="https://www.verida.network/">Verida Network</a>.</p><p>By adopting a privacy-preserving approach to model training, organizations can mitigate the risk of data breaches and unauthorized access while fostering trust among users and stakeholders. This commitment to privacy not only aligns with regulatory requirements but also reflects a dedication to ethical AI practices in an increasingly data-centric landscape.</p><h2><strong>Private data to train AI</strong></h2><p>AI models are only as good as the data they have access to. The vast majority of data is generated on behalf of, or by, individuals. This data is immensely valuable for training AI models, but must be protected at all costs due to its sensitivity.</p><p>End users can safeguard their private information by encrypting it into private training datasets before submission to a LLM training program. This process ensures that the underlying data remains confidential throughout the training phase.</p><p>Operating within a privacy-preserving compute engine, the LLM training program decrypts the encrypted training data for model training purposes while upholding the integrity and confidentiality of the original data. This approach mirrors the principles applied in safeguarding user prompts, wherein the privacy-preserving computation facilitates secure decryption and utilization of the data without exposing its contents to unauthorized parties.</p><p>By leveraging encrypted training data, organizations and individuals can harness the power of AI model training while mitigating the risks associated with data exposure. This approach enables the development of AI models tailored to specific use cases, such as utilizing personal health data to train LLMs for healthcare research applications or crafting hyper-personalized LLMs for individual use cases, such as digital AI assistants.</p><p>Following the completion of training, the resulting LLM holds valuable insights and capabilities derived from the encrypted training data, yet the original data remains confidential and undisclosed. This ensures that sensitive information remains protected, even as the AI model becomes operational and begins to deliver value.</p><p>To further bolster privacy and control over the trained LLM, organizations and individuals can leverage platforms like the <a href="https://www.verida.network/">Verida Network</a>. Here, the trained model can be securely stored, initially under the private control of the end user who created it. Utilizing Verida's permission tools, users retain the ability to manage access to the LLM, granting permissions to other users as desired. Additionally, users may choose to monetize access to their trained models by charging others with crypto tokens for accessing and utilizing the model's capabilities.</p>]]></content:encoded></item><item><title><![CDATA[How DePINs Can Disrupt Tech Monopolies and Put People Back in Control]]></title><description><![CDATA[Decentralized Infrastructure Physical Networks &#8212; DePINs &#8212; have the potential to transform how we access and use real-world services.]]></description><link>https://www.chriswere.com/p/how-depins-can-disrupt-tech-monopolies</link><guid isPermaLink="false">https://www.chriswere.com/p/how-depins-can-disrupt-tech-monopolies</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Sun, 07 Apr 2024 22:11:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KCnc!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a945ec8-1d10-4325-b264-7186839864cc_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>This post was written by me, but <a href="https://www.benzinga.com/markets/cryptocurrency/24/04/37798095/how-depins-can-disrupt-tech-monopolies-and-put-people-back-in-control-chris-were">originally published on Benzinga.com</a></strong></em></p><p>Potential use cases are only restricted by your imagination. What if&#8230;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.chriswere.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading tahpot: Web3 on the edge! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ul><li><p>Internet hotspots could be established in rural areas where there is little coverage?&nbsp;</p></li><li><p>Homeowners could be rewarded by selling excess solar energy back to the grid?</p></li><li><p>Consumers could share unused storage space on their devices with others?</p></li><li><p>Entrepreneurs could unlock peer-to-peer microloans to build local projects?</p></li></ul><p>Underpinned by blockchain technology, DePINs make all of this possible &#8212; at a time when the infrastructure powering the global economy is experiencing seismic change. Figures from Statista <a href="https://www.statista.com/statistics/617136/digital-population-worldwide/">suggest</a> 33.8% of the world's population don't use the internet, with people in low-income countries most likely to be shut out of the modern information society. The International Energy Agency <a href="https://www.iea.org/reports/approximately-100-million-households-rely-on-rooftop-solar-pv-by-2030">estimates</a> that 100 million households will depend on rooftop solar panels by 2030, and enhancing economic incentives will be a crucial catalyst for adoption. And let's not forget that the rise of artificial intelligence means the need for storage and computation is booming, with McKinsey <a href="https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/investing-in-the-rising-data-center-economy">projecting</a> demand for data centers will rise 10% a year between now and the end of the decade. DePINs have the power to cultivate a cloud storage network that's much cheaper than traditional players including Google and Amazon.</p><p>DePINs mount a competitive challenge to the centralized providers who dominate the business landscape. Right now, most of the infrastructure we use every day is controlled by huge companies or governments. This creates a real risk of monopolies where a lack of choice pushes up prices for consumers and businesses &#8212; with the pursuit of profits stymying innovation and shutting out customers based on geography and income.</p><p>Blockchains are at the beating heart of these decentralized networks. That's because individuals and businesses who contribute physical infrastructure can be rewarded in crypto tokens that are automatically paid out through smart contracts. Consumers can also use digital assets to unlock services on demand.</p><p>This approach isn't about modernizing access to infrastructure, but changing how it is managed, accessed and owned. Unlike centralized providers, the crypto tokens issued through DePINs incentivize all participants to get involved. Decentralized autonomous organizations (known as DAOs for short) play a vital role in establishing the framework for how these projects are managed. Digital assets can be used to vote on proposals ranging from planned network upgrades to where resources should be allocated. Whereas big businesses are motivated by profit, community-driven projects can focus on meeting the needs of underserved areas. The issuance of tokens can also provide the funding required to build infrastructure &#8212; and acquire the land, equipment and technical expertise needed to get an idea off the ground.</p><p>Web3 has been driven by a belief that internet users should have full control over their data, and tech giants should be stopped from monetizing personal information while giving nothing in return. DePINs align well with these values, all while reducing barriers to entry and ensuring there's healthy competition. Multiple marketplaces for internet access, data storage and energy will result in much fairer prices for end users &#8212; and encourage rivals to innovate so they have compelling points of difference. It also means an entrepreneur with a deep understanding of what their community needs can start a business without large capital requirements. Open access and interoperability are the future.</p><p>Certain challenges must be overcome for DePINs to have a lasting global impact. There's no denying that multibillion-dollar corporations currently benefit from economies of scale, vast user bases, and deep pockets. That's why it's incumbent on decentralized innovations to show why their approach is better. Reaching out to untapped markets that aren't being served by business behemoths is a good first step. Another obstacle standing in the way of adoption concerns regulatory uncertainty, which can prevent investors and participants from getting involved. Careful thought also needs to be paid to the ramifications that DePINs can have on data privacy. Unless safeguards are imposed, someone who accesses an internet hotspot through blockchain technology could inadvertently disclose their particular location.</p><p>Ecosystems have been created that allow DePINs to be established while ensuring that user privacy is preserved at all times &#8212; championing data ownership and self-sovereignty. As well as reducing the risks surrounding identity theft, they have been built with the evolving nature of global regulation in mind &#8212; with measures such as GDPR in the EU forcing companies to rethink how much data they hold on their customers.</p><p>Zooming in on Europe as a use case, and how these regulatory headwinds will affect more than 400 million citizens on the continent, gives an invaluable insight into how DePINs &#8212; and the infrastructure they're built on &#8212; can have an impact in the years to come.</p><p>For one, the current internet landscape means that we need to create a new digital identity every time we want to join a website or app &#8212; manually handing over personal information by filling out lengthy forms to open accounts. Users are then confronted by lengthy terms and conditions or privacy notices that often go unread, leaving people in the dark about how their data is going to be used in the future. That's why the EU has proposed singular digital identities that could be used for multiple services &#8212; from "paying taxes to renting bicycles" &#8212; and change the dynamic about how confidential information is shared. This approach would mean that consumers are in the driving seat, and decide which counterparties have the right to learn more about who they are.</p><p>The European Union's approach is ambitious and requires infrastructure that is fast, inexpensive and interoperable &#8212; allowing digital signatures, identity checks and credentials to be stored and executed securely across the trading bloc. Another element that must be thrown into the mix is central bank digital currencies, with the European Central Bank <a href="https://www.ecb.europa.eu/press/pr/date/2023/html/ecb.pr231018~111a014ae7.en.html">spearheading</a> efforts to create an electronic form of the euro that is free to use and privacy preserving &#8212; all while enabling instant cross-border transactions with businesses, other consumers and governments.</p><p>High-performing and low-cost infrastructure will be essential if decentralized assets are going to be used by consumers across the continent &#8212; not to mention regulatory compliance. Privacy-focused wallets need to support multiple blockchains &#8212; as well as decentralized identities, verifiable credentials and data storage. A simple, user-friendly mobile application will be instrumental in guaranteeing that DePINs gain momentum.</p><p>The future is bright, and we're yet to scratch the surface when it comes to the advantages decentralization can bring for all of us. But usability and efficiency are two key pillars that must be prioritized if this new wave of innovation is to match the unparalleled impact of the internet.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.chriswere.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading tahpot: Web3 on the edge! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Top Three Data Privacy Issues Facing AI Today]]></title><description><![CDATA[AI has taken the world by storm, but there are some critical privacy issues that need to be considered]]></description><link>https://www.chriswere.com/p/top-three-data-privacy-issues-facing</link><guid isPermaLink="false">https://www.chriswere.com/p/top-three-data-privacy-issues-facing</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Tue, 02 Apr 2024 22:48:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9hRu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9hRu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9hRu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp 424w, https://substackcdn.com/image/fetch/$s_!9hRu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp 848w, https://substackcdn.com/image/fetch/$s_!9hRu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp 1272w, https://substackcdn.com/image/fetch/$s_!9hRu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9hRu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp" width="750" height="375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:375,&quot;width&quot;:750,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:34420,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9hRu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp 424w, https://substackcdn.com/image/fetch/$s_!9hRu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp 848w, https://substackcdn.com/image/fetch/$s_!9hRu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp 1272w, https://substackcdn.com/image/fetch/$s_!9hRu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84eb7d1-c3bd-4a67-9709-25f35335d7d5_750x375.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em><strong>This post was written by me, but originally published on <a href="https://dailyhodl.com/2024/03/28/top-three-data-privacy-issues-facing-ai-today/">DailyHodl.com</a></strong></em></p><p>AI (artificial intelligence) has caused frenzied excitement among consumers and businesses alike &#8211; driven by a passionate belief that LLMs (large language models) and tools like ChatGPT will transform the way we study, work and live.</p><p>But just like in the internet&#8217;s early days, users are jumping in without considering how their personal data is used &#8211; and the impact this could have on their privacy.</p><p>There have already been countless examples of data breaches within the AI space. In March 2023, OpenAI temporarily took ChatGPT <a href="https://openai.com/blog/march-20-chatgpt-outage">offline</a> after a &#8216;significant&#8217; error meant users were able to see the conversation histories of strangers.</p><p>That same bug meant the payment information of subscribers &#8211; including names, email addresses and partial credit card numbers &#8211; were also in the public domain.</p><p>In September 2023, a staggering 38 terabytes of Microsoft data was inadvertently <a href="https://www.pcmag.com/news/microsoft-ai-employee-accidentally-leaks-38tb-of-data">leaked</a> by an employee, with cybersecurity experts warning this could have allowed attackers to infiltrate AI models with malicious code.</p><p>Researchers have also been able to <a href="https://www.ft.com/content/5aceb7a6-9d5a-4f1f-af3d-1ef0129b0934">manipulate</a> AI systems into disclosing confidential records.</p><p>In just a few hours, a group called Robust Intelligence was able to solicit personally identifiable information from Nvidia software and bypass safeguards designed to prevent the system from discussing certain topics.</p><p>Lessons were learned in all of these scenarios, but each breach powerfully illustrates the challenges that need to be overcome for AI to become a reliable and trusted force in our lives.</p><p>Gemini, Google&#8217;s chatbot, even admits that all conversations are processed by human reviewers &#8211; underlining the lack of transparency in its system.</p><p>&#8220;Don&#8217;t enter anything that you wouldn&#8217;t want to be reviewed or used,&#8221; says an alert to users warns.</p><p>AI is rapidly moving beyond a tool that students use for their homework or tourists rely on for recommendations during a trip to Rome.</p><p>It&#8217;s increasingly being depended on for sensitive discussions &#8211; and fed everything from medical questions to our work schedules.</p><p>Because of this, it&#8217;s important to take a step back and reflect on the top three data privacy issues facing AI today, and why they matter to all of us.</p><p><strong>1. Prompts aren&#8217;t private</strong></p><p>Tools like ChatGPT memorize past conversations in order to refer back to them later. While this can improve the user experience and help train LLMs, it comes with risk.</p><p>If a system is successfully hacked, there&#8217;s a real danger of prompts being exposed in a public forum.</p><p>Potentially embarrassing details from a user&#8217;s history could be leaked, as well as commercially sensitive information when AI is being deployed for work purposes.</p><p>As we&#8217;ve seen from Google, all submissions can also end up being scrutinized by its development team.</p><p>Samsung took action on this in May 2023 when it banned employees from using generative AI tools altogether. That came after an employee <a href="https://www.forbes.com/sites/siladityaray/2023/05/02/samsung-bans-chatgpt-and-other-chatbots-for-employees-after-sensitive-code-leak/?sh=3db17e386078">uploaded</a> confidential source code to ChatGPT.</p><p>The tech giant was concerned that this information would be difficult to retrieve and delete, meaning IP (intellectual property) could end up being distributed to the public at large.</p><p>Apple, Verizon and JPMorgan have taken similar action, with reports suggesting Amazon launched a crackdown after responses from ChatGPT bore similarities to its own internal data.</p><p>As you can see, the concerns extend beyond what would happen if there&#8217;s a data breach but to the prospect that information entered into AI systems could be repurposed and distributed to a wider audience.</p><p>Companies like OpenAI are already <a href="https://www.theguardian.com/technology/2024/jan/08/ai-tools-chatgpt-copyrighted-material-openai">facing</a> multiple lawsuits amid allegations that their chatbots were trained using copyrighted material.</p><p><strong>2. Custom AI models trained by organizations aren&#8217;t private</strong></p><p>This brings us neatly to our next point &#8211; while individuals and corporations can establish their custom LLM models based on their own data sources, they won&#8217;t be fully private if they exist within the confines of a platform like ChatGPT.</p><p>There&#8217;s ultimately no way of knowing whether inputs are being used to train these massive systems &#8211; or whether personal information could end up being used in future models.</p><p>Like a jigsaw, data points from multiple sources can be brought together to form a comprehensive and worryingly detailed insight into someone&#8217;s identity and background.</p><p>Major platforms may also fail to offer detailed explanations of how this data is stored and processed, with an inability to opt out of features that a user is uncomfortable with.</p><p>Beyond responding to a user&#8217;s prompts, AI systems increasingly have the ability to read between the lines and deduce everything from a person&#8217;s location to their personality.</p><p>In the event of a data breach, dire consequences are possible. Incredibly sophisticated phishing attacks could be orchestrated &#8211; and users targeted with information they had confidentially fed into an AI system.</p><p>Other potential scenarios include this data being used to assume someone&#8217;s identity, whether that&#8217;s through applications to open bank accounts or deepfake videos.</p><p>Consumers need to remain vigilant even if they don&#8217;t use AI themselves. AI is increasingly being used to power surveillance systems and enhance facial recognition technology in public places.</p><p>If such infrastructure isn&#8217;t established in a truly private environment, the civil liberties and privacy of countless citizens could be infringed without their knowledge.</p><p><strong>3. Private data is used to train AI systems</strong></p><p>There are concerns that major AI systems have gleaned their intelligence by poring over countless web pages.</p><p>Estimates suggest 300 billion words were used to train ChatGPT &#8211; that&#8217;s 570 gigabytes of data &#8211; with books and Wikipedia entries among the datasets.</p><p>Algorithms have also been known to depend on social media pages and online comments.</p><p>With some of these sources, you could argue that the owners of this information would have had a reasonable expectation of privacy.</p><p>But here&#8217;s the thing &#8211; many of the tools and apps we interact with every day are already heavily influenced by AI &#8211; and react to our behaviors.</p><p>The Face ID on your iPhone uses AI to track subtle changes in your appearance.</p><p>TikTok and Facebook&#8217;s AI-powered algorithms make content recommendations based on the clips and posts you&#8217;ve viewed in the past.</p><p>Voice assistants like Alexa and Siri depend heavily on machine learning, too.</p><p>A dizzying constellation of AI startups is out there, and each has a specific purpose. However, some are more transparent than others about how user data is gathered, stored and applied.</p><p>This is especially important as AI makes an impact in the field of healthcare &#8211; from medical imaging and diagnoses to record-keeping and pharmaceuticals.</p><p>Lessons need to be learned from the internet businesses caught up in privacy scandals over recent years.</p><p>Flo, a women&#8217;s health app, was <a href="https://www.nytimes.com/2021/01/28/us/period-apps-health-technology-women-privacy.html">accused</a> by regulators of sharing intimate details about its users to the likes of Facebook and Google in the 2010s.</p><p><strong>Where do we go from here?</strong></p><p>AI is going to have an indelible impact on all of our lives in the years to come. LLMs are getting better with every passing day, and new use cases continue to emerge.</p><p>However, there&#8217;s a real risk that regulators will struggle to keep up as the industry moves at breakneck speed.</p><p>And that means consumers need to start securing their own data and monitoring how it is used.</p><p>Decentralization can play a vital role here and prevent large volumes of data from falling into the hands of major platforms.</p><p>DePINs (decentralized physical infrastructure networks) have the potential to ensure everyday users experience the full benefits of AI without their privacy being compromised.</p><p>Not only can encrypted prompts deliver far more personalized outcomes, but privacy-preserving LLMs would ensure users have full control of their data at all times &#8211; and protection against it being misused.</p>]]></content:encoded></item><item><title><![CDATA[Will web3 enable zero click onboarding for users?]]></title><description><![CDATA[In Web2, signing into applications often involves the exchange of personal data, creating potential security and privacy challenges.]]></description><link>https://www.chriswere.com/p/will-web3-enable-zero-click-onboarding</link><guid isPermaLink="false">https://www.chriswere.com/p/will-web3-enable-zero-click-onboarding</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Thu, 18 Jan 2024 01:40:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/d2R3vyYuxA4" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div id="youtube2-d2R3vyYuxA4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;d2R3vyYuxA4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/d2R3vyYuxA4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>In Web2, signing into applications often involves the exchange of personal data, creating potential security and privacy challenges. Each application creates new risks to the security and management of your personal information.<br><br>With the advent of Web3, a paradigm shift is on the horizon. There is a future where signing into an application doesn't entail exposing your data to developers or application owners. Instead, the application operates within the user's browser or mobile device.<br><br>As a result, user data remains securely within the application and is never shared with the developer. This opens the door to a seamless and secure digital experience, potentially eliminating the need for explicit consent for every piece of data shared.<br><br>In this decentralized future, we unlock the possibility of a zero-click login or onboarding process. Users could employ a Web3 wallet to instantly personalize or onboard to any website or application.<br><br>There would be security measures in place, ensuring automatic interactions occur only with verified and trusted applications listed on a blockchain-based trust registry.<br><br>Imagine visiting an online store where this is implemented. A plugin could automatically connect to your private data wallet, rebuilding the entire shopping website based on your preferences and past interactions.<br><br>Crucially, this personalization happens locally in your browser, without sharing any sensitive data with Shopify or the store owner.<br><br>This is part of our vision at <a href="https://www.linkedin.com/company/verida-technology/">Verida</a>. More than just enabling web3 login or onboarding, we envision a future where interactions with apps and websites are seamlessly personalized.<br><br>This decentralized approach ensures that data is utilized on the user's computer, eliminating the risk of data leakage and making automatic consent a straightforward and secure process.<br><br>The days of compromising personal data in the name of convenience will soon be replaced by a decentralized, user-controlled future that replaces the centralized control of web2.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.chriswere.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading tahpot: Web3 on the edge! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Revolutionizing Web3 Storage]]></title><description><![CDATA[A Deep Dive into IPFS and Verida DbStore]]></description><link>https://www.chriswere.com/p/revolutionizing-web3-storage</link><guid isPermaLink="false">https://www.chriswere.com/p/revolutionizing-web3-storage</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Thu, 30 Mar 2023 21:09:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/bCJAk44lzXg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://ipfs.tech/">IPFS</a> has emerged as the de-facto standard for storing data in Web3, with its decentralized file storage protocol being ideal for images, videos, and static content. However, IPFS was never designed to handle personal data, and thus, a more suitable solution is necessary.</p><p><a href="https://developers.verida.network/docs/concepts/data-storage">Verida DbStore</a> is the first &#8220;self-sovereign&#8221; database infrastructure for Web3, which promises to revolutionize how data is managed by offering users guaranteed ownership, the speed and performance of traditional databases, and the ability to permanently delete their data. As a new decentralized infrastructure and architecture, Verida DbStore is specifically designed for rapid access to highly changing, structured personal data with encryption as a fundamental aspect of the protocol.</p><p>Here&#8217;s an explainer video that dives deep into the differences.</p><div id="youtube2-bCJAk44lzXg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bCJAk44lzXg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bCJAk44lzXg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><a href="https://news.verida.io/revolutionizing-web3-storage-a-deep-dive-into-ipfs-and-verida-dbstore-7a15745dd118">The full article is available here</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.chriswere.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading tahpot: Web3 on the edge! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Explainer video: How does the Verida DID method work?]]></title><description><![CDATA[An explainer video on the problems solved by the Verida DID method (did:vda)]]></description><link>https://www.chriswere.com/p/explainer-video-how-does-the-verida</link><guid isPermaLink="false">https://www.chriswere.com/p/explainer-video-how-does-the-verida</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Thu, 23 Feb 2023 07:07:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/PZv8ga3IdLQ" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div id="youtube2-PZv8ga3IdLQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;PZv8ga3IdLQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/PZv8ga3IdLQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can learn more with the <a href="https://news.verida.io/introducing-did-vda-a-fast-cheap-web3-identity-solution-on-polygon-5d1487941477">official Verida announcement</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.chriswere.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading tahpot: Web3 on the edge! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Crypto v Web3 - What's the difference?]]></title><description><![CDATA[I often talk to crypto natives about &#8220;web3&#8221; and quickly realize we are talking about rather different things.]]></description><link>https://www.chriswere.com/p/crypto-v-web3-whats-the-difference</link><guid isPermaLink="false">https://www.chriswere.com/p/crypto-v-web3-whats-the-difference</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Mon, 06 Feb 2023 21:39:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HhEs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HhEs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HhEs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png 424w, https://substackcdn.com/image/fetch/$s_!HhEs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png 848w, https://substackcdn.com/image/fetch/$s_!HhEs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png 1272w, https://substackcdn.com/image/fetch/$s_!HhEs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HhEs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png" width="479" height="456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:456,&quot;width&quot;:479,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HhEs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png 424w, https://substackcdn.com/image/fetch/$s_!HhEs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png 848w, https://substackcdn.com/image/fetch/$s_!HhEs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png 1272w, https://substackcdn.com/image/fetch/$s_!HhEs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e106c7-12d2-426a-92f7-0c413ea920b8_479x456.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I often talk to crypto natives about &#8220;web3&#8221; and quickly realize we are talking about rather different things. What follows below is my perspective as a web3 builder with the usual caveat that there is no right or wrong definition of these things and they will evolve over time.</p><p>There is significant prior art here, so I&#8217;d like to acknowledge Gavin Wood&#8217;s <a href="http://gavwood.com/dappsweb3.html">original blog post defining Web 3.0</a> and <a href="https://jessewalden.com/decentralization-assets-protocols-products/">Jesse Waldon&#8217;s post on &#8220;crypto&#8221; v &#8220;web3&#8221;</a> that talks to some of the tribalism behind these words.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.chriswere.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading tahpot: Web3 on the edge! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Crypto: Own your&nbsp;Assets</h3><p>At the risk of oversimplification, the objective of &#8220;crypto&#8221; is for an individual to <em><strong>own their assets</strong></em>. This can be enabled by holding tokens or NFTs which can be exchanged through decentralized exchanges or marketplaces.</p><p>This can be broken down as follows:</p><p><strong>Infrastructure</strong></p><ol><li><p>Key management (Seed phrase, private key, social recovery)</p></li><li><p>Protocol networks (Bitcoin, Ethereum, NEAR etc.)</p></li><li><p>Protocol tokens (BTC, ETH, NEAR etc.)</p></li><li><p>Standards (ERC-20 Token standard, ERC-721 NFTs etc.)</p></li><li><p>Crypto wallets (Metamask, Rainbow wallet, Verida wallet)</p></li></ol><p><strong>Apps</strong></p><ol><li><p>DEX (<a href="https://uniswap.org/">Uniswap</a>, <a href="https://pancakeswap.finance/">Pancake Swap</a>, <a href="https://balancer.fi/">Balancer</a>)</p></li><li><p>DeFi apps (<a href="https://synthetix.io/">Synthetix</a>, <a href="https://gmx.io/">GMX</a>)</p></li><li><p>NFT marketplaces (<a href="https://blur.io/">Blur</a>, <a href="https://x2y2.io/">x2y2</a>, <a href="https://paras.id/">Paras</a>)</p></li><li><p>Project tokens (<a href="https://decentraland.org/">Decentraland</a>, <a href="https://www.bankless.com/">Bankless</a>, <a href="https://www.sandbox.game/en/">Sandbox</a>)</p></li></ol><h3>Web3: Own Everything</h3><p>The intent of web3 is for an individual to <em><strong>own every part of their digital life</strong></em>.</p><p>Own your identity. Own your data. Own your assets. Everything is encrypted. Everything is verifiable. Everything is controlled by you.</p><p>This can be broken down as follows:</p><p><strong>All of &#8220;Crypto&#8221;</strong></p><p>Web3 encompasses all the infrastructure and apps of crypto.</p><p><strong>Infrastructure</strong></p><ol><li><p>Identity (DIDs)</p></li><li><p>Auth (<a href="https://eips.ethereum.org/EIPS/eip-4361">Sign in with Ethereum</a>, <a href="https://walletconnect.com/">WalletConnect</a>, <a href="https://developers.verida.network/docs/single-sign-on-sdk">Verida SSO</a>)</p></li><li><p>Data storage (<a href="https://www.textile.io">Textile</a>, <a href="https://ceramic.network/">Ceramic</a>, <a href="https://developers.verida.network/docs/client-sdk/data">Verida DbStore</a>)</p></li><li><p>Messaging (<a href="https://push.org">EPNS</a>, <a href="https://docs.walletconnect.com/2.0/api/chat">WalletConnect Chat</a>, <a href="https://nostr.com/">nostr</a>, <a href="https://developers.verida.network/docs/client-sdk/messaging">Verida Messaging</a>)</p></li><li><p>Web3 wallets (<a href="https://onto.app/">Onto</a>, <a href="https://www.verida.io/">Verida Wallet</a>)</p></li></ol><p><strong>Apps</strong></p><ol><li><p>Social (<a href="https://www.farcaster.xyz/">Farcaster</a>, <a href="https://damus.io/">Damus</a>, <a href="https://gm.xyz/">Gm.xyz</a>, <a href="https://verida.one/">Verida.one</a>)</p></li><li><p>Identity / Credentials (<a href="https://passport.gitcoin.co/">Gitcoin Passport</a>, <a href="https://www.disco.xyz/">Disco.xyz</a>, <a href="https://galxe.com/">Galxe</a>, <a href="https://kleoverse.com/">Keloverse</a>)</p></li><li><p>Chat (<a href="https://getsession.org/">Session</a>, <a href="https://status.im/">status.im</a>)</p></li><li><p>Content (<a href="https://mirror.xyz/">mirror.xyz</a>)</p></li></ol><h3>Why is the distinction important?</h3><p>Web3 has the potential to disrupt every single industry, not just finance. It is the key to unlocking mass adoption of decentralized technology beyond the tech savvy.</p><p>The economic model, consensus model and underlying technologies are different for each part of the web3 stack. Developers, infrastructure providers and investors need to understand these differences and not apply pre-existing &#8220;crypto&#8221; thinking to &#8220;web3&#8221;.</p><p>For example, there are significant differences between L1 and L2 blockchains; different consensus models, different economic models, different objectives. Similarly in Web3 there are differences between public and private data storage protocols; different performance criteria, different security threats etc.</p><p>The distinction is important, however it doesn&#8217;t really matter what it is called. It is important we can have a shared language to efficiently communicate ideas and evolve our collective thinking.</p><h3>The challenges ahead</h3><p>The crypto audience is a small subset of the wider population that is more tech savvy and will do the work to get around poor user experiences. Web3 aims to cross over to mainstream adoption. This requires closing the gap between the current (poor) crypto user experiences, to something anyone with a mobile device and web browser can easily use to access the full web3 technology stack.</p><p>A significant user experience gap exists across the current crypto infrastructure stack, whereas the Web3 infrastructure stack is earlier in its development cycle. It has even more ground to make up.</p><p>For example, we require better user experiences for login that aligns more closely with web2 expectations. Users expect fast and responsive apps that are limited today by blockchain speed and data storage speed. These issues need to be addressed (and will be) on the road to mass adoption of web3.</p><h3>The opportunity ahead</h3><p>Where there are challenges, there are opportunities.</p><p>We are early. The introduction of decentralized technology has the potential to disrupt every industry, every governance structure and break the monopolistic control of existing incumbents.</p><p>The next generation of infrastructure and applications are in their nascent stages right now. Due to the community oriented nature of crypto and web3, everyone has an opportunity to participate regardless of their experience or skills.</p><p>Find a problem where you can add value and jump in!</p><p><a href="https://www.chriswere.com/">Follow me on substack</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.chriswere.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading tahpot: Web3 on the edge! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Demo video: fDm Hyperbox (Metaverse) integrated with Verida network]]></title><description><![CDATA[A 5 minute demo video showcasing up-and-coming metaverse project, Hyperbox, integrated with the Verida network]]></description><link>https://www.chriswere.com/p/demo-video-fdm-hyperbox-metaverse</link><guid isPermaLink="false">https://www.chriswere.com/p/demo-video-fdm-hyperbox-metaverse</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Fri, 27 Jan 2023 11:39:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/IeF8AQ_zIJk" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-IeF8AQ_zIJk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;IeF8AQ_zIJk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/IeF8AQ_zIJk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Here&#8217;s a quick demo of a collaboration I helped pull together with funDAOmental and Verida.</p><p>It showcases an early build of Hyperbox, a collaborative metaverse project leveraging the Verida network to access decentralized data storage, messaging, identity and profiles&#8230; All powered by Web3.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.chriswere.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading tahpot: Web3 on the edge! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Decentralized Identity is failing us. Welcome to the Web3 Mullet.]]></title><description><![CDATA[We need better identity infrastructure to bring Web3 mainstream.]]></description><link>https://www.chriswere.com/p/decentralized-identity-is-failing</link><guid isPermaLink="false">https://www.chriswere.com/p/decentralized-identity-is-failing</guid><dc:creator><![CDATA[tahpot]]></dc:creator><pubDate>Thu, 26 Jan 2023 23:53:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QxrL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Decentralized Identity is a foundational concept that should underpin the majority of Web3 projects. However, the current implementations are flawed and need to be fixed to achieve mainstream adoption.</p><p>The vast majority of &#8220;Web3&#8221; applications provide the perception of decentralization by asking you to login with a blockchain address, but in reality they are centralized behind the scenes. These applications don&#8217;t enforce end-to-end encryption of user data or guarantee data is stored on decentralized infrastructure.</p><p>As a result, in many instances users do not own or control their application data.</p><blockquote><p>We are swimming in a sea of &#8220;Mullet Web3&#8221;. Decentralized at the front, but centralized at the back.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QxrL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QxrL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QxrL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QxrL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QxrL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QxrL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg" width="500" height="560" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:560,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QxrL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QxrL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QxrL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QxrL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8d584c-3e90-43e4-a30c-c1aaff6e69e3_500x560.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>What is a Decentralized Identity?</h3><p>A decentralized identity is a concept which can be multiple things depending on the context. At a basic level a decentralized identity can be created by anyone, is anonymous by default and contains a secret (ie: private key) that can be used to prove ownership of the identity. This enables cryptographically trusted relationships and communication, owned and controlled by the holder.</p><p>Decentralized identifiers (DIDs) are similar to usernames in Web3, but with extra features. They are the basis for sharing public keys controlled by the DID holder, creating trusted connections, storing data and many other capabilities.</p><p>Here is an example DID using the &#8220;Ethereum&#8221; DID Method: <em>did:ethr:0x690b9a9e9aa1c9db991c7721a92d351db4fac990</em></p><p>DIDs play a <em>critical</em> role in Web3 ecosystems, which don&#8217;t have a centralized authority playing the role of gatekeeper. They enable multiple decentralized identities to establish trusted communication channels, share information and build composable services.</p><p>Given a DID, it&#8217;s possible to use a software library to lookup an associated DID Document (JSON) that provides lots of extra metadata. This document can define an unlimited number of public keys for different use cases, it supports key rotation and supports listing API&#8217;s or service endpoints where you can interact with the identity.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gQcH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067a81ec-c435-4560-87d5-278532da1df7_800x380.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gQcH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067a81ec-c435-4560-87d5-278532da1df7_800x380.png 424w, https://substackcdn.com/image/fetch/$s_!gQcH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067a81ec-c435-4560-87d5-278532da1df7_800x380.png 848w, https://substackcdn.com/image/fetch/$s_!gQcH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067a81ec-c435-4560-87d5-278532da1df7_800x380.png 1272w, https://substackcdn.com/image/fetch/$s_!gQcH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067a81ec-c435-4560-87d5-278532da1df7_800x380.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gQcH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067a81ec-c435-4560-87d5-278532da1df7_800x380.png" width="800" height="380" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/067a81ec-c435-4560-87d5-278532da1df7_800x380.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:380,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gQcH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067a81ec-c435-4560-87d5-278532da1df7_800x380.png 424w, https://substackcdn.com/image/fetch/$s_!gQcH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067a81ec-c435-4560-87d5-278532da1df7_800x380.png 848w, https://substackcdn.com/image/fetch/$s_!gQcH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067a81ec-c435-4560-87d5-278532da1df7_800x380.png 1272w, https://substackcdn.com/image/fetch/$s_!gQcH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F067a81ec-c435-4560-87d5-278532da1df7_800x380.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: <a href="https://w3c.github.io/did-core/#a-simple-example">DID-Core DID Document&nbsp;example</a></figcaption></figure></div><p>A common use case is for a DID Document to point to a location of an encrypted personal data store where user data is stored; owned and controlled by the user. This is an essential requirement for us to reach the promised land of &#8220;owning your own data&#8221;.</p><p>There is a<a href="https://www.w3.org/TR/did-core/"> working group that has established the DID-Core standard</a> under the stewardship of W3C. This allows protocols to define a &#8220;DID method&#8221; that provides different ways to construct DID identifiers and documents. This allows a software library that can take the identifier and resolve the DID Document. There is a range of working groups supporting <a href="https://identity.foundation/working-groups/identifiers-discovery.html">discovery related specifications at the DIF</a>.</p><p>This DID standard is the leading technology being used by emerging Web3 protocols like the <a href="https://ceramic.network/">Ceramic Network</a>,<a href="https://developer.tbd.website/projects/web5/"> Web5</a>,<a href="https://atproto.com/"> At Protocol by Bluesky</a> and<a href="https://www.verida.io/"> Verida</a>.</p><h3>Blockchain addresses as&nbsp;DIDs</h3><p>The emergence of blockchain has pushed forward the technology and broader awareness of public / private key pairs being used as decentralized identifiers. The identifier is a blockchain address and the private key remains a secret kept by the owner.</p><p>At first glance, this seems really awesome. Not only do we have a decentralized identity, we also have a key pair allowing us to sign messages or data to create trusted, secure protocols.</p><p>Metamask and other crypto wallets have brought this technology to a large user base. (Yes, <a href="https://en.wikipedia.org/wiki/Pretty_Good_Privacy">PGP</a> enabled this a long time ago, but the timing and tooling wasn&#8217;t right).</p><p>The DID-Core standard provides a very specific way to use a blockchain address as a feature rich decentralized identity with the help of a DID Document. This provides security via key rotation, allows for standardization of data storage and accessing services relating to the user.</p><p>However, the vast majority of Web3 projects are simply asking users to sign a message using MetaMask to prove they control a blockchain address rather than using the DID-Core standard.</p><p>This gives the perception to a user that they are using a decentralized service, however the user is just logging into a centralized service that stores their data&#8202;&#8212;&#8202;just like a Web2 application.</p><p>This is not a decentralized application!</p><h3>Sign-in with Ethereum makes things&nbsp;worse!</h3><p>This concept of signing a message with Metamask to login has been taken even further with the introduction of the &#8220;<a href="https://login.xyz/">Sign-in with Ethereum</a>&#8221; (SIWE) standard.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VM13!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VM13!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png 424w, https://substackcdn.com/image/fetch/$s_!VM13!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png 848w, https://substackcdn.com/image/fetch/$s_!VM13!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png 1272w, https://substackcdn.com/image/fetch/$s_!VM13!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VM13!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png" width="298" height="462" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:462,&quot;width&quot;:298,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VM13!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png 424w, https://substackcdn.com/image/fetch/$s_!VM13!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png 848w, https://substackcdn.com/image/fetch/$s_!VM13!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png 1272w, https://substackcdn.com/image/fetch/$s_!VM13!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7889a9e5-dce6-485f-a1b7-447e04c0886a_298x462.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: <a href="https://wagmi.sh/examples/sign-in-with-ethereum">WAGMI SIWE&nbsp;example</a></figcaption></figure></div><p>SIWE requires a user to sign a message with a timestamp and nonce proving they currently control the secret (private key) for an account. This is equivalent to signing in with a username and password to a centralized system.</p><p>In fact, that is the underlying purpose of SIWE. To enable a blockchain address to sign into Web2 applications:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9lrD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9lrD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png 424w, https://substackcdn.com/image/fetch/$s_!9lrD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png 848w, https://substackcdn.com/image/fetch/$s_!9lrD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png 1272w, https://substackcdn.com/image/fetch/$s_!9lrD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9lrD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png" width="660" height="140" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:140,&quot;width&quot;:660,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9lrD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png 424w, https://substackcdn.com/image/fetch/$s_!9lrD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png 848w, https://substackcdn.com/image/fetch/$s_!9lrD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png 1272w, https://substackcdn.com/image/fetch/$s_!9lrD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ca85cc5-9034-4829-bfb1-bdbecd1dae7a_660x140.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Source: <a href="https://docs.login.xyz/general-information/siwe-overview#benefits-to-web2-and-web3">SIWE&nbsp;Overview</a></figcaption></figure></div><p>Here we hit a major issue.</p><p>While this &#8220;sign-in&#8221; process works well, the architecture is just a front to a centralized system for storing data and interacting with the application. SIWE does not mean your Web3 application data is decentralized. It does not mean you have ownership / control over your data, nor that it is being encrypted using your blockchain keys.</p><p>In fact, the<strong> design of SIWE makes it impossible to support end-to-end encryption of user data</strong> using your blockchain private key.</p><p>The application must then store a cookie or a session on a server to maintain information about you as a &#8220;logged in&#8221; user.</p><blockquote><p>We have the Web3 mullet. It looks like decentralization at the front, but it&#8217;s centralized at the back!</p></blockquote><p>SIWE also introduces numerous other issues:</p><ol><li><p>Using a public blockchain address as the identifier is a security and privacy risk.</p></li><li><p>A user&#8217;s public blockchain assets and activity is now linked to their private Web3 application activity.</p></li><li><p>A user is locked into using a particular blockchain network and private key.</p></li></ol><p>The concept of a DID Document in the DID-Core standard is designed to solve all these issues (and many more).</p><h3>However&#8230; DID-Core implementations also have problems!</h3><p>The DID-Core standard is not perfect, but it&#8217;s a pretty damn good improvement on the current way we handle identities.</p><p>The standard introduces the concept of DID Documents that must be publicly discoverable and securely stored somewhere. Developers can define a &#8220;<a href="https://www.w3.org/TR/did-spec-registries/#did-methods">DID Method</a>&#8221; that outlines different types of identifiers (ie: did:ethr or did:web ) and how the DID Document can be discovered. Each DID method typically has a software library that developers can use to &#8220;resolve&#8221; the DID Document for a given identifier.</p><p>Here&#8217;s our first problem. There are <em><strong>lots</strong></em><strong> </strong>of DID Methods (<a href="https://www.w3.org/TR/did-spec-registries/#did-methods">see the full list here</a>). No software will support all of those methods, it&#8217;s just not feasible. In fact Google and Mozilla objected to the DID-Core specification on this basis, but was<a href="https://www.theregister.com/2022/07/01/w3c_overrules_objections/"> overruled by the W3C</a>.</p><p>Over time, we will see a necessary consolidation of these DID methods into the ones with the best technical characteristics, flexibility, community and adoption&#8230;. but for now it&#8217;s a bit of a mess.</p><p>Let&#8217;s look deeper at the technical requirements that must be considered when implementing a DID Method. It&#8217;s critical that DID Documents have the following properties:</p><ul><li><p><strong>Access</strong>; Documents must be public to discover and read, but it must be enforced that only the DID controller (user with the secret) can change the document (ie: rotate their keys)</p></li><li><p><strong>Performant</strong>; It must be fast to read and write (seconds), otherwise there will be unacceptable delays when creating a new account or signing into Web3 applications.</p></li><li><p><strong>Cost</strong>; Web3 is competing with Web2. The cost must be very low (ideally free), without the user becoming beholden to a centralized entity paying on their behalf. If the user has to pay, that introduces a huge barrier to entry that makes it infeasible.</p></li><li><p><strong>Revocable</strong>; A user must be able to delete their DID document in accordance with the &#8220;right to be deleted&#8221;. This is a critical requirement that is missed by the vast majority of DID method implementations.</p></li><li><p><strong>Full support</strong>; The implementation must support the full suite of DID-Core specifications for maximum flexibility and security.</p></li></ul><p>Bluesky&#8217;s AT Protocol has a great summary of their criteria around selecting a DID method:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JK5_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JK5_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png 424w, https://substackcdn.com/image/fetch/$s_!JK5_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png 848w, https://substackcdn.com/image/fetch/$s_!JK5_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png 1272w, https://substackcdn.com/image/fetch/$s_!JK5_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JK5_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png" width="716" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:716,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JK5_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png 424w, https://substackcdn.com/image/fetch/$s_!JK5_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png 848w, https://substackcdn.com/image/fetch/$s_!JK5_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png 1272w, https://substackcdn.com/image/fetch/$s_!JK5_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d36f15-fdb8-4694-8daa-86ddc5c1a4cc_716x716.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://atproto.com/guides/identity#did-methods">AT Protocol: DID&nbsp;Methods</a></figcaption></figure></div><p><a href="https://atproto.com/guides/identity#did-methods">AT Protocol on DID Methods</a>:</p><blockquote><p>At present, none of the DID methods meet our standards fully.</p></blockquote><p>The current leading DID methods fail on both my high level criteria and that of the AT Protocol on many levels. They are not suitable for widespread mass adoption.</p><p>However, let&#8217;s take a closer look at the leading contenders to better understand the issues.</p><h3>DID: Ethereum</h3><p><em>TLDR; Expensive, slow, only a partial DID-Core implementation, Non-revocable documents</em></p><p>The <code>ethr-did-registry</code> runs on Ethereum. This makes it very expensive and slow. Blockchains are not designed to store data, so storing a whole DID Document is not feasible at scale.</p><p>The current implementation tries its best to be efficient with gas fees, but this results in many compromises. As such, it only supports a subset of the DID-Core standard. This makes it a lot less useful than it appears at first glance.</p><h3>DID: ION</h3><p><em>TLDR; Complex, Requires it&#8217;s own layer 2 network, Encourages centralization of infrastructure, Slow to anchor, Non-revocable documents</em></p><p><a href="https://identity.foundation/ion/">ION</a> (based on the <a href="https://identity.foundation/sidetree/spec/">sidetree</a> specification, supported by Microsoft and favoured by the team behind Web5) stores DID Documents on IPFS nodes and anchors proofs to the Bitcoin blockchain. This seems like a sensible decentralized architecture, but creates a lot of complexity and introduces other interesting issues.</p><p>The ION infrastructure requires a network of node operators willing to run infrastructure. At the moment that is voluntary from a small group of organizations with a vested interest in the network continuing to operate, with no economic incentive model.</p><p>ION requires node operators to pay Bitcoin transaction fees to anchor DID Document changes:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nyqh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nyqh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png 424w, https://substackcdn.com/image/fetch/$s_!nyqh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png 848w, https://substackcdn.com/image/fetch/$s_!nyqh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png 1272w, https://substackcdn.com/image/fetch/$s_!nyqh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nyqh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png" width="755" height="148" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:148,&quot;width&quot;:755,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nyqh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png 424w, https://substackcdn.com/image/fetch/$s_!nyqh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png 848w, https://substackcdn.com/image/fetch/$s_!nyqh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png 1272w, https://substackcdn.com/image/fetch/$s_!nyqh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a079594-6cc7-4bb7-9052-09b3e9fdb316_755x148.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Source: <a href="https://github.com/decentralized-identity/ion/blob/master/docs/Q-and-A.md#q-who-pays-the-fee-if-its-all-decentralised">ION&nbsp;Q&amp;A</a></figcaption></figure></div><p>This places an economic cost on node operators to pay for transactions, rather than empowering an individual to pay for their own. Web3 developers must pay to run their own node or pay others to use their nodes. This creates a delegation of trust which increases centralization and other third party risks across the network.</p><p>ION requires locking Bitcoin:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OcV0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OcV0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png 424w, https://substackcdn.com/image/fetch/$s_!OcV0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png 848w, https://substackcdn.com/image/fetch/$s_!OcV0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png 1272w, https://substackcdn.com/image/fetch/$s_!OcV0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OcV0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png" width="656" height="232" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:232,&quot;width&quot;:656,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OcV0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png 424w, https://substackcdn.com/image/fetch/$s_!OcV0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png 848w, https://substackcdn.com/image/fetch/$s_!OcV0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png 1272w, https://substackcdn.com/image/fetch/$s_!OcV0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46eb10fa-ae60-48fb-bd77-052115abb2a8_656x232.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Source: <a href="https://github.com/decentralized-identity/ion/blob/master/docs/design.md#value-locking-example">ION&nbsp;Spec</a></figcaption></figure></div><p>ION is dependent on the slow pace of Bitcoin for it&#8217;s anchoring service:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6IEt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6IEt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png 424w, https://substackcdn.com/image/fetch/$s_!6IEt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png 848w, https://substackcdn.com/image/fetch/$s_!6IEt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png 1272w, https://substackcdn.com/image/fetch/$s_!6IEt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6IEt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png" width="797" height="188" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:188,&quot;width&quot;:797,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6IEt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png 424w, https://substackcdn.com/image/fetch/$s_!6IEt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png 848w, https://substackcdn.com/image/fetch/$s_!6IEt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png 1272w, https://substackcdn.com/image/fetch/$s_!6IEt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bd79fb-edb2-4375-9790-4ff57190fb35_797x188.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This means proof commits of new DID Document changes take ~20 minutes before they are anchored.</p><h3>DID: 3ID (Ceramic)</h3><p><em>TLDR; Similar to ION without the blockchain, Requires it&#8217;s own layer 2 network, Non-revocable documents, Limited DID standard support</em></p><p><a href="https://github.com/ceramicnetwork/CIP/blob/main/CIPs/CIP-79/CIP-79.md">3ID DID method</a> is implemented on the Ceramic network which is a stream based mutable storage network that leverages IPFS. As such, it inherits the limitations of IPFS such as the inability to support revocable documents.</p><p>The DID method generates a DID document from an object containing multiple public keys. As a result, there is no support for service endpoints or fine grained control over the rest of the DID document, severely limiting its usefulness in a composable Web3 ecosystem.</p><p>The DID method is also tightly coupled with the Ceramic network itself, making it challenging for an implementer to use the DID method in projects not using Ceramic.</p><h3>DID: Cheqd</h3><p><a href="https://docs.cheqd.io/node/architecture/adr-list/adr-002-cheqd-did-method">Cheqd DID method</a> is an honourable mention. Running on top of the Cosmos blockchain and with Hyperledger Indy origins it is a well thought out DID method implementation.</p><p>The DID document is stored on chain, however <a href="https://docs.cheqd.io/node/architecture/adr-list/adr-002-cheqd-did-method#privacy-considerations">the blockchain key pairs are separated from the identity payloads</a> providing increased privacy and separation between off-chain DIDs and on-chain keypairs.</p><p>Cheqd have a well thought through <a href="https://docs.cheqd.io/governance/">decentralized overnance framework</a>, one of the only on this list.</p><p>They also provide <a href="https://docs.cheqd.io/identity/architecture/adr-list/adr-002-did-linked-resources">infrastructure for other identity related metadata (schemas, assets etc.)</a> and have a privacy preserving payment model for credential verification on their roadmap. Such payment rails will be necessary for creating viable credential business models at scale.</p><p>It&#8217;s refreshing to see Cheqd have <a href="https://product.cheqd.io/product-essentials/why-cheqd/pricing">clear pricing available in their documentation</a>, however at current pricing the cost of creating a DID is around $2.00. That being said, Cheqd use cases are more focused on feature rich identity and credentialing where organizations will be creating DIDs more so than individuals, so that price point is not unreasonable.</p><p>In a world where there are likely to be multiple DID methods, Cheqd provides a solid option for enterprise use cases.</p><h3>DID: Web</h3><p>TLDR; Simple, Cheap, Fast, Fragile.</p><p>The <a href="https://w3c-ccg.github.io/did-method-web/">Web DID method</a> (currently used by AT Protocol) is simple to implement as it can point to a URL that can be managed by a centralized entity. For example: <code>did:web:acme.com:user:alice</code> is a valid identifier.</p><p>On the surface this seems great, however it&#8217;s not suitable long term. If the third party website hosting your DID Document goes down, suddenly you have lost your identity! This could be as a result of a temporary outage, the hosting service shutting down or a <a href="https://dashwire.com/everything-you-need-to-know-about-domain-takedowns">DNS registrar taking down a domain name</a>. As your DID identifier is hardcoded to that address, there is no way to recover your identity.</p><h3>The path to true decentralization</h3><p>There are a variety of other blockchain based DID methods, but they all suffer from some combination of high cost, low speed or limitations to functionality.</p><p>For true decentralization of Web3 applications we require three key things:</p><ol><li><p>A DID method that meets the necessary standards for widespread adoption</p></li><li><p>Applications to start using a suitable DID method instead of &#8220;faking&#8221; it with blockchain based signatures</p></li><li><p>Enable applications to be decentralized in the back by leveraging user encrypted data storage and other decentralized services linked to a DID document</p></li></ol><p>It&#8217;s hard to blame app developers as they are focused on building products and are currently constrained by the lack of a suitable DID method. This technology is new, so it&#8217;s understandable there are trade-offs made on the path to true decentralization.</p><p>It&#8217;s time to trim the mullet! We must no longer compromise on identity. It&#8217;s incredibly difficult to backtrack on identity infrastructure once deployed. Compromises made today will only compound as Web3 adoption grows.</p><p>We need a suitable DID method as soon as possible to enable application developers to use fully featured decentralized identity solutions and unlock the ability for fully decentralized end-to-end encrypted Web3 applications.</p>]]></content:encoded></item></channel></rss>