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.
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.
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.
- 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
- 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
parityconfig section with
- News: Crypto.com Chain Dev Update #9
- 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
- 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
- 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
- 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
- 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
- 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
- News: NEAR Hackathon at Ready Layer One: Winners Announced
- News: Introducing the NEAR Foundation
- News: Community Update: May 22nd, 2020
- Stake Wars
- Flux <> NEAR
- 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
- News: Nervos Researcher Alan Szepieniec’s Paper Accepted by the International Association for Cryptologic Research (IACR)
- News: Nervos CKB Development Update #34, #35
- 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
- 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
- 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
- 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
- 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
June 15 | Online
Jun 17 | Barcelona, EU
Aug 3-6, 2020 | Oxford, UK
Aug 5, 2020 | Online
Oct 21-23 | NYC, US
Chainlink | Remote, US
Definity | SF, US
Findora | CA, US
IOTA | Remote
Kraken | London, UK; Remote
Nervos | Remote
Ockam | Remote
Polymath | Ontario; Remote
Join the discussion on RiB telegram group ❤️