RiB Newsletter #12 – ZK-Rustups
Welcome to the #12 edition of Rust in Blockchain, the hypest newsletter about the hypest tech. Previous: #11.
This month, what strikes us most is the proliferation of Rust cryptography, and especially zero-knowledge proof, projects. Even blockchains that aren’t primarily implemented in Rust are increasingly looking to Rust for their crypto. So many of these are springing up that we’ve lost track, so we spent some time doing a survey of the world of Rust crypto and zero-knowledge proofs, and what we found kind of blew us away! For Rust blockchain developers there are an overwhelming number of choices for their crypto building blocks. Here are some of them.
- Rust-crypto-specific GitHub orgs
- rustcrypto: lots of well-maintained, basic crypto primitives and abstractions
- dalek-cryptography: mature ed25519 and zkp implementations
- zkcrypto maintains a number of zero-knowledge crates used by multiple projects, bellman, ff, pairing, group, jubjub, bls12_381.
- SCIPR Lab has several zero-knowledge Rust projects, zexe, for decentralized private computation (paper), poly-commit, for polynomial commitments, marlin, for the Marlin SNARK (paper), and ripp, for proofs of inner pairing products (paper)
- KZen-networks is another organization filled with Rust crypto, dedicated to threshold cryptography, multi-party-ecdsa, curv, multi-party-schnorr, class, white-city, and more.
- Non-Rust blockchains using Rust for security and other purposes
- 0xProject/OpenZKP. A ZKP implementation by 0x Network.
- algorand/pointproofs. An implementation of Algorand’s Pointproofs: Aggregating Proofs for Multiple Vector Commitments (paper).
- Stellar has a separate Rust blockchain, Slingshot, built on a zero-knowledge VM, ZkVM, and containing several other interesting in-tree Rust crypto projects.
- dusk-network, a blockchain written in Go, has multiple Rust crypto projects, phoenix, a ZK transaction model, Poseidon252, a hash function, and many more. It apears that they support smart contracts written in Rust.
- Golem. A decentralized computation network for Ethereum with a large number of Rust projects, including gMorph, a homomorphic encryption library, and several WASM-related projects. Their yagna project is a new implementation in Rust with a different approach from the original project.
- Tendermint, another Go blockchain, also has many Rust crypto and security projects.
- Komodo, uses Rust for their cross-chain AtomixDEX matchmaking network.
- IOTA is developing some new projects in Rust.
- Input-Output HK, contributors to Cardano and Ethereum Classic, have multiple Rust projects in Rust, including jormungandr, a Rust blockchain that appears to be an implementation of Cardano in Rust.
- The Ethereum community has many projects in Rust, as does Zcash, and there exist Bitcoin implementations in Rust.
By a rough counting, 13 of the top 50 blockchains by market cap are using Rust in some way, whether primary implementations, alternate or unofficial implementanions, libraries, support code, or research projects. Those projects are: Bitcoin, Ethereum, Bitcoin Cash, Cardano, Stellar, Crypto.com, Ethereum Classic, IOTA, Zcash, Ontology, 0x, Algorand, Qtum. While reviewing these it’s notable that while an increasing number of blockchain projects are using Rust, few of the top projects are primarily implemented in Rust (the exception being Crypto.com). Yet, of course.
This month Rust-behemoth Polkadot launched their mainnet. Congrats to Parity and Polkadot contributors.
Thanks
This edition of RiB was produced with contributions from Anais Urlichs, Calvin Lau, Paulii Good, Brian Anderson, and Aimee Zhu. Thank you for your help!
RiB needs help to keep up with Rust blockchain projects. If you follow a particular project, or otherwise find information that is beneficial to the Rust & blockchain community, please contribute to the next issue. Either submit a PR to the #13 draft, or Tweet @rust_blockchain.
Project Spotlight
Each month we like to shine a light on a notable Rust blockchain project. This month that project is…
The NEAR project is a blockchain written in Rust, that runs smart contracts written in Rust, on a WASM VM. It’s super-rusty. This recently-released project provides well-documented, well-commented, examples of NEAR Rust contracts written with the NEAR SDK:
It’s a concise look into real-world Rust smart contracts, and real-world, non-browser Rust-on-WASM.
The NEAR developers are interested in any feedback about the experience of writing smart contracts in Rust on NEAR.
Interesting Things
- zexe: Rust library for decentralized private computation
- curv: Rust language general purpose elliptic curve cryptography
- OpenZKP: pure Rust implementations of Zero-Knowledge Proof systems
- marlin: A Rust library for the Marlin preprocessing zkSNARK
- rusk-vm: The Dusk Rust WASM VM implementation
- distaff, the new SNARK VM, posted two status updates (1, 2) to ethresear.ch
- near-sdk-rs: Rust library for writing NEAR smart contracts
- rainbow-bridge: NEAR bridge to Ethereum
- ckb-boxer: Nervos CKB as a Rust library
- electrs: An Electrum server implementation
- Blog: Everything You Need to Know About Reddit’s New Blockchain-Based Community Points
- Reddit is a collection of discussion boards (called subreddits) on various topics where members can upvote or downvote posts. It has an enormous (and devoted) userbase with 430 million monthly active users and 150 million pages visited each day.
- Community points on the blockchain
- Blog: The Problem With Grants
- Blog: A Field Guide to zkSNARKs (Part I) : A Primer on Computation
- Blog: A Rust Learning Group in the IOTA Ecosystem
- Blog: Opinion: On Private Blockchains
- Proposal: Kin Improvement Proposal (Move to Solana)
Most Active in May
Solana: 383 merged PRs (1), 79 closed issues (1), 60 open issues (1)
Parity : 283 merged PRs (1, 2), 128 closed issues (1, 2), 72 open issues (1, 2)
COMIT: 235 merged PRs (1, 2, 3, 4, 5, 6), 72 closed issues (1, 2, 3, 4), 32 open issues (1, 2, 3)
NEAR: 79 merged PRs (1), 74 closed issues (1), 51 open issues (1)
Project Updates
CodeChain
44 merged PRs (1, 2), 14 closed issues (1), 8 open issues (1)
- PR: Implement Account module by @somniumism
- PR: Implement Staking module by @HoOngEe
COMIT
235 merged PRs (1, 2, 3, 4, 5, 6), 72 closed issues (1, 2, 3, 4), 32 open issues (1, 2, 3)
- PR: Add hbit module by @tcharding
- PR: Implement GET /swaps/:id (lightning) by @tcharding
- PR: Validate lnd invoice and payment against swap params by @rishflab
- PR: Bob does not reject announcement if the swap is not yet created by @D4nte
- PR: Replace
parity
config section withweb3_url
by @D4nte
Crypto.com Chain
114 merged PRs (1, 2, 3), 65 closed issues (1, 2), 29 open issues (1, 2)
- News: Crypto.com Chain Dev Update #9
- Testnet Upgraded to v0.5
- Further information: Changelog, Release, Documentation, Block Explorer, Sample Wallet UI
- News: Node.js library supports more transaction types. It is using Neon bindings to Rust code.
- Doc update: Stabilized Transaction Test Vectors are now documented.
- PR: Problem: tx-query not yet ported to EDP by @devashishdxt
- PR: Problem (#1483): client rpc setup code is duplicated between server and c-api by @yihuang
- PR: Problem: (fix #1545)light client doesn’t verify genesis hash by @linfeng-crypto
Golem
15 merged PRs (1, 2, 3, 4, 5), 21 closed issues (1, 2, 3), 4 open issues (1)
- News: Clay Golem Beta 0.23.1
- Blog: ReadyLayerOne - The next milestone: A Golem (R)evolution Synopsis
- Blog: Solving Challenges in Golem with gWASM
- Blog: Summary of the Golem AMA May 2020
- PR: Wasi by @prekucki
- PR: Wasi support rewrite for master by @prekucki
Holochain
5 merged PRs (1), 1 closed issues (1), 2 open issues (1)
- News: Monthly Roundup for Holo & Holochain
- Infrastructure Challenges, Holo Web SDK, More HoloFuel Speedups, H-Wiki Goes Public
- News: Holochain Dev Pulse 72: Play with a mutual credit currency and join the modularity discussion
- Play a mutual credit currency game with other Holochain users
- Dig deep into hApp dev best practices with the community
- Holochain v0.0.48 cancelled, Holochain v0.0.49 released
- News: Holochain Dev Pulse 71: Yes, The Nano Is Still On Its Way
- What’s happening with the HoloPort Nano?
- HoloPort release with USB Reset tool
- Watch for a new Holochain release soon
- Blog: The Nextnet Series: Part 3 of 3: Unleashing the Power of Unenclosable Carriers
- Video: Open 2020 webinar Mutual Credit Demo
- PR: Fix hold aspect bugs by @zippy
- PR: bump futures for broken upstream dep in tokio (pin-utils). by @zippy
- PR: don’t re-fetch entries we’ve fetched within the last second by @neonphog
Libra
0 merged PRs (0), 33 closed issues (1), 51 open issues (1)
- News: New JSON-RPC Libra client API: The gRPC API is being deprecated
- News: Lead Maintainer, Maintainers, and Libra Improvement Proposal (LIP) announced
- News: The Libra Association announces new members
- News: The Libra Association appoints Robert Werner as General Counsel
- News: Testnet push announcement for 5/20
- Blog: Digital wallets: Key concepts to know
Lighthouse
87 merged PRs (1), 33 closed issues (1), 29 open issues (1)
- News: Lighthouse Update #25
- Key Management Implementation
- Schlesi: The First Multiclient Testnet
- External Security Review
- PR: EIP-2335: Keystore by @paulhauner
- PR: Implement Slashing Protection by @michaelsproul
- PR: Add attestation gossip pre-verification by @paulhauner
- PR: Wallet-based, encrypted key management by @paulhauner
- PR: Arbitrary trait for eth2/types by @kirk-baird
- PR: EIP-2386 (draft): Eth2 wallet by @paulhauner
MobileCoin
61 merged PRs (1), 4 closed issues (1), 1 open issues (1)
- PR: Make Ristretto implement Kex, make CryptoBox generic over Kex by @garbageslam
- PR: Add watcher node and incorporate signatures into block explorer by @sugargoat
- PR: MC-1416 Infrastructure around llvm-bolt
NEAR
79 merged PRs (1), 74 closed issues (1), 51 open issues (1)
- News: NEAR Hackathon at Ready Layer One: Winners Announced
- News: Introducing the NEAR Foundation
- News: Community Update: May 22nd, 2020
- Stake Wars
- Flux <> NEAR
- Hackathons
- Blog: Future of Blockchain Hackathon
- Blog: Stake Wars Episode II
- Blog: Ready Layer One Rewind
- Blog: Introducing 4 NEAR apps at Consensus Distributed
- Podcast: Onboarding The 99% of Developers Into Web 3, Illia Polosukhin of NEAR
- Podcast: Ready Layer One: Who Competes With Ethereum?
- Video: Community Talk: The Rise of SoFi – Introducing Personal Tokens
- More community talks
- Video: NEAR Engineering Weekly – May 11, 2020
- PR: Standalone runtime for testing by @fckt
- PR: Updated cost docs by @olonho
Nervos
35 merged PRs (1, 2, 3), 7 closed issues (1, 2), 2 open issues (1, 2)
- News: Nervos Researcher Alan Szepieniec’s Paper Accepted by the International Association for Cryptologic Research (IACR)
- News: Nervos CKB Development Update #34, #35
- The team is building dApp development frameworks: Capsule and Lumos. Capsule is a Rust based smart contract development framework.
- Released ckb-rich-node for dApp backend data source
- Optimized chain sync speed by 50%.
- News: Synapse Extension v0.0.1 is Released
- Blog: Introducing Keyper for cell management on Nervos
- Blog: A Generic Payment Channel Construction and Its Composability
- Blog: Explained: Best DEX Design & UDTswap for Nervos
- Discussion: The background reasoning on why Molecule was created #1
- Video: Nervos Network (CKB) - Huge project for 2020/21. CKB to 100 x ?
- Video: Meet the Researchers of Nervos
- Video: Technical Dive into Nervos and SKALE Networks
- PR: Docs: add a document about how to build CKB on windows by @yangby-cryptape
- PR: Feat: make minor change to pow algorithm for testnet by @yangby-cryptape
- PR: Doc: Update syscall rfc to Lina mainnet setup by @xxuejie
Parity
283 merged PRs (1, 2), 128 closed issues (1, 2), 72 open issues (1, 2)
- News: W3F Initiates Launch: Polkadot is Live
- News: Westend: Introducing a New Testnet for Polkadot and Kusama
- News: Results of DOT Redenomination Referendum
- News: Build Polkadot: Network Launch Bounty Challenges
- Blog: An Updated Overview of Polkadot
- Blog: What is Polkadot? A Brief Introduction
- Blog: Explaining the Polkadot Launch Process
- Paper: Overview of Polkadot and its Design Considerations
- Blog: IoT on Substrate: Nodle.io
- PR: Offchain storage lock by @drahnr
- PR: [CI] Expose WASM binaries on publish by @s3krit
- PR: Pallet-contracts: State rent fixes by @pepyakin
Solana
383 merged PRs (1), 79 closed issues (1), 60 open issues (1)
- News: Solana Foundation Permanently Removes ◎11.365M From Token Supply
- News: Pocket Announces Its Integration With Solana, Providing Decentralized API Solutions For Developers
- News: Hummingbot Announces Support for Solana, Launches Liquidity Mining Campaign
- PR: Multi-version snapshot support by @svenski123
- PR: Cli: transfer ALL; check spend+fee in client by @CriesofCarrots
- PR: Introduce eager rent collection by @ryoqun
Zcash
42 merged PRs (1, 2, 3), 11 closed issues (1, 2, 3), 14 open issues (1, 2, 3)
- News: The upside of quadratic funding for the Zcash ecosystem
- News: The Zcash Foundation Welcomes Jane and Teor
- News: Scaling Tor with Walking Onions
- News: Bringing Privacy to Cosmos with Zcash
- News: Zcash Developers Update 05-01, 05-07, 05-22
- The Zcash Documentation page got a refresh.
- The team hosted the Zcash Gardening Club. The recording is up on Youtube
- Significant progress on Rust refactorings.
- Improved TZE API in Rust.
- Blog: Explaining viewing keys
- PR: [ZIP 211] Disabling Addition of New Value to the Sprout Value Pool by @daira
- PR: [ZIP 212] Allow recipient to derive Sapling ephemeral secret from note plaintext by @ebfull
- PR: transaction/hash.rs: Add FromStr implementation (issue #299) by @kiminuo
Events
June 15 | Online
Protect Privacy: Virtual hackathon starts June 15
Jun 17 | Barcelona, EU
Aug 3-6, 2020 | Oxford, UK
Aug 5, 2020 | Online
Oct 21-23 | NYC, US
ACM Advances in Financial Technologies
Careers
Chainlink | Remote, US
Definity | SF, US
Senior Software Engineer - Infrastructure and Tools
Findora | CA, US
IOTA | Remote
Kraken | London, UK; Remote
Backend Engineer, Kraken Futures
Backend Engineer, Data Processing
Nervos | Remote
Senior Blockchain Engineer & Developer Relations
Ockam | Remote
Software Architect - Applied Cryptography in Rust
Polymath | Ontario; Remote
Want to be included in the next issue? Feel free to submit a PR to the #13 draft, or Tweet @rust_blockchain.
Join the discussion on RiB telegram group ❤️