1. 引言

当前,以下项目借助STARK,为Bitcoin引入类似Mina的功能:

  • https://github.com/lucidLuckylee/zerosync:Pure Cairo based(Cairo+Python)
  • https://github.com/bitcoin-stark/khepri:StarkNet contract based(Cairo+Python)

2. ZeroSync

ZeroSync定位为:
不再需要下载数百GB的区块,借助STARK proof,即可验证整个历史交易以及每个人的当前balance。

ZeroSync项目启动历程为:

  • 2022年2月,Lukas George启动STARK relay作为其TU Berlin的本科论文,在STARK relay中,其证明了the headers chain of Bitcoin。
  • Geometry Research为项目开发提供了grant资助。
  • 2022年7月,Robin Linus加入项目,并将项目规划为full chain proof。
  • Ruben Somsen将项目重命名为ZeroSync。

ZeroSync致力于成为custom Bitcoin proofs的工具盒。借助STARK proof,可:

  • transform the blockchain data
  • enhance the blockchain data
  • filter the blockchain data
  • index the blockchain data for efficient queries
  • optimise the blockchain data for individual use case

ZeroSync的长期愿景为:“zerosync and scan the chain efficiently”,即:

  • 1)Merkelized headers chain:对链上任意交易压缩并提供灵活的inclusion proofs;
  • 2)Block filters:为zk-clients提供block filters,以检查某区块是否与其相关;
  • 3)Compact blocks:为zk-clients提供区块压缩,可仅下载与其相关的部分区块,而不是所有区块。

ZeroSync未来也希望可实现:

  • 1)Compact ring signatures:如,证明you control outputs worth at least 1BTC without revealing which ones。
  • 2)Instant history verification for client-side validation protocols like Omni, RGB, or Taro,但是:
    • 借助transaction graph obfuscation,具有更好的隐私。每笔交易可为a coin teleport proven in zk。
  • 3)强化Lightning Network中的routing隐私?

Zero Sync当前仍处于早期阶段,ZeroSync路线图为:

  • 1)阶段1——“assumvalid”:即模仿“assumevalid” option of Bitcoin Core实现chain proof,主要工作为:

    • 解析区块、区块头和交易
    • 验证链上各种哈希(如区块哈希、前一区块哈希、Merkle root、TxID等)
    • 验证the chain’s work(proof-of-work 以及 难度重新校准)
    • 验证UTXO set(Utreexo accumulator 以及 提供inclusion proof的“bridge node”)
    • 以recursive STARKs实现的chain of proof:即在当前chain proof中验证previous chain proof。
  • 2)阶段2——“measure and optimise”:测量并优化assumevalid proof的性能,使得其可支撑未来扩展到Bitcoin Scripts validation证明,基本流程为:

    • 对full of transactions区块的assumevalid proof进行benchmark
    • 识别性能瓶颈并看是否存在showstoppers
    • 优化瓶颈,直到可满足添加Script validation性能要求
  • 3)阶段3——“Bitcoin Script”:实现witness verification,并完成full chain proof:

    • Bitcoin Script:

      • Compute signature hashes(ALL/NONE/SINGLE/ANYONECANPAY,…)
      • Script interpreter(实现所有opcodes)
    • Payment类型有:
      • Legacy:p2pk/p2pkh/p2sh
      • SegWit:p2wpkh/p2wsh
      • Taproot:p2tr,以及key path & script path spend
    • Crypto:
      • ECDSA,Schnorr
      • SH256/HASH256/SHA1/RIPEMD160/HASH160
    • Chain verifier:
      • 软件:用于下载和证明a chainstate directory for a Bitcoin Core full node
      • 网站:在一个简单的网站中展示chainstate proof demo。

    完成以上3个阶段之后,可同步a pruned full node by downloading only the current UTXO set。
    运行一个ZeroSync全节点无需修改Bitcoin Core的代码,仅需要在验证通过之后,将UTXO set拷贝到Core的chainstate路径下即可。

  • 4)阶段4——Hardening:代码在生产可用之前,需对其进行测试、review、固化:

    • 收集社区反馈
    • 进行代码review
    • 更多的testing,并添加fuzzing
    • Bug Bounty program

3. Khepri

Khepri定位为:

  • STARK-proven Stateful Bitcoin client enabling hyper fast trustless sync and checkpoints。

Khepri当前仍处于PoC阶段,用于展示在不改变Bitcoin协议的情况下如何使用STARK proof。

Kehpri的核心思想为:

  • 借助STARK proof system来解决Bitcoin生态中的某些issue,或至少强化用户体验。

借助STARK proof和Cairo,可验证the integrity of a computation without having to naively redo all computation。因此,Verifier可确信the honest execution of a program,而不需要执行该程序来检查结果。

验证proof 比 直接执行该程序 的速度要快指数级的,从而提供了可扩容性。
此外,生成proof的开销,相对于 正常执行程序而不生成proof 的开销,是可忽略的。

这种机制为多个用户场景提供了很多潜在优化可能,如:

  • hyper fast & trustless synchronization (IBD)
  • enhanced Simplified Payment Verification
  • protection against DoS on the P2P layer

Kehpri总体架构为:

附录

  • Omni:为构建与Bitcoin之上的去中心化资产平台,用于创建和交易自定义数字资产及货币。
  • RGB:为基于Bitcoin和闪电网络之上构建的复杂智能合约协议。为Bitcoin生态的Layer2和Layer3,为client-side validated state and smart contracts system。RGB:
    • 不是token协议;
    • 与闪电网络配合使用;
    • 由于是client-validated特性,无链上使用和可跟踪痕迹;
    • 独立于Bitcoin timechain扩容;
    • 基于最好的研究产品可提供零知识性和隐私性:
      • Mimblewhimble:Bulletproofs by Andrew Poelstra
      • Liquid:Confidential Assets by Blockstream
  • Taro:为Bitcoin闪电网络实验室(Lightning Labs) 的项目,Taro协议利用2021年11月在比特币上推出的Taproot升级基础上,向比特币和闪电网络的用户引入稳定币、NFT和其他资产的方案。Taro将允许比特币以外的资产在比特币主区块链上发行,并能通过第二层闪电网络(LN)转移和使用这些资产
    Taproot升级:

    • 使用Schnorr签名代替ECDSA签名,可将多笔交易打包形成聚合签名,打包后的交易 与 普通交易没有区别,具有更好的安全性和隐匿性;
    • 利用MSAT(Merklized Abstract Syntax Tree)结构——来自于抽象语法树(Abstract Syntax Tree)和默克尔树(Merkle Tree)的结合。MAST允许在散列所有内容之前对交易或智能合约的每个属性进行分割。当比特币交易发生时,只需要提供其分支运算并将分支哈希连接到固定大小的默克尔根上,从而减少交易数据,提升区块空间。而且MAST可以根据交易不同设置不同的条件,也就是实现智能合约功能。

参考资料

[1] twitter some efforts to make Bitcoin work similarly to Mina
[2] 比特币Taproot升级顺利完成,对比特币有哪些长期影响?
[3] Taro——Taproot-powered protocol
[4] Bitcoin RGB协议

Bitcoin+STARK: ZeroSync Khepri相关推荐

  1. Python Day23 stark组件1

    模仿admin写一个类似功能的组件,叫做stark admin流程之启动 单例模式 单例:只允许一个类实例化出一个对象 使用 new 为了使类只能出现一个实例,我们可以使用 new 来控制实例的创建过 ...

  2. 从源码开始运行Bitcoin Core

    安装Ubuntu 环境:虚拟机 网络连接:桥接 系统版本:16.04 源:ali 安装编译环境(依赖库) sudo apt-get update sudo apt-get install build- ...

  3. Bitcoin.com| 比特币现金2019·年度回顾

    2019年即将结束,比特币现金(BCH)生态系统已经非常成熟.今年比特币现金成功实现两次升级.此外,BCH今年的应用率有所增加,SLP Token爆炸式增长,第三方应用程序大量涌现,并且随着CashS ...

  4. Bitcoin.com宣布将成立2亿美元的BCH生态系统投资基金

    美国东部时间11月19日下午,在英国伦敦举办的BCH聚会如期而至,Bitcoin.com网站拥有者Roger Ver在做分享的时候宣布将会在2020年设立2亿美元的BCH生态系统投资基金,用于发展推广 ...

  5. Bitcoin.com开发人员正创建一个用Rust语言编写的BCH全节点

    近日,Bitcoin.com开发人员Gabriel Cardona在推特表示,自己正创建一个用Rust语言编写的BCH全节点,目的是为了改变完整节点的范式,让BCH代码库更加安全.编程人员技术贡献更加 ...

  6. Bitcoin.com| 使用加密的三大驱动因素​——BCH City总结

    随着澳大利亚汤斯维尔的会议和相关后续活动的全部结束,参与者们回家重新投入工作中. ​​ 随着澳大利亚汤斯维尔的会议和相关后续活动的全部结束,参与者们回家后重新投入工作中.因此,我们将从整体上审视本次会 ...

  7. Bitcoin.com支持BCH第N弹——派息神器SLP Dividend Calculator

    8月23日,支持BCH的网站Bitcoin.com发布了一款名为SLP Dividend Calculator的新应用程序.这一应用程序是一款派息神器,能够允许用户构建交易向任何SLP代币持有者支付股 ...

  8. Bitcoin推特遭到清洗!发生了什么?

    近日,BCH社区爱好者发现Bitcoin推特号遭到了清洗,大量与BCH相关的推文被删除,账号附带的链接也从Roger Ver的Bitcoin.com网站变为了Bitcoin core所持有的Bitco ...

  9. Bitcoin Unlimited客户端发布新版本,删除了BSV协议功能

    上周末,BCH核心开发组之一Bitcoin Unlimited开发人员发布了新版本的客户端1.6.0.1,新版的客户端删除了Bitcoin SV协议功能,这意味着BU全节点客户端将不再支持BSV区块链 ...

最新文章

  1. ListView getChildCount 以及getChildAt 坑 误区指南
  2. 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第9章-不确定分数阶系统的包含控制
  3. Linux常用网络命令总结
  4. xamp已有mysql端口修改依然启动不_关于xampp启动不了mysql的解决方法
  5. Unit Testing in iOS
  6. Java中带标签的break,continue
  7. MediaWiki/安装
  8. cte公用表表达式_CTE SQL删除; 在SQL Server中删除具有公用表表达式的数据时的注意事项
  9. 华为员工:工作3年,年薪50万,为什么要辞职?出租车司机觉得我在吸毒!
  10. 本地Git仓库关联多个远程仓库的两种方法
  11. python web框架的基础:WSGI、uWSGI、Nginx、web框架的关系
  12. python 英文语义分析_python语意分析
  13. 同IP不同端口导致cookie冲突的解决方法
  14. BZOJ2827 : 千山鸟飞绝
  15. 无数个骂娘的故事告诉你,千万别做技术合伙人
  16. element-ui+vue给登录界面创建一个走马灯幻灯片切换
  17. mybatis:Error preparing statement. Cause: java.lang.NullPointerException
  18. LeetCode/LintCode 题解丨一周爆刷字符串:旋转字符数组
  19. 程序员的内斗: 测试和开发干仗, 已经到用鼠标线勒脖子的程度
  20. Android android_id, deviceId, oaid的区别

热门文章

  1. 虚拟键盘灯 软件分享
  2. Si4432无线收发芯片介绍(远距离无线传输模块)
  3. 交叉编译环境中虚拟机ubuntu向开发板传送文件的方法
  4. Spring rebooted --重新认识Spring
  5. ts判断数据是否存在
  6. xmpp, webrtc, webchat联想
  7. 大数据初学者怎样学习?
  8. Python 与神奇的数学之科赫曲线
  9. 《图解HTTP》思维导图
  10. Android开发 之 LinearGradient与闪动文字效果