技术标签: 比特币
前序博客:
Robin Linus、Tino Steffens、Lukas George 等人成立了一个名为 ZeroSync 协会(ZeroSync Association)的瑞士非营利组织,该组织将牵头开发比特币证明系统。ZeroSync 于 2022 年获得了 Geometry Research 的资助,今年早些时候也获得了 StarkWare 的资助,此后成立了该基金会。该小组的工作是在以太坊生态系统之外使用 StarkWare 的 Cairo 编程语言的首次尝试。
ZeroSync 协会总部位于瑞士楚格州,由一个以多重签名钱包为代表的董事会进行管理,其密钥持有者在比特币或 ZKP 系统领域赢得了良好的声誉。作为安全措施和保护其隐私,密钥持有者的姓名不公开。
ZeroSync的使命为:
ZeroSync分为3大阶段:
1)Header Chain proof(原型已实现):类似于SPV轻节点,header state proof仅验证区块头、PoW和难度调整。此外,在所有区块头上使用Merkle树来增强header chain,从而为所有区块和交易提供简洁的包含证明。该state proof相对简单,轻量,计算成本低。将是ZeroSync第一个准备的生产级版本。
2)“Assumevalid” state proof(原型已实现):模仿Bitcoin Core的“assumevalid”选项。其验证除交易签名之外的所有比特币共识规则。更确切地说:假设所有witness数据都是有效的。此外,此证明使用Utreexo来通过UTXO集合承诺来增强链。ZeroSync团队于2023年2月完成了这种“Assumevalid” state proof的初步原型。
3)Full state proof:验证所有比特币共识规则,包括所有witness数据。在“Assumevalid” state proof的基础上,还验证了所有的witness数据。就计算而言,这是最昂贵的证明,并且需要对Prover进行重大优化才能变得可行。它将是最后一个做好生产准备的。
ZeroSync的第一个主要应用程序将是通过Blockstream卫星从太空广播state proofs,让几乎在地球上任何地方的每个人都可立即同步比特币区块链。
ZeroSync核心开发者有:
开源代码见:
ZeroSync的主要任务为:
ZeroSync为比特币网络部署了一个基于零知识证明的系统。该项目帮助比特币用户验证网络状态,而无需下载整个区块链。
区块链开发商 ZeroSync 已经实现了第一个基于 Stark 证明的比特币客户端系统——比特币header chain。
该项目基于 Starkware 的 Cairo 编程语言构建,将使比特币用户能够验证网络状态,而无需下载区块链或信任利用 Starks( StarkWare开发的一种 ZK 证明)的第三方。
ZK 证明是一种承诺增强隐私性和可扩展性的加密方法。ZeroSync 表示,通过使一方能够在不透露任何额外信息的情况下验证声明的真实性,ZK 证明可以基本上解决比特币在交易速度和网络拥塞方面的挑战。
ZeroSync 的verifier对于轻客户端来说是一个值得注意的发展,使他们能够几乎即时验证比特币交易的包含情况,客户端仅存储header chain proof,而不是下载所有区块头。ZeroSync 的比特币网络区块头Verifier使得为网络构建基于 zk 证明的轻客户端成为可能,这是无许可创新路线图的第一步。在短期内,轻客户端可能会让你在手机上运行比特币完整节点。但该路线图包括比特币之上的Layer 2协议,该协议可以将代币(例如稳定币)引入比特币网络,并使吞吐量增加 20 至 50 倍,而无需任何类型的分叉。
ZeroSync 联合创始人 Robin Linus 表示:“这大大降低了作为一等公民参与比特币网络的门槛。” “从长远来看,ZeroSync团队希望使用 Stark Proofs 为比特币带来大规模的可扩展性。ZeroSync 设计并目前正在实施Layer2 协议,该协议具有卓越的隐私性和可扩展性特性,允许比特币每秒处理超过 100 笔代币交易。这可能是让比特币实现其所需的可扩展性的一项重大成就。”Linus 告诉 Blockworks。“除此之外,我们还获得了完美的隐私——你可以对交易金额和交易图表进行加密,然后你基本上就可以获得与 Zcash 相当的一流隐私。”隐私优势本质上是协议使用 STARK(StarkWare发明的证明系统)的副产品,而不是故意的设计选择。
ZeroSync 表示,通过发布比特币网络header chain的verifier作为其网络 ZK 客户端的一部分,它已经实现了第一个重大里程碑。比特币轻客户端(即钱包)使用区块头和一种称为简单支付验证(SPV)的机制来验证交易。
ZeroSync 的下一步是向节点提供整个区块链的验证,而不需要它们下载和处理数据。“最终目标是在比特币主网上建立一个零知识证明Verifier,”Linus 补充道。
需要软分叉才能在 ZeroSync 设想的Layer 2 网络上实现无需信任的比特币桥接。但即使没有这一点,网络也可以无需许可地支持有用的功能,例如以稳定币支付费用的代币转账,从而无需使用比特币(BTC)来支付交易。
比特币从设计上就难以改变,需要核心开发人员的共识,以及包括矿工在内的全节点运营商的近乎共识。之前的 2021 年软分叉名为Taproot,经过多年酝酿,只有在超过 90% 的节点运营商表示同意后才激活。
“我们希望它很难改变,这样就可以成为硬通货,但一些改变是必要的,”Linus说。“似乎存在一种共识,即在某个时候我们确实希望在比特币上拥有某种 [zk 证明] Verifier。”
Linus 认为 ZeroSync 的作用是帮助找出最有意义的方法。
“我们尝试参与社区并推动这一进程,”他指出。“一切都必须是免费和开源的,否则永远不会进入主层。”
与此同时,他们完成的链状态证明不需要任何类型的分叉。
ZeroSync协议,用于降低运行Bitcoin全节点所需的存储和计算压力,特别适于资源有限的设备运行。其主要技术突破点在于:
from pymerkle import MerkleTree
utxo_hashes = [hash_function(utxo) for utxo in utxo_set]
merkle_tree = MerkleTree(leaves=utxo_hashes)
from pybloom import BloomFilter
filter = BloomFilter(capacity=10000, error_rate=0.1)
filter.add(item)
def prune_merkle_tree(tree, stale_nodes):
for node in stale_nodes:
tree.delete(node)
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor() as executor:
executor.map(validate_merkle_proof, merkle_proofs)
def pedersen_commitment(value, blinding_factor):
return G * value + H * blinding_factor
from py_ecc import bn128
_, proof = bn128.zk_snark(...)
ZK证明技术仍处于起步阶段。有许多不同的证明系统可供使用,需要考虑各种不同的权衡。这些选择会对构建在其之上的虚拟机产生影响。Linus 承认仅就一项达成共识是相当困难的。
StarkNet 基金会董事会成员、比特币思想领袖埃里克·沃尔 (Eric Wall)阐述了(ZKrollups on Bitcoin - notes)比特币在这一领域的决策过程面临的挑战之一。
“当 zk 社区本身没有以任何方式就哪种类型的 zkVM 最适合明年的比特币达成共识时,比特币社区如何能够就特定的 zk 验证操作码达成共识,更不用说未来5年还是未来100年?”
幸运的是,Linus 看到了一个可能的解决方案,即Simplicity 编程语言,该语言最初由Blockstream于大约五年前推出。
Simplicity 是一种类似于以太坊上的 Solidity 的智能合约语言,被描述为“比特币的最后一个软分叉”。Linus 表示,如果它被激活,它将“极大地提高比特币的脚本能力”。
“我们已经开始试验它,因为 Blockstream 刚刚在Liquid测试网上激活了它……这将是我们在比特币主层上试验 [zk 证明] verifier的第一步。”
StarkWare 的联合创始人 Eli Ben-Sasson 毫不奇怪地倡导Cairo+STARK 堆栈。
但 Linus 表示,采用 Simplicity 将使 zk 证明团队不必完全依赖一种或另一种证明系统。
“你可以相当自由地选择你想要使用的证明系统……它是一种智能合约的高级语言,它允许你进行基本上任何类型的计算,你可以用常规编程语言进行,”他说。
“因此,关于我们想要激活哪个 [zk 证明] verifier的问题就不会再有太多戏剧性的问题了——我们基本上只会实现我们认为最好的,”他补充道。
如果其他人认为他们有更好的证明系统,他们可以自由地实施它,而不需要任何人的许可。
ZeroSync Developer Toolkit (ZDK) 开发者工具包:
ZeroSync 开发者工具包(ZDK)允许具有最少领域专业知识的开发者将证明系统集成到现有的比特币生态系统中。这在比特币之上启用了“ZK 层”。以下示例给出了新颖的设计空间的想法:
更一般地说,该工具包可用于开发更复杂的链下应用程序,并具有改进的可扩展性、可用性和隐私性。
pip install zerosync
该工具包仍处于早期阶段和实验阶段,但已可使用 Python 包管理器将ZeroSync的 Bitcoin Cairo 库集成到自己的项目中。
ZeroSync 促进了将 ZKP 系统添加到比特币主层的过程。比特币的proof verifier可实现各种强大的新功能,如validity rollups,无需信任的双向挂钩,或完美的交易隐私。ZeroSync在非状态证明方面的工作旨在探索这一设计空间,并帮助开发未来链上证明的工具和最佳实践。
若Simplicity在比特币上被激活,一个好的候选人可能是用以下Simplicity语言编写的 STARK Verifier。很快将可在Liquid sidechain中对Simplicity中的STARK 进行实验。
ZeroSync 完全基于免费开源软件。
STARK和Cairo:ZeroSync 基于 STARK 证明,与其他证明系统相比相对简单。STARK 仅依赖于哈希函数和多项式。不需要新颖的密码学假设。最重要的是,没有可信的设置。
使用由StarkWare创建的Cairo语言来实现Bitcoin proofs。当前正与ZeroSync底层所有STARK工具开发者紧密合作。
ZeroSync Cairo代码均已开源:
其提供各种模块,如:
转向生产级比特币证明。
当前原型是比特币证明系统技术可行性的有力指标。现在ZeroSync团队希望将这项技术带入现实世界。
ZeroSync路线图规划为:
从想法成长为现实。
Zero相关文章有:
ZeroSync相关媒体资料有:
[1] Bitcoin+STARK: ZeroSync & Khepri
[2] 2023年10月新闻 ZeroSync 为比特币实现了第一个基于 Stark 的 ZK 客户端
[3] 2023年11月博客 Zero Sync Protocol: Reducing the computational and storage for running a Bitcoin Full Node
[4] 2023年3月新闻 The ZeroSync Association is developing a Bitcoin proof system based on STARK proofs
[5] ZeroSync demo
[6] ZeroSync官方twitter
[7] 2023年9月新闻 比特币首个零知识轻客户端寻求推动创新
[8] ZeroSync官网
文章浏览阅读1.6k次,点赞5次,收藏20次。【有害垃圾】:电池(1 号、2 号、5 号)、过期药品或内包装等;【可回收垃圾】:易拉罐、小号矿泉水瓶;【厨余垃圾】:小土豆、切过的白萝卜、胡萝卜,尺寸为电池大小;【其他垃圾】:瓷片、鹅卵石(小土豆大小)、砖块等。文件结构|----classes.txt # 标签种类|----data-txt\ # 数据集文件集合|----images\ # 数据集图片|----labels\ # yolo标签。_垃圾回收数据集
文章浏览阅读272次。之前写到 通过封装的API 已经可以做到使用redis进行缓存天气信息但是这一操作每次都由客户使用时才进行更新 不友好 所以应该自己实现半小时的定时存入redis 使用quartz框架 首先添加依赖build.gradle中// Quartz compile('org.springframework.boot:spring-boot-starter-quartz'..._cityid=101280803
文章浏览阅读1.8k次,点赞2次,收藏8次。对于使用触发事件来反应的按钮传递参数如下:可以通过lambda对function的参数传递:t.Bind(wx.EVT_BUTTON, lambda x, textctrl=t: self.input_fun(event=x, textctrl=textctrl))前提需要self.input_fun(self,event,t):传入参数而同时两个Frame之间的参数传..._wxpython frame.bind
文章浏览阅读1.9k次。最近接到一个任务要开发消消乐小游戏,当然首先就想到乐cocosCreator来作为开发工具。开发本身倒没有多少难点。消消乐的开发官网发行的书上有专门讲到。下面主要总结一下开发中遇到的问题以及解决方法屏幕适配由于设计尺寸是750*1336,如果适应高度,则在iphonX下,内容会超出屏幕宽度。按宽适应,iphon4下内容会超出屏幕高度。所以就需要根据屏幕比例来动态设置适配策略。 onLoad..._750*1336
文章浏览阅读745次,点赞21次,收藏21次。web项目的框架,通常更简单的数据源。21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对银行贷款管理系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对银行贷款管理系统进行了一些具体测试。_vue3重构信贷管理系统
文章浏览阅读774次。题目描述原题目戳这里小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘是一行 NNN 个格子,每个格子上一个分数(非负整数)。棋盘第 111 格是唯一的起点,第 NNN 格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中 MMM 张爬行卡片,分成 444 种不同的类型( MMM 张卡片中不一定包含所有 444 种类型的卡片,见样例),每种类型的卡片上分别标有 1,2,3,41, 2, 3, 41,2,3,4 四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数
文章浏览阅读1.5k次。吐槽内存泄露 ? 内存暴涨 ? OOM ?首先提一下我自己曾经历过多次内存泄露,到底有几次? 我自己心里悲伤的回想了下,造成线上影响的内存泄露事件有将近5次了,没上线就查出内存暴涨次数可能更多。这次不是最惨,相信也不会是最后的内存的泄露。有人说,内存泄露对于程序员来说,是个好事,也是个坏事。 怎么说? 好事在于,技术又有所长进,经验有所心得…. 毕竟不是所有程序员都写过OOM的服务…. 坏事..._python内存泄露
文章浏览阅读747次。1.sensor typeTYPE_ACCELEROMETER=1 TYPE_MAGNETIC_FIELD=2 (what's value mean at x and z axis)TYPE_ORIENTATION=3TYPE_GYROSCOPE=4 TYPE_LIGHT=5(in )TYPE_PRESSURE=6TYPE_TEMPERATURE=7TYPE_PRO_draft sensor
文章浏览阅读581次。/* * Copyright (c) 2009 湖南师范大学数计院 一心飞翔项目组 * All Right Reserved * * 文件名:matrix.cpp 定义Point、Node、Matrix类的各个方法 * 摘 要:定义矩阵类,包括矩阵的相关信息和方法 * * 作 者:刘 庆 * 修改日期:2009年7月19日21:15:12 **/
文章浏览阅读1.7w次,点赞6次,收藏20次。HTML不再推荐页面中使用框架集,因此HTML5删除了<frameset>、<frame>和<noframes>这三个元素。不过HTML5还保留了<iframe>元素,该元素可以在普通的HTML页面中使用,生成一个行内框架,可以直接放在HTML页面的任意位置。除了指定id、class和style之外,还可以指定如下属性:src 指定一个UR..._iframe allow-top-navigation
文章浏览阅读785次,点赞29次,收藏12次。Zipkin 是 Twitter 的一个开源项目,它基于 Google Dapper 实现,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的 REST API 接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源。除了面向开发的 API 接口之外,它也提供了方便的 UI 组件来帮助我们直观的搜索跟踪信息和分析请求链路明细,
文章浏览阅读358次。“随着天网工程的建设,中国已经建成世界上规模最大的视频监控网,摄像头总 数超过2000万个,成为世界上最安全的国家。视频图像及配套数据已经应用在反恐维稳、治安防控、侦查破案、交通行政管理、服务民生等各行业各领域。烁博科技视频安全核心能力:精准智能数据采集能力:在建设之初即以应用需求为导向,开展点位选择、设备选型等布建工作,实现前端采集设备的精细化部署。随需而动的AI数据挖掘能力:让AI所需要的算力、算法、数据、服务都在应用需求的牵引下实现合理的调度,实现解析能力的最大化。完善的数据治理能力:面_2018年8月由于某知名视频监控厂商多款摄像机存在安全漏洞