- SP1:基于Plonky3构建的zkVM
mutourend
zkVMzkVM
1.引言SP1为SuccictLab开源的,基于Plonky3构建的zkVM。开源代码见:https://github.com/succinctlabs/sp1(Rust)当前暂未实现onchain-verifier,但会采用标准的STARK->SNARKverifier。SP1zkVM基于的指令集为:riscv32im(与RISCZero的指令集一样)在SP1zkVM中运行某程序之前,需将该程序
- RISC Zero zkVM Host & Guest 101
mutourend
zkVMzkVM
1.引言在RISCZerozkVM应用程序中,host为运行RISCZerozkVM的机器(或系统)。host为不可信agent,负责设置zkVM环境和处理执行过程中的输入输出。host程序(代码),是指:zkVM应用中的host-native、不可信的部分。负责加载guest程序,并为guest程序提供必要的输入。若基于Bonsai构建,则无需编写host代码。zkVM应用中,host负责构建并
- ZK*FM:RISC Zero zkVM的形式化验证
mutourend
zkVMzkVM
1.引言开源代码见:https://github.com/risc0/risc0-lean4(Lean和Rust)ZK*FM为RISCZerozkVM的形式化验证:ZK:Thecomputerrantherightprogram。FM:Theprogramdidtherightthing。ZK*FM:Thecomputerdidtherightthing。可使用FM来证明RISCZero的ZKto
- RISC Zero zkVM guest程序优化技巧 及其 与物理CPU的关键差异
mutourend
zkVMzkVM
1.引言RISCZerozkVM设计并实现为与物理CPU功能类似。从而对于RISCZerozkVMguest程序:可使用通用编程语言(如Rust)和通用工具(如Cargo,LLVM)。通常,也可使用通用优化技术来优化。在RISCZerozkVM的某应用中,guest程序为zkVM待执行和证明的代码。guest应具有reading、writting和committing的基本功能,具体为:1)读取输
- 技术探秘:在RISC Zero中验证FHE——由隐藏到证明:FHE验证的ZK路径(1)
mutourend
零知识证明零知识证明
1.引言开源代码实现见:https://github.com/hashcloak/fhe_risc0_zkvm(Rust)https://github.com/weikengchen/vfhe-profiled(Rust)https://github.com/l2iterative/vfhe0(Rust)L2IVResearch团队近期尝试用ZKP来验证FHE,原因在于如下2大应用场景的出现:1)
- Reed-Solomon Codes及其与RISC Zero zkVM的关系
mutourend
zkVMzkVM
1.引言前序博客:Reed-SolomonCodes——RS纠错码Reed-SolomonCodes当前广泛用于:QRcodes二维码Cellularcommunication蜂窝通信STARKs2.简化的Reed-SolomonEncoding(RS编码)所谓encoding(编码),是指:将messages转换为codewords的系统。即:Enc:{messages}→{codewords}
- RISC Zero zkVM架构
mutourend
zkVMzkVM
1.引言RISCZerozkVM为:基于FRI+PLONK构建的采用VonNeumann架构的ZKMachine将RISC-V微控制器具化为某基于STARK的证明系统,的微架构和编码机制。2.Row(Time)Structure一个cycle对应1个memorytransaction,对用户传入的程序elf可执行文件的处理流程为:1)INIT:初始化阶段。有特殊的初始化cycle,用于重置状态。2
- Continuations:扩展RISC Zero zkVM支持(无限)大计算
mutourend
zkVMzkVM
1.引言前序博客:Risc0:使用Continunations来证明任意EVM交易RISCZero在2013年5月的0.15版本中,引入了Continuous机制:移除了证明生成时的“cyclelimit”限制解锁了在RISCZerozkVM中运行EVMinterpreter或WASMinterpreter的能力扩展为可支持(无限)大计算Continuous机制的核心思想为:将execution切
- RISC Zero zkVM 白皮书
mutourend
zkVMzkVM
1.引言RISCZero提供了开源的虚拟机+零知识证明系统,即zero-knowledgevirtualmachine(简称zkVM)。当在zkVM中执行某RISC-V二进制文件时,其输出为:二进制文件执行结果+一个computationalreceipt,提供了计算完整性的零知识证明。RISCZero的证明系统采用zk-STARK,基于以下关键要素:FRI协议DEEP-ALI基于HMAC-SHA
- Risc zero ZKVM:zk-STARKs + RISC-V
mutourend
零知识证明zkVMrisc-v
1.引言Risczero定位为:TheGeneralPurposeZero-KnowledgeVM.ProveanyComputation.VerifyInstantly.开源代码见:https://github.com/risc0/risc0TheRISCZeroZKVMisaverifiablecomputerthatworkslikearealembeddedRISC-Vmicroproce
- RISC0:Towards a Unified Compilation Framework for Zero Knowledge
mutourend
zkVM零知识证明
1.引言本文主要摘自RISC0(RISCZERO)创始人BrianRetford在CompilerandComposabilityinZKP上的演讲内容。2.何为ZKVM?3.密集型计算加速策略4.MLIR参考资料[1]CompilerandComposabilityinZKP
- RISC-V与RISC Zero zkVM的关系
mutourend
zkVMzkVM
1.引言本文基本结构为:编程语言背景介绍RISC-V虚拟机作为zkVM电路为何选择RISC-V?2.编程语言背景介绍高级编程语言不专门针对某个架构,其便于人类编写。高级编程语言代码,经编译器编译后,会生成针对专门某架构的汇编代码,汇编代码是供机器使用的。也可以直接编写汇编代码:以上汇编代码示例中:蓝色框表示:所编码的数据和指令。黄色框:为对蓝色框的反汇编。黑色框:为这些opcodes的位置信息。可
- 针对zkVM中Memory Consistency Checks的Polynomial IOPs
mutourend
zkVMzkVM
1.引言主要参考YuncongZhang等人2023年论文《PolynomialIOPsforMemoryConsistencyChecksinZero-KnowledgeVirtualMachines》。在设计zkvm时,需检查其所有组件的功能一致性,包括:instructionfetcher寄存器文件算术化逻辑单元内存其中最具挑战的技术协议为Memoryconsistencycheck(MCC
- RISC Zero zkVM性能指标
mutourend
zkVMzkVM
1.引言对应代码:https://github.com/risc0/risc0(C++和Rust)运行如下指令,进行性能评估:cargorun-r--exampleloop//CPUcargorun-r-Fmetal--exampleloop//MetalGPUcargorun-r-Fcuda--exampleloop//CUDAGPUcargobench--benchfib//默认为CPU,可配
- zkVM设计性能分析
mutourend
zkVMzkVM
1.引言本文主要参考:2023年9月ZKSummit10WeiDai@1k(x)&TerryChung@1k(x)分享视频ZK10:AnalysisofzkVMDesigns-WeiDai&TerryChung当前有各种zkVM,其设计思想各有不同,且各有取舍,本文重点对现有各zkVM设计进行分析。zkVMs寒武纪大爆发:2020年之前的zkVM方案均是学术性的,不具备实用性,具体有:TinyRA
- Polygon Miden:扩展以太坊功能集的ZK-optimized rollup
mutourend
zkVMzkVM
1.引言PolygonMiden定位为zkVM,定于2023年Q4上公开测试网。zk、zkVM、zkEVM及其未来中指出,当前主要有3种类型的zkVM,括号内为其相应的指令集:mainstream(WASM,RISC-V)EVM(EVMbytecode)ZK-Optimized(专为零知识证明优化的新型指令集,如Cairo的指令集和zkSync的指令集)PolygonMiden为:ZK-optim
- zk、zkVM、zkEVM及其未来
mutourend
zkVM区块链
1.引言zk(zero-knowledge)proof:可保证计算的完整性、正确性和隐私性,在区块链扩容和隐私领域大有可为。zk-SNARK和zk-STARK各具优势,二者结合潜力无穷。zkVM可为应用增加零知识证明,zkVM可以按mainstrem、EVM或新构建的指令集进行分类。EVM兼容性包括EVM兼容性、等价性和规范级兼容性。zkEVM是一个EVM兼容且零知识证明友好的环境。它可以分为基于
- 基于Nova/SuperNova的zkVM
mutourend
zkVMzkVM
1.引言本文为2023年3月13~4月7日ZKSpringResidencyinVietnam上,由PSE团队、OrochiNetwork团队、0xPARC团队、Oskar(独立个人)以及Delv团队联合发布。Nova:借助IncrementalVerifiableComputation(IVC)和foldingscheme,Nova可更高效地执行重复相同的代码块。Nova采用的安全假设为GLOG
- Research Day 2023:Succinct ZKP最新进展
mutourend
零知识证明零知识证明
1.引言主要见YingTong在ResearchDay2023上视频分享:AdvancesintheEfficiencyofSuccinctProofs-YingTongZKP技术可用于:1)Verifiablevirtualmachine:如各种zkEVM和zkVM。2)verifiablecloudcomputing:2015年论文《ClusterComputinginZeroKnowledg
- zkLLVM:nil Foundation开发的电路编译器
mutourend
零知识证明零知识证明
1.引言zkLLVM:nilFoundation开发的电路编译器,不是zkVM。不过,“zkLLVM+proofmarket”可构建zkVM。开源代码见:zkLLVMCircuitCompiler(C++)zkLLVM可:将高级编程语言编写的电路编译为LLVMIR(IntermediateRepresentation)bytecode表示;当前支持C/C++(Clang15),即将支持Rust语言
- 智能合约开发——Sui/Move vs. Solana/Rust
mutourend
智能合约智能合约
1.引言前序博客有:zkMove——针对Move合约生态的zkVM定位为高性能L1的Aptos和Sui,均采用Move合约编程语言。Solana也定位为高性能L1,但其采用Rust合约编程语言。本文重点对比Sui/Move和Solana/Rust合约编程语言。【Aptos/Move为不同的Move变种,有细微的差别。不过只要原生支持Movebytecode,则所有主要Move优势适于所有Move变
- zkMove——针对Move合约生态的zkVM
mutourend
zkVM零知识证明
1.引言Move为不同于Solidity的,开源的安全的智能合约开发语言,最早由Facebook为Diem链创造开发。不过,Move本身设计为与平台无关的语言,具有通用的库、工具,并使得采用完全不同数据模型和执行模型的链的开发者社区都可使用Move。当前支持Move合约的链有:Sui:定位为具有高吞吐量、低延迟、面向资产编程模式的下一代智能合约平台,采用Move语言进行合约开发。当前处于devne
- BulletproofVM:Avalanche上的zkVM
mutourend
zkVM零知识证明
1.引言开源代码见:https://github.com/usmaneth/BulletproofVM(Rust)BulletproofVM为Avalanche上的基于Bulletproofs证明系统构建的zkVM,其主要特性为:MaintainsastateconsistingofaccountswithbalancesandassetsExecutesstandardtransactionsf
- 辗转相处求最大公约数
沐刃青蛟
C++漏洞
无言面对”江东父老“了,接触编程一年了,今天发现还不会辗转相除法求最大公约数。惭愧惭愧!
为此,总结一下以方便日后忘了好查找。
1.输入要比较的两个数a,b
忽略:2.比较大小(因为后面要的是大的数对小的数做%操作)
3.辗转相除(用循环不停的取余,如a%b,直至b=0)
4.最后的a为两数的最大公约数
&
- F5负载均衡会话保持技术及原理技术白皮书
bijian1013
F5负载均衡
一.什么是会话保持? 在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中,一个客户与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下
- Object.equals方法:重载还是覆盖
Cwind
javagenericsoverrideoverload
本文译自StackOverflow上对此问题的讨论。
原问题链接
在阅读Joshua Bloch的《Effective Java(第二版)》第8条“覆盖equals时请遵守通用约定”时对如下论述有疑问:
“不要将equals声明中的Object对象替换为其他的类型。程序员编写出下面这样的equals方法并不鲜见,这会使程序员花上数个小时都搞不清它为什么不能正常工作:”
pu
- 初始线程
15700786134
暑假学习的第一课是讲线程,任务是是界面上的一条线运动起来。
既然是在界面上,那必定得先有一个界面,所以第一步就是,自己的类继承JAVA中的JFrame,在新建的类中写一个界面,代码如下:
public class ShapeFr
- Linux的tcpdump
被触发
tcpdump
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支 持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
实用命令实例
默认启动
tcpdump
普通情况下,直
- 安卓程序listview优化后还是卡顿
肆无忌惮_
ListView
最近用eclipse开发一个安卓app,listview使用baseadapter,里面有一个ImageView和两个TextView。使用了Holder内部类进行优化了还是很卡顿。后来发现是图片资源的问题。把一张分辨率高的图片放在了drawable-mdpi文件夹下,当我在每个item中显示,他都要进行缩放,导致很卡顿。解决办法是把这个高分辨率图片放到drawable-xxhdpi下。
&nb
- 扩展easyUI tab控件,添加加载遮罩效果
知了ing
jquery
(function () {
$.extend($.fn.tabs.methods, {
//显示遮罩
loading: function (jq, msg) {
return jq.each(function () {
var panel = $(this).tabs(&
- gradle上传jar到nexus
矮蛋蛋
gradle
原文地址:
https://docs.gradle.org/current/userguide/maven_plugin.html
configurations {
deployerJars
}
dependencies {
deployerJars "org.apache.maven.wagon
- 千万条数据外网导入数据库的解决方案。
alleni123
sqlmysql
从某网上爬了数千万的数据,存在文本中。
然后要导入mysql数据库。
悲剧的是数据库和我存数据的服务器不在一个内网里面。。
ping了一下, 19ms的延迟。
于是下面的代码是没用的。
ps = con.prepareStatement(sql);
ps.setString(1, info.getYear())............;
ps.exec
- JAVA IO InputStreamReader和OutputStreamReader
百合不是茶
JAVA.io操作 字符流
这是第三篇关于java.io的文章了,从开始对io的不了解-->熟悉--->模糊,是这几天来对文件操作中最大的感受,本来自己认为的熟悉了的,刚刚在回想起前面学的好像又不是很清晰了,模糊对我现在或许是最好的鼓励 我会更加的去学 加油!:
JAVA的API提供了另外一种数据保存途径,使用字符流来保存的,字符流只能保存字符形式的流
字节流和字符的难点:a,怎么将读到的数据
- MO、MT解读
bijian1013
GSM
MO= Mobile originate,上行,即用户上发给SP的信息。MT= Mobile Terminate,下行,即SP端下发给用户的信息;
上行:mo提交短信到短信中心下行:mt短信中心向特定的用户转发短信,你的短信是这样的,你所提交的短信,投递的地址是短信中心。短信中心收到你的短信后,存储转发,转发的时候就会根据你填写的接收方号码寻找路由,下发。在彩信领域是一样的道理。下行业务:由SP
- 五个JavaScript基础问题
bijian1013
JavaScriptcallapplythisHoisting
下面是五个关于前端相关的基础问题,但却很能体现JavaScript的基本功底。
问题1:Scope作用范围
考虑下面的代码:
(function() {
var a = b = 5;
})();
console.log(b);
什么会被打印在控制台上?
回答:
上面的代码会打印 5。
&nbs
- 【Thrift二】Thrift Hello World
bit1129
Hello world
本篇,不考虑细节问题和为什么,先照葫芦画瓢写一个Thrift版本的Hello World,了解Thrift RPC服务开发的基本流程
1. 在Intellij中创建一个Maven模块,加入对Thrift的依赖,同时还要加上slf4j依赖,如果不加slf4j依赖,在后面启动Thrift Server时会报错
<dependency>
- 【Avro一】Avro入门
bit1129
入门
本文的目的主要是总结下基于Avro Schema代码生成,然后进行序列化和反序列化开发的基本流程。需要指出的是,Avro并不要求一定得根据Schema文件生成代码,这对于动态类型语言很有用。
1. 添加Maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<proj
- 安装nginx+ngx_lua支持WAF防护功能
ronin47
需要的软件:LuaJIT-2.0.0.tar.gz nginx-1.4.4.tar.gz &nb
- java-5.查找最小的K个元素-使用最大堆
bylijinnan
java
import java.util.Arrays;
import java.util.Random;
public class MinKElement {
/**
* 5.最小的K个元素
* I would like to use MaxHeap.
* using QuickSort is also OK
*/
public static void
- TCP的TIME-WAIT
bylijinnan
socket
原文连接:
http://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html
以下为对原文的阅读笔记
说明:
主动关闭的一方称为local end,被动关闭的一方称为remote end
本地IP、本地端口、远端IP、远端端口这一“四元组”称为quadruplet,也称为socket
1、TIME_WA
- jquery ajax 序列化表单
coder_xpf
Jquery ajax 序列化
checkbox 如果不设定值,默认选中值为on;设定值之后,选中则为设定的值
<input type="checkbox" name="favor" id="favor" checked="checked"/>
$("#favor&quo
- Apache集群乱码和最高并发控制
cuisuqiang
apachetomcat并发集群乱码
都知道如果使用Http访问,那么在Connector中增加URIEncoding即可,其实使用AJP时也一样,增加useBodyEncodingForURI和URIEncoding即可。
最大连接数也是一样的,增加maxThreads属性即可,如下,配置如下:
<Connector maxThreads="300" port="8019" prot
- websocket
dalan_123
websocket
一、低延迟的客户端-服务器 和 服务器-客户端的连接
很多时候所谓的http的请求、响应的模式,都是客户端加载一个网页,直到用户在进行下一次点击的时候,什么都不会发生。并且所有的http的通信都是客户端控制的,这时候就需要用户的互动或定期轮训的,以便从服务器端加载新的数据。
通常采用的技术比如推送和comet(使用http长连接、无需安装浏览器安装插件的两种方式:基于ajax的长
- 菜鸟分析网络执法官
dcj3sjt126com
网络
最近在论坛上看到很多贴子在讨论网络执法官的问题。菜鸟我正好知道这回事情.人道"人之患好为人师" 手里忍不住,就写点东西吧. 我也很忙.又没有MM,又没有MONEY....晕倒有点跑题.
OK,闲话少说,切如正题. 要了解网络执法官的原理. 就要先了解局域网的通信的原理.
前面我们看到了.在以太网上传输的都是具有以太网头的数据包. 
- Android相对布局属性全集
dcj3sjt126com
android
RelativeLayout布局android:layout_marginTop="25dip" //顶部距离android:gravity="left" //空间布局位置android:layout_marginLeft="15dip //距离左边距
// 相对于给定ID控件android:layout_above 将该控件的底部置于给定ID的
- Tomcat内存设置详解
eksliang
jvmtomcattomcat内存设置
Java内存溢出详解
一、常见的Java内存溢出有以下三种:
1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。
可以利用JVM提
- Java6 JVM参数选项
greatwqs
javaHotSpotjvmjvm参数JVM Options
Java 6 JVM参数选项大全(中文版)
作者:Ken Wu
Email:
[email protected]
转载本文档请注明原文链接 http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm!
本文是基于最新的SUN官方文档Java SE 6 Hotspot VM Opt
- weblogic创建JMC
i5land
weblogicjms
进入 weblogic控制太
1.创建持久化存储
--Services--Persistant Stores--new--Create FileStores--name随便起--target默认--Directory写入在本机建立的文件夹的路径--ok
2.创建JMS服务器
--Services--Messaging--JMS Servers--new--name随便起--Pers
- 基于 DHT 网络的磁力链接和BT种子的搜索引擎架构
justjavac
DHT
上周开发了一个磁力链接和 BT 种子的搜索引擎 {Magnet & Torrent},本文简单介绍一下主要的系统功能和用到的技术。
系统包括几个独立的部分:
使用 Python 的 Scrapy 框架开发的网络爬虫,用来爬取磁力链接和种子;
使用 PHP CI 框架开发的简易网站;
搜索引擎目前直接使用的 MySQL,将来可以考虑使
- sql添加、删除表中的列
macroli
sql
添加没有默认值:alter table Test add BazaarType char(1)
有默认值的添加列:alter table Test add BazaarType char(1) default(0)
删除没有默认值的列:alter table Test drop COLUMN BazaarType
删除有默认值的列:先删除约束(默认值)alter table Test DRO
- PHP中二维数组的排序方法
abc123456789cba
排序二维数组PHP
<?php/*** @package BugFree* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $*** Sort an two-dimension array by some level
- hive优化之------控制hive任务中的map数和reduce数
superlxw1234
hivehive优化
一、 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务。 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);2. 
- Spring Boot 1.2.4 发布
wiselyman
spring boot
Spring Boot 1.2.4已于6.4日发布,repo.spring.io and Maven Central可以下载(推荐使用maven或者gradle构建下载)。
这是一个维护版本,包含了一些修复small number of fixes,建议所有的用户升级。
Spring Boot 1.3的第一个里程碑版本将在几天后发布,包含许多