') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); feat: add proving system to vk or program code commitment by entropidelic · Pull Request #939 · yetanotherco/aligned_layer · GitHub
Skip to content

feat: add proving system to vk or program code commitment - #939

Merged
MauroToscano merged 11 commits into
stagingfrom
add-proving-system-to-vk-commitment
Sep 13, 2024
Merged

feat: add proving system to vk or program code commitment#939
MauroToscano merged 11 commits into
stagingfrom
add-proving-system-to-vk-commitment

Conversation

@entropidelic

@entropidelicentropidelic commented Sep 9, 2024

Copy link
Copy Markdown
Contributor

This PR changes how the verification key commitment is calculated. Now the commitment is made as follows,

commitment = keccak256(verification_key_bytes | proving_system_id)

This is needed to avoid attacks where verification keys from different proving systems could be used in a verification.

Testing

  • Send proofs as usual and check everything works as expected

  • Test the get-vk-commitment as follows:

    • Add this to line 201 of batcher/aligned-sdk/src/sdk.rs:
    println!("Verification key commitment: {:?}", hex::encode(aligned_verification_data[0].verification_data_commitment.proving_system_aux_data_commitment));
    • Run make install_aligned_compiling
    • At the root of the repo, run
    aligned get-vk-commitment --verification_key_file scripts/test_files/gnark_plonk_bn254_script/plonk.vk --proving_system GnarkPlonkBn254
    

    The commitment will be logged in the terminal.

    • Send some plonk proofs using make batcher_send_plonk_bn254_burst and see that the printed commitment is the same as the one you got with the get-vk-commitment command.

@entropidelic
entropidelicforce-pushed the add-proving-system-to-vk-commitment branch from c44022f to be308e2CompareSeptember 9, 2024 19:21
@entropidelic
entropidelic marked this pull request as ready for review September 9, 2024 19:28
@entropidelic
entropidelic marked this pull request as draft September 9, 2024 19:29
@entropidelic
entropidelic marked this pull request as ready for review September 12, 2024 15:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@entropidelic@MauroToscano@PatStiles@uri-99