Decentralized Coin Mixer, ZKP Toolkit and NFT on CKB

CKB Weekly #8

Hello, Happy Friday and welcome to issue #8 of the CKB Weekly, a newsletter about the Nervos Common Knowledge Base blockchain and related technology. 


  • Drago: A decentralized coin mixer on CKB proposes a Ring-signature based mixer on CKB, it can be used for CKB coin and UDTs. Benefit from the user defined crypto primitives of Nervos CKB, Drago could achieve a REAL decentralized anonymous service on-chain. Any other platforms with fixed crypto primitives face the “transaction sender” problem - You’ll have to use a transparent transaction sender to sign a TX and pay the TX fee to claim an anonymous token, or to rely on an agency to send the TX instead of you, which expose your identity to the agency.

  • New RFC: CKB-NFT Draft Spec by Tannr. Non Fungible Tokens (NFTs) are tokens that are not interchangeable or necessarily of equal value, even if they are within the same token class. This includes digital collectibles, game items, and records of ownership of physical assets.

  • Minimum viable light client via FlyClient-style checkpointing. Using header_deps, we can use CKB to capture previous block headers and accumulate them into a “Difficulty MMR” as described in the FlyClient white paper, forming the base of a super-light client that can be implemented today without consensus changes.

  • Zero-knowledge proofs toolkit on CKB is open-source now. Written in Rust, the toolkit aims to bridge the gap of cryptographic engineering between thriving academic research and aspiring dApp developers, by providing multiple zkp scheme and curve options, a more user-friendly interface, many useful gadget libraries, and many more tutorials and examples.

    It also provides smart contracts that run as zero-knowledge proof verifiers on Nervos CKB. CKB developers and users can implement various complex zero-knowledge verification processes through the simplest contract invocation. Cooperate with zkp-toolkit to complete off-chain prove and on-chain verify.

Technical Updates


  • CKB

    • Released v0.33.0

    • (#2137) Add memory leak fixing in CHANGELOG

    • (#2133) Add debug log to disconnect fn

    • (#2132) Cleanup unused network error enum

    • (#2096) Move network protocol related variables to SupportProtocols

    • (#2103) Use generic type in NetworkService

    • (#2064) Add RPC truncate

If you are curious about why a design in CKB is what it is now, please post your questions in this repository.

  • Dev Tools

  • Neuron

    • (#1732) Refine the history component

    • (#1731) Add the action to merge released into develop

  • CKB Explorer

    • (#654) add more info about UDT

Layer 2

  • Muta [layer2 framework on CKB]

    • (#318) Add multiple signatures service

    • (#319) Add proposer field in executor params

  • SECBIT Labs [Zero knowledge proof toolkit for CKB]

    • released Zero-knowledge proofs toolkit

    • Initially implement uses R1CS to describe the circuit for zk-Snark and bulletproof. It means that they can share the same circuit resource for different kinds of zkp, and the circuit libs could be modularized