RiB Newsletter #16 – Secure Enclaves à la Crab
Welcome to the #16 edition of Rust in Blockchain, the hypest newsletter about the hypest tech. Previous: #15.
For the last few months we’ve been following new zero-knowledge proof projects in Rust. This month, with Secret Network upgrading their mainnet with secret contracts, it seems like a good opportunity to explore Rust blockchains that are using a completely different privacy-preserving technology: secure enclaves.
Secure enclaves are processes whose environment is protected from inspection by other processes, even the kernel, by special hardware. This protection particularly involves the encryption of a process’s memory. Software that wants to compute in secret can put those computations inside a secure enclave and, if everything works as expected, neither a local user, nor the hosting provider, can snoop on the computations being performed. The most notable implementation of secure enclaves is Intel’s SGX (Secure Guard Extensions).
Secure enclaves are an attractive way to perform private computation primarily because they don’t impose any limitations on what can be computed — code that runs inside SGX is more-or-less just regular x86 code, just running inside a special environment. But depending on SGX for privacy does have some special risks: software that runs in an SGX enclave must be signed (if transitively) by Intel’s own cryptographic keys, which means that Intel must approve of any software running in SGX, that Intel can revoke permission to use SGX, and that there is a risk of the signing keys being compromised; and it’s not obvious that secure enclaves are actually secure, there have already been a number of attacks against SGX. Regardless, as of now, hardware enclaves provide security features that aren’t feasible any other way.
There are two prominent Rust blockchains relying on SGX:
-
Secret Network is a programmable blockchain based on Cosmos / Tendermint that runs smart contracts written in Rust, and compiled to WASM, inside of secure enclaves.
-
MobileCoin is a private currency that aims to integrate with Signal, and that uses SGX to add additional confidentiality on top of RingCT transactions and its variant of the Stellar Consensus Protocol.
Outside of the blockchain world there are some other Rust projects using SGX, the most notable being:
-
Teaclave SGX SDK is an SDK for running Rust code inside SGX enclaves, developed at Baidu, and now an Apache project. MobileCoin uses a heavily modified fork.
-
Fortanix is a provider of various Rust+SGX services, and they provide an SGX SDK, for which mainline Rust has some built-in support.
-
Rust OP-TEE TrustZone SDK is an SDK for ARM TrustZone.
Whether it’s secure enclaves or zk-SNARKs, Rust blockchains are walking the bleeding edge of privacy tech.
In unrelated RiB news, we recently received two donations,
Thanks so much to our anonymous donors. We don’t often receive donations, so this was a nice surprise! We intend to put all monetary contributions to use funding events or new contributors, and we’ll let you know what we do with the funds when we spend them.
Thanks
This edition of RiB was produced with contributions from Aaron Lu, Alex Chepurnoy, kathyjah, Mike, 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 #17 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…
Aleo.
Aleo is a zero-knowledge blockchain, with its own zero-knowledge programming language, Leo.
We don’t have a lot to say about it, but we think it looks cool. We hope they blog more.
Interesting Things
News
- Tezos Foundation Biannual Update
- Introducing the TezEdge Sandbox: Q&A with Simple Staking CEO Juraj Selep
Blog Posts
Papers
- Foundations of Distributed Consensus and Blockchains. A complete book on distributed consensus, written by an expert.
- Lunar: a Toolbox for More Efficient Universal and Updatable zkSNARKs and Commit-and-Prove Extensions
- Mimblewimble Non-Interactive Transaction Scheme
- Scalable and Probabilistic Leaderless BFT Consensus through Metastability
- A Formally Verified Protocol for Log Replication with Byzantine Fault Tolerance
- NC-Max: Breaking the Throughput Limit of Nakamoto Consensus
- Bitcoin–Monero Cross-chain Atomic Swap
- Incentives in Blockchain Design and Applications
- Blockchain as a Confidence Machine: The Problem of Trusts & Challenges of Governance
- A General Framework for the Security Analysis of Blockchain Protocols
- The Velvet Path to Superlight Blockchain Clients
Projects
- Acala. CrossChain StableCoin platform based on Substrate.
- Anon. Substrate modules for anonymous group actions (ring signatures + merkle proofs).
- Bitcoins-rs. Bitcoin-oriented dev toolboxes for native and browser apps.
- Cardano-serialization-lib. A library for serialization & deserialization of data structures used in Cardano’s Haskell implementation of Shelley along with useful utility functions.
- Crust. Implementation of a Crust protocol node with Substrate.
- Curv has built-in support for some useful operations/primitives such as verifiable secret sharing, commitment schemes, zero-knowledge proofs, and simple two-party protocols such as ECDH and coin flip.
- Edgeware. Substrate node implementing Edgeware. It’s an On-chain Governed, Proof-of-Stake (PoS) Blockchain with a WASM Runtime
- ergo-utilities-rust. General utilities to make writing off-chain Ergo code in Rust simpler.
- Fawkes-Crypto is a lightweight framework for building circuits in bellman, using groth16 proving system and BN254 curve.
- Hacspec. A specification language for cryptography primitives.
- Magical Bitcoin Library. A modern, lightweight, descriptor-based wallet library written in Rust.
- Phala. Phala Network is a TEE-Blockchain hybrid architecture implementing Confidential Contract.
- TezEdge. Tezos node/shell in Rust.
Most Active in September
Solana: 274 merged PRs (1), 95 closed issues (1), 54 open issues (1)
Parity: 185 merged PRs (1, 2), 82 closed issues (1, 2), 63 open issues (1, 2)
Libra: 204 merged PRs (1), 24 closed issues (1), 16 open issues (1)
COMIT: 187 merged PRs (1, 2, 3), 10 closed issues (1, 2, 3), 1 open issues (1)
Project Updates
Aleo
67 merged PRs (1, 2, 3), 23 closed issues (1, 2), 20 open issues (1, 2, 3)
- News: Startup Aleo Wants to Help You Use the Internet Without Sacrificing Data Privacy
- Podcast: Aleo with Howard Wu
- PR: feat(polycommit): support an upper bound on hiding bounds by @kobigurk
- PR: Hotfix: Fix import in benchmarks by @raychu86
- PR: Revert “Wrap blocking operations into individual tasks” by @raychu86
COMIT
187 merged PRs (1, 2, 3), 10 closed issues (1, 2, 3), 1 open issues (1)
- Blog:
- PR: Move Business logic out of network behaviour by @D4nte
- PR: Order state uses quantity instead of percentage by @da-kami
Conflux
43 merged PRs (1), 21 closed issues (1), 10 open issues (1)
- News:
- Scaling Applications with Conflux Network
- Conflux Network Partners With BCW To Design Next-Generation Payment Solutions
- MoonSwap:High speed,0 GAS AMM DEX with Ethereum and Conflux
- Unleashing Data Accessibility on Conflux Network
- Conflux Economic Model — Staking & Collateral For Storage On Conflux Network
- Bi-Weekly Progress Report:
- PR: Add a new contract address scheme which use block_number in contract address calculation. by @yangzhe1990
- PR: Update code collateral computation. by @yangzhe1990
- PR: Enlarge reduced storage mpt cache space back by 1GB by @yangzhe1990
Crypto.com Chain
30 merged PRs (1, 2), 12 closed issues (1), 6 open issues (1, 2)
- PR: Problem: (CE40) Missing multiSig support. by @foreseaz
- PR: Problem: (fix #2158) hw wallet integration not tested by @linfeng-crypto
- PR: Problem: (fix #2249)genesis.json is not consistent with dev-conf.json… by @allthatjazzleo
Elrond
19 merged PRs (1, 2, 3), 0 closed issues, 0 open issues
- News:
- eGold Is Now Officially Available on Ledger, OKEx, SimpleSwap.io, Binance US, Bithumb Global
- eGold now available for card purchase in 180 countries and 13 fiats on Indacoin
- The new Elrond wallet is LIVE
- eGold Elite Competition
- Virtual Reality Content Platform Dvision Network to Add eGold as Currency and Work With Elrond Smart Accounts for True NFT Ownership & Maiar Integration
- Injective Protocol to Introduce eGold-based Products & Integrate Elrond Tech Into their Layer-2 DeFi Protocol
- Catalyst Sale on September 23: Get Your Share of 16,000 EGLD and Receive a 25% Bonus - Running on Bitfinex Token Sale Technology
- Halo Indonesia! 2 Million New Users Get Direct Access to EGLD via IDR fiat on Indonesia’s Largest Exchange Indodax
- Autonio Migrates to Elrond! The Token & Smart Contracts for the NIOX Automated DeFi Tools Will Be Deployed on our Mainnet
- Mainnet Token Swap: Convert ERD into eGLD via the Elrond Swap Bridge
- Blog: eGold: A Powerful Digital Currency Positioned for Global Adoption
- PR: Rv fixes 3 by @andrei-marinica
- PR: Refactoring of modify total delegation cap / change service fee by @andrei-marinica
- PR: unJail implementation by @andrei-marinica
Holochain
4 merged PRs (1), 0 closed issues, 0 open issues
- News:
- Videos:
- PR: Add get_meta into admin interface by @zippy
Libra
204 merged PRs (1), 24 closed issues (1), 16 open issues (1)
- News: Testnet push announcement for 09/30, 09/23, 09/16
- PR: [breaking][libra-framework] Refactor writeset prologue and epilogue by @runtian-zhou
- PR: [language] Structured logging in the VM by @dariorussi
- PR: [language][tools] Move CLI by @sblackshear
Lighthouse
4 merged PRs (1), 71 closed issues (1), 33 open issues (1)
- News: Lighthouse Update #29
- PR: Networking bug fixes by @blacktemplar
- PR: Update boot-node and discovery by @AgeManning
- PR: Version bump to v0.2.13 by @AgeManning
- PR: Update LH spadina bootnode by @AgeManning
MobileCoin
68 merged PRs (1), 1 closed issues (1), 0 open issues
- News:
- Video: Customer Panel: Applying confidential computing with Intel SGX in regulated industries
- PR: MCC-697 Digestible rework to use merlin by @garbageslam
- PR: MCC-959 side-channel resistant merkle proof validation by @garbageslam
- PR: Fee key env by @sugargoat
- PR: [MC-1601] Node maintains a single current slot by @mfaulk
NEAR
59 merged PRs (1), 55 closed issues (1), 50 open issues (1)
- News:
- Community Update: All our Node are Belong to You. There is a bunch of learning resources.
- NEAR MainNet is now Community-Operated
- The First NEAR Community Town Hall(Monday September 28th)
- Community Update: MainNet Phase I 🚀 , Hack the Rainbow 🌈 , OWC Demo Day
- Transitioning NEAR MainNet to the Next Phase: It is Time to Stake, Delegate and Vote
- Blog:
- Discussion: Voting criteria for the transition to Phase II
- PR: feat: Implicit account creation by @evgenykuzyakov
- PR: feat(indexer): Explicitly add local receipts to StreamerMessage by @khorolets
- PR: Limit number of transaction messages deserialized by peer actors per received block message by @birchmd
Nervos
39 merged PRs (1, 2), 6 closed issues (1), 4 open issues (1, 2)
- News:
- Coinone Exchange Lists Nervos CKB for Trading in South Korea
- Nervos integrates with Linear Finance to propel DeFi development
- Nervos unveils Q4 plans in first Town Hall
- Nervos to present roadmap and answer questions at Town Hall
- NervosHack wrap-up
- Memecraft — Announcing the Nervos x Hxro Meme Competiton
- Nervos attends Grin meetup and shares Mimblewimble update
- Grin Community Collaboration to Bring Mimblewimble to Nervos
- Hxro Brings Its Gamified Crypto Trading Platform to Nervos
- 6MM+ KuCoin users can begin trading $CKB September 4th
- Nervos CKB Development Update #40
- Nervos Community Update: August 2020
- CKB Weekly 20, 19, 18, 17
- Blog:
- PR: refactor: rewrite discovery by @driftluo
- PR: feat: redesign cell store by @zhangsoledad
- PR: feat: add nMinimumChainWork config by @driftluo
Parity
185 merged PRs (1, 2), 82 closed issues (1, 2), 63 open issues (1, 2)
- News:
- Videos:
- PR: Allow pallet in construct_runtime to have fixed index by @thiolliere
- PR: Tracing for wasm with bridging to native by @gnunicorn
- PR: Set reserved nodes with offchain worker. by @kaichaosun
- PR: state_machine no_std witness externalities by @cheme
Secret Network
35 merged PRs (1, 2), 10 closed issues (1), 26 open issues (1)
- News:
- Blog:
- PR: Added recursion limit of 5 to queries by @reuvenpo
- PR: Additional logs safety & tests by @toml01
- PR: Use sent_funds in callback_sig by @toml01
Solana
274 merged PRs (1), 95 closed issues (1), 54 open issues (1)
- News:
- PR: Persistent tower by @ryoqun
- PR: Fix rooted accounts cleanup, simplify locking by @carllin
- PR: Add sysvar to look at tx instructions by @sakridge
Zcash
86 merged PRs (1, 2, 3), 34 closed issues (1, 2, 3), 41 open issues (1, 2, 3)
- News:
- Gemini becomes first regulated institution to support shielded Zcash withdrawals
- ECC welcomes the Major Grants Review Committee
- Refining and recommitting to the ECC mission
- FATF’s plans to regulate peer-to-peer transactions
- Canopy security assessment complete
- Introducing TGPPL, a radically new type of open-source license
- PR: RFC: state updates by @hdevalence
- PR: Implement sighash by @yaahc
- PR: ZIP-321: Payment Request URIs by @nuttycom
Events
Oct 1-30 | Online
ETHOnline 2020. Summits + Hackathon.
Oct 16–30 | Online
Oct 21-23 | NYC, US
ACM Advances in Financial Technologies
Oct 27-28 | Dubai
Careers
Aleo | San Francisco, US; Remote
Chainlink | Remote
Compound | Remote
Dock | Remote
SimpleStaking | Remote
More jobs can be found at Job Board.
Want to be included in the next issue? Feel free to submit a PR to the #17 draft, or Tweet @rust_blockchain.
Join the discussion on RiB telegram group ❤️