<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ar1as1</title>
    <description>The latest articles on DEV Community by ar1as1 (@ar1as1).</description>
    <link>https://dev.to/ar1as1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3965652%2F05c11d5a-30b2-4d81-bd47-d9fe720ec266.png</url>
      <title>DEV Community: ar1as1</title>
      <link>https://dev.to/ar1as1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ar1as1"/>
    <language>en</language>
    <item>
      <title>zk.egold.dev — ZK Exploit Disclosure Protocol on Ethereum</title>
      <dc:creator>ar1as1</dc:creator>
      <pubDate>Wed, 03 Jun 2026 04:34:08 +0000</pubDate>
      <link>https://dev.to/ar1as1/zkegolddev-zk-exploit-disclosure-protocol-on-ethereum-o7d</link>
      <guid>https://dev.to/ar1as1/zkegolddev-zk-exploit-disclosure-protocol-on-ethereum-o7d</guid>
      <description>&lt;p&gt;&lt;strong&gt;Smart contract bugs cost billions. In 2023 alone, over $1.8B was lost &lt;br&gt;
to exploits.&lt;/strong&gt; The problem? No standardized way for security researchers &lt;br&gt;
to disclose vulnerabilities and get rewarded fairly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;zk.egold.dev&lt;/strong&gt; solves this with a trustless ZK Exploit Disclosure &lt;br&gt;
Protocol on Ethereum.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Bug Bounties Today
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Researchers disclose vulnerability → company ghosts them&lt;/li&gt;
&lt;li&gt;No proof the researcher found it first&lt;/li&gt;
&lt;li&gt;Payment disputes with no on-chain record&lt;/li&gt;
&lt;li&gt;Centralized platforms take huge cuts&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How &lt;strong&gt;zk.egold.dev&lt;/strong&gt; Works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Commit&lt;/strong&gt;&lt;br&gt;
Researcher hashes the exploit details off-chain:&lt;br&gt;
&lt;code&gt;commitment = keccak256(exploitDetails + secret)&lt;/code&gt;&lt;br&gt;
Submit commitment on-chain — timestamp proves discovery date.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — Escrow&lt;/strong&gt;&lt;br&gt;
Protocol owner locks bounty in smart contract escrow.&lt;br&gt;
Funds are trustlessly held — neither party can rug.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 — Reveal&lt;/strong&gt;&lt;br&gt;
Researcher reveals exploit details + secret.&lt;br&gt;
ZK proof verifies commitment matches reveal — without exposing &lt;br&gt;
details prematurely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 — Payout&lt;/strong&gt;&lt;br&gt;
Smart contract releases escrow automatically upon valid proof.&lt;br&gt;
Full audit trail on-chain. No disputes. No middlemen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zero-Knowledge Privacy
&lt;/h2&gt;

&lt;p&gt;The ZK circuit guarantees:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Researcher proves knowledge WITHOUT revealing the exploit&lt;/li&gt;
&lt;li&gt;Commitment is binding — cannot be faked retroactively
&lt;/li&gt;
&lt;li&gt;Payout is automatic — no human can block it&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Live Deployment
&lt;/h2&gt;

&lt;p&gt;🌐 &lt;strong&gt;Platform:&lt;/strong&gt; &lt;a href="https://zk.egold.dev" rel="noopener noreferrer"&gt;https://zk.egold.dev&lt;/a&gt;&lt;br&gt;
📦 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ar1as1/zkbounty" rel="noopener noreferrer"&gt;https://github.com/ar1as1/zkbounty&lt;/a&gt;&lt;br&gt;
🔗 &lt;strong&gt;Network:&lt;/strong&gt; Ethereum Sepolia Testnet&lt;/p&gt;

&lt;h2&gt;
  
  
  For Security Researchers
&lt;/h2&gt;

&lt;p&gt;If you find a vulnerability in any Web3 protocol:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate your commitment locally&lt;/li&gt;
&lt;li&gt;Submit on-chain — your timestamp is proof&lt;/li&gt;
&lt;li&gt;Negotiate bounty with protocol owner&lt;/li&gt;
&lt;li&gt;Reveal and get paid — trustlessly&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No more getting ghosted. No more payment disputes.&lt;br&gt;
The protocol enforces fairness mathematically.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with Circom, Groth16, Solidity, React, and Foundry.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfyvqpx03srtv9spelpt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfyvqpx03srtv9spelpt.png" alt=" " width="800" height="283"&gt;&lt;/a&gt;*&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>ethereum</category>
      <category>zkbounty</category>
      <category>groth16</category>
    </item>
    <item>
      <title>ZK Session Keys: Fix MetaMask Popups in Web3 Games with ERC-4337 Account Abstraction</title>
      <dc:creator>ar1as1</dc:creator>
      <pubDate>Wed, 03 Jun 2026 04:03:40 +0000</pubDate>
      <link>https://dev.to/ar1as1/zk-session-keys-fix-metamask-popups-in-web3-games-with-erc-4337-account-abstraction-7h3</link>
      <guid>https://dev.to/ar1as1/zk-session-keys-fix-metamask-popups-in-web3-games-with-erc-4337-account-abstraction-7h3</guid>
      <description>&lt;p&gt;Every Web3 game has the same problem — MetaMask keeps interrupting gameplay with popups. Shoot an enemy? Popup. Open a chest? Popup. Buy an item? Popup.&lt;/p&gt;

&lt;p&gt;I built a solution: &lt;strong&gt;ZK Session Key Validator&lt;/strong&gt; — sign once at the start, play the entire session without interruptions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Player signs &lt;strong&gt;once&lt;/strong&gt; at game start&lt;/li&gt;
&lt;li&gt;A temporary session key is created with strict rules:

&lt;ul&gt;
&lt;li&gt;Valid for 2 hours only&lt;/li&gt;
&lt;li&gt;Max spend limit (e.g. 0.01 ETH)&lt;/li&gt;
&lt;li&gt;Whitelisted contracts only&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;All in-game actions auto-sign silently&lt;/li&gt;
&lt;li&gt;Session expires automatically&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Zero-Knowledge Proof Security
&lt;/h2&gt;

&lt;p&gt;Every transaction is validated by a &lt;strong&gt;Groth16 ZK proof&lt;/strong&gt; (Circom circuit) that verifies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Session commitment = &lt;code&gt;Poseidon(masterKey, sessionAddr, nonce)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Target contract is in the Merkle whitelist&lt;/li&gt;
&lt;li&gt;&lt;code&gt;currentTime &amp;lt; expiry&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spentSoFar + txValue ≤ spendLimit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No trust required — math enforces the rules on-chain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live on Sepolia Testnet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Contract&lt;/th&gt;
&lt;th&gt;Address&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Groth16Verifier&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0x99e61B9dC9C6889Dd2e249CC6183B6fa7A8795E3&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SessionKeyValidator&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0xc5655348C4E6e77AFF2BBb03A5758CaC205347Cf&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Prover&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./prover.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prover&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Prover&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;RPC_URL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;VALIDATOR_ADDRESS&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;init&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Sign ONCE — 1 MetaMask popup&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;prover&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createSession&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;masterSigner&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;parseEther&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;0.01&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;gameContract&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// All actions — ZERO popup&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;userOp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;prover&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;signAction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;wallet&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;gameContract&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;callData&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;Full source code, ZK circuit, and deployment scripts:&lt;br&gt;
👉 &lt;a href="https://github.com/ar1as1/session-game" rel="noopener noreferrer"&gt;https://github.com/ar1as1/session-game&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built with: Circom, SnarkJS, Ethers.js v6, Foundry, ERC-4337&lt;/p&gt;

</description>
      <category>web3</category>
      <category>ethereum</category>
      <category>gaming</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
