Vac restructure: major content update (#114)

This commit is contained in:
kaiserd 2023-06-19 15:11:43 +02:00 committed by GitHub
parent ea41a84fa4
commit 2f1956f735
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 118 additions and 260 deletions

View File

@ -20,10 +20,11 @@ or browse our [research areas](https://vac.dev/research-areas).
For code contributions, see our "good first issue" lists for various Vac related code bases:
* [nwaku](https://github.com/status-im/nwaku/labels/good%20first%20issue)
* [js-waku](https://github.com/status-im/js-waku/labels/good%20first%20issue)
* [go-waku](https://github.com/status-im/go-waku/labels/good%20first%20issue)
* [nim-libp2p](https://github.com/status-im/nim-libp2p)
* [zerokit](https://github.com/vacp2p/zerokit/labels/good%20first%20issue)
* [wakurtosis](https://github.com/logos-co/wakurtosis)
<!---
## Contribute Pseudonymously
@ -131,3 +132,5 @@ by using Proton's public APIs.
Since a bad encryption will result in our impossibility to access your contribution,
we invite you to check the official documentation of your e-mail client or provider in order to correctly setup the appropriate PGP keys
and automate message encryption and decryption.
--->

32
docs/deepresearch.md Normal file
View File

@ -0,0 +1,32 @@
---
title: Deep Research
---
# Vac Deep Research
Vac Deep Research is at the forefront of cutting-edge exploration and innovation within the Logos collective.
Their work extends beyond scientific publications, actively bridging the gap between theory and practice.
The team collaborates with various entities, such as Vac R&D units, incubator projects, and Logos projects, to bring their research findings to fruition.
Part of this effort includes identifying opportunities for and spawning new incubator projects,
allowing Vac Deep Research to translate their research findings into practical applications within the Logos ecosystem.
Deep research encompasses several key areas, including Zero-Knowledge (ZK), Decentralized Privacy-preserving Node Provider Network, Validator privacy, and Libp2p Gossipsub Improvements.
## Zero Knowledge Proofs
In the realm of ZKP, Vac Deep Research has made contributions that have given rise to the [incubator projects](/vips) zkVM and RLNP2P.
The team delved into the intricacies of Zero-Knowledge Proofs, exploring their applications and pushing the boundaries of privacy-preserving technologies.
By advancing the field of ZK, Vac Deep Research strengthens the foundation for secure and confidential interactions within decentralized networks.
## Decentralized Privacy-preserving Node Provider Network
This research area focuses on the development of protocols and mechanisms that ensure privacy and security for both users and node providers, initially with a focus on Ethereum node providers.
This includes addressing concerns related to validator privacy.
The team also plans to extend their research to encompass Nomos.
## Libp2p Gossipsub Improvements
Another area of focus for Vac Deep Research is "libp2p gossipsub improvements".
The team explores ways to enhance the performance, efficiency, and reliability of the libp2p gossipsub protocol.
By conducting in-depth research and proposing improvements, Vac Deep Research aims to optimize information sharing and communication within decentralized networks,
contributing to the overall robustness and scalability of the P2P layers of Logos projects.

View File

@ -2,13 +2,15 @@
title: About
---
# Vac - Communication & Privacy
# Vac
## About Vac
Vac builds [public good](https://en.wikipedia.org/wiki/Public_good) protocols for the decentralized web.
We do applied research based on which we build protocols, libraries and publications. Custodians of protocols that reflect [a set of principles](/principles).
As an integral part of the [Logos collective](https://logos.co/),
Vac comprises [R&D Service Units](/vsus), [Incubator Projects](/vips), [Deep Research](/research), and the [RFC (specification) process](/rfcprocess) for Logos projects.
We do applied research based on which we build protocols, libraries and publications.
As custodians of these protocols, our aim is to adhere to [a set of principles](/principles) that ensure their alignment with our core values and objectives.
## Our Principles
@ -18,18 +20,3 @@ These principles act as tools. Tools for thinking, for communication, and for de
The meaning of these principles are elaboarted on [here](/principles).
## Projects
**Secure Messaging**. We design modular, p2p protocols for private, anonymous, secure and censorship-resistant communications. The main focus is [Waku](https://waku.org), the communication layer for Web3.
**zk-WASM**. Research into making private and provable computation using WASM that is verified using zero-knowledge proofs.
**RAD - RFCs & Dissemination**. We build [specifications](https://rfc.vac.dev) for self-sustainable robust protocols with strong and modular privacy guarantees. [Rough consensus and running code](https://www.ietf.org/about/participate/tao/). We also write papers and collaborate closely with other projects/institutions, and aim to build a bridge between industry and academia.
**Applied ZK & Explorations**. We build tools to enable new fundamental building blocks using cutting-edge zero-knowledge proof systems. For example, [Zerokit](https://github.com/vacp2p/zerokit/).
## Links
- [Publications](/publications)
- [Specs/RFCs](https://rfc.vac.dev)
- [Forum](https://forum.vac.dev)

View File

@ -1,147 +0,0 @@
---
title: Open Research Problems
---
#
## Open Research Problems
We are seeking to collaborate with researchers in the following topic areas.
Feel free to join our [Discord](https://discord.gg/PQFdubGt6d) for discussion.
### DHT (distributed hash table) security / privacy / anonymity
Compared to unstructured P2P overlay networks, DHTs offer efficient and (theoretically) reliable discovery.
However, they are prone to eclipse attacks and [typically offer weak privacy properties](https://github.com/gpestana/notes/issues/8).
This topic comprises researching novel techniques mitigating or even thwarting [eclipse attacks](https://www.gemini.com/cryptopedia/eclipse-attacks-defense-bitcoin#section-what-is-an-eclipse-attack) against DHTs.
A focus on [Node Discovery Protocol v5 (discv5)](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md) is of special interest to the Vac team.
Further background on the usage of discv5 in Waku can be found in our [research log](https://vac.dev/wakuv2-apd).
A new version of discv5 that is both efficient and provides eclipse mitigation is [currently being researched](https://github.com/harnen/service-discovery-paper).
### Privacy-Preserving Incentivizations of waku protocols
Waku protocols are designed in such a way that resource-limited devices can make up for their lack of resources by relying on the more powerful peers in the network.
This can be seen at all the layers of the Waku protocol stack.
One such layer is the Waku relay protocol in which peers voluntarily join the routing layer of Waku and aid message propagation.
Some peers may have altruistic reasons for contributing or are stakeholders in some higher-level application requiring reliable infrastructure to deliver a high-quality service.
However, this cannot be generalized to all, therefore peers need to be incentivized for their participation and contribution in the network regardless of being tied to any specific application, or necessarily having altruistic wills.
One of the most challenging protocols of Waku for incentivization is the Waku Relay protocol.
This is because the supplied service is in the form of bandwidth, and due to the Gossip-based nature of the routing protocol it is hard to verify which peers are the legit routers and hence are eligible for any designated reward.
Also, there is no trivial requester-responder relationship in that protocol.
The reason is that every published message is routed by every other peer in the network.
Thus we face a one-to-many relationship.
In this research problem, researchers and engineers are asked to design and develop an incentivization mechanism that would account for the said issues and also is game theoretically sound, in the sense that all the participants would be rationally incentivized to follow the protocol description.
### Devising novel applications of the Waku protocol stack
Waku provides a suite of modular p2p protocols to enable the realization of web2 applications in the decentralized web3 world in the form of DApps.
Waku protocol stack features all the necessary components for the DApp developers namely, the networking/routing layer, and multiple discovery methods.
It also provides various request-response protocols to allow resource provisioning for resource-limited devices.
For example, store protocol (to account for storage limitations), and filter and lightpush protocols (to aid bandwidth-constrained peers).
It means that literally any famous web2 services e.g., email, social networking, and e-voting systems, for which typically a large and powerful infrastructure is needed, can now be translated to their corresponding decentralized and p2p and privacy-preserving version by relying on Waku.
Here, Waku allows individual peers with limited capacities to accumulate their resources to form the required infrastructure for the intended service.
One of the greatest products built on top of Waku is the decentralized messaging application of [Status](status.im).
However, we believe that the usage of Waku is not limited to messaging applications, and in this research problem, we would like to encourage researchers and developers to design and build other decentralized systems on top of Waku.
Below is just a sample list of use cases. We strongly recommend getting creative and building what it means the most to you and your community.
* P2P social network
* E-voting system
* P2P Email service
* Online p2p Games
* P2P scoring and recommendation systems
### Halo2 in a browser
[Halo2](https://halo2.dev) is an emerging proof system that,
in combination with [PLONK](https://eprint.iacr.org/2019/953) and a polynomial commitment scheme [based on the Inner Product Argument](https://zcash.github.io/halo2/design/proving-system/inner-product.html),
allows creation of short zero-knowledge proofs for arbitrary statements.
Halo2 gained interest from the community because,
in contrast to the well enstablished [Groth16](https://eprint.iacr.org/2016/260.pdf) proof system,
it doesn't require a trusted setup
and allows proof recursion,
that is the possibility to compute an efficiently-verifiable ZK proof that attests correctness of an arbitrary number of other ZK proofs.
However, at the [current stage](https://github.com/zcash/halo2), Halo2 requires more research and engineering work to make it work efficiently as Groth16 in practice.
This topic focuses on researching and implementing all those possible optimiziations to PLONK/Halo2 in order to ultimately allow proof computations and verification in the browser, using WASM.
### Meshnet transports and libp2p
Waku protocols are built on top of [libp2p's modular network stack](https://libp2p.io/).
This in essence allows the Waku network to be overlayed on existing network links.
Several transports are already supported:
depending on the specific underlying libp2p implementation,
supported transports could include WebSockets, QUIC, TCP, WebRTC, etc.
However, currently all transports are IP-based
and require Waku nodes to have an active Internet connection to communicate outside of the local IP network.
Not only does this presuppose access to reliable Internet connectivity,
but such links are vulnerable to data profiling and censorship by ISPs or other entities.
This topic focuses on using Waku over non-IP routed networks,
such as [Wireless Mesh Networks](https://www.pcworld.com/article/407165/mesh-network-explained.html)
to improve accessibility and strengthen resistance against censorship.
It also investigates how appropriate the libp2p network stack is for such environments
and if Waku could benefit from using different networking stacks
that may function better in very restrictive environments.
### Applied ZK
To help scale and secure Waku network,
nodes should be incentivized to join and reliably provide services to users
like [Relay](https://rfc.vac.dev/spec/11/), [Store](https://rfc.vac.dev/spec/13/), [Filter](https://rfc.vac.dev/spec/12/), and so on.
However, providing services costs network nodes computational and hardware resources.
In this topic we would like to design a protocol that, tailored to Waku, can:
- incentivize Waku nodes to provide services (e.g., economically);
- provide a high level of privacy and anonimyty for both users consuming services and nodes providing them;
- disincentivize non protocol-compliant behaviours;
We envision a private fungible settlment among consumers and service providers
based on zero-knowledge proofs for high privacy guarantees
and on-chain smart-contracts to economically incentivize protocol-compliant behaviours.
### Robust P2P network - NAT traversal
[Waku relay](https://rfc.vac.dev/spec/11/), Waku's core protocol, is based on a [gossipsub mesh](https://github.com/libp2p/specs/tree/master/pubsub/gossipsub),
while [Waku discv5](https://rfc.vac.dev/spec/33/) uses a [DHT](https://en.wikipedia.org/wiki/Distributed_hash_table) overlay.
Both significantly benefit from robust and reliable P2P connections.
Better connectivity allows nodes to contribute more to the network and improve overall availability, efficiency, and by extension, anonymity ([see k-anonymity](https://en.wikipedia.org/wiki/K-anonymity)).
[NAT](https://en.wikipedia.org/wiki/Network_address_translation) is a well known problem to P2P connectivity.
There are various types of NATs whose behaviours are described in [RFC 4787](https://www.rfc-editor.org/rfc/rfc4787).
[Carrier-Grade NATs](https://www.rfc-editor.org/rfc/rfc6888) add another layer of indirection, which complicates the matter further.
Various [NAT traversal](https://en.wikipedia.org/wiki/NAT_traversal) protocols have been developed to overcome the different types of NATs.
[RFC 8445](https://www.rfc-editor.org/rfc/rfc8445) specifies Interactive Connectivity Establishment (ICE), which integrates a set of NAT traversal techniques.
Waku currently uses [libp2p NAT traversal](https://docs.libp2p.io/concepts/nat/),
specifically [STUN](https://docs.libp2p.io/concepts/nat/#hole-punching-stun) (leveraging the [identify protocol](https://docs.libp2p.io/concepts/protocols/#identify))
and [AutoNAT](https://docs.libp2p.io/concepts/nat/#hole-punching-stun#autonat).
The main focus of this topic is on researching novel ICE-complementary NAT traversal techniques that are decentralized and have desirable privacy and anonymity properties.
The topic also comprises integrating and specifying ICE for [Waku v2](https://rfc.vac.dev/spec/10/).
### Peer scoring in peer-to-peer networks
Peer-to-peer networks are made of multiple nodes or peers, typically in the range of hundreds or even thousands. This makes it impossible to keep all nodes connected in a full-mesh network since it would involve an exponentially increasing number of connections. This means that each node has to just connect to a small subset of all nodes, which has to be chosen wisely. Some unanswered questions:
* Which nodes do we connect to? Based on what criteria?
* How do we keep quality peers while being forgiving with nodes with fewer resources or that are syncing?
* Can we handle our peers in a way that prevents eclipse attacks?
* Can we give each peer a score and select the best one based on it?
* Which parameters should be considered in the score?
* What kind of behavior should we consider as bad?
* Can we integrate Waku-specific features into the score and/or the bad-behavior metric?
This not only involves an efficient peer discovery strategy, which gives us a pool of peers to select from, but also strategies to select the ones we are interested in and drop connections with the ones we are not. Protocols like GossipSub have their [score](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.1.md#the-score-function) and it's something that can be used as a baseline, but unfortunately does not take into account Waku specifics.
## Further Research Collaboration Opportunities
Besides the open research problems listed in the section above,
you may browse our [Research Areas](https://vac.dev/research-areas) page
and check our roadmaps for various research topics.

View File

@ -1,28 +0,0 @@
---
title: Projects
---
# Projects
There are several projects under Vac Research.
These are largely independent and can be seen as specific bets.
## Secure Messaging
We design modular, p2p protocols for private, anonymous, secure and censorship-resistant communications. The main focus is [Waku](https://waku.org), the communication layer for Web3.
## zk-WASM
Research into making private and provable computation using WASM that is verified using zero-knowledge proofs.
## RAD - RFCs & Dissemination
**RFCs**: We build [specifications](https://rfc.vac.dev) for self-sustainable robust protocols with strong and modular privacy guarantees. [Rough consensus and running code](https://www.ietf.org/about/participate/tao/).
**Dissemination**: We write papers and collaborate closely with other projects/institutions, and aim to build a bridge between industry and academia.
## Applied ZK & Explorations
We build tools to enable new fundamental building blocks using cutting-edge zero-knowledge proof systems. For example, [Zerokit](https://github.com/vacp2p/zerokit/).

View File

@ -1,59 +0,0 @@
---
title: Research areas
---
## Overview
Vac has several research areas it is interested in and has or is developing expertise in.
Heres an overview of some of these areas along with motivation and what type of topics are included.
Note that a lot of areas are overlapping in terms of specific projects.
## Incentivization
In an open p2p network, nodes have to be incentivized for services provided to the network.
Additionally, these should be privacy-preserving and as trust-minimized as possible.
This research area includes (but is not limited to):
RLN, service credentials, peer reputation, and protocol revenue.
## Applied ZK
Applied ZK opens up the door to many new constructs, especially related to privacy.
This research area includes the development of primitives like RLN, Unirep and similar novel constructs,
but also research and development related to zero-knowledge technology, such as ZK frameworks like Circom and Halo2, ZK-VM, WASM in the browser, and efficient zk proof systems running on resource-restricted devices.
Done in close collaboration with other teams in the space.
## Privacy/Anonymity
Specifically metadata privacy.
This includes anonymity studies and providing a modular suite of protocols with clear trade-offs and threat models.
[Privacy/Anonymity Roadmap](https://github.com/vacp2p/research/issues/107)
## Scalability
Making the network scalable in terms of number of nodes, message rate, discovering of nodes, caching of historical messages etc.
Largely focused on Waku right now, but things like scalable group chats also relevant here.
## Data synchronization
End-to-end data application synchronization protocols, [FT Store](https://rfc.vac.dev/spec/21/), interfacing with long-term storage, message bus guarantees,
possibly [CRDTs](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) etc.
Guiding principle is to provide additional guarantees for users of Waku (etc) in terms of user experience.
## P2P/Networking
R&D related to P2P protocols and networking, including usage of WebRTC,
Discovery for resource-restricted devices,
and new p2p protocols with different trade-offs.
[Ambient Peer Discovery Roadmap](https://github.com/vacp2p/research/issues/116)
## Censorship resistance
Censorship resistance at all layers of the stack, including obfuscated transports and running in hostile environments.
## Identity/Trust
Identity and key management required for non-trivial secure messaging.
This includes multi device management, group management, trust, and reputation.
Especially in a private and secure fashion.

10
docs/rfcprocess.md Normal file
View File

@ -0,0 +1,10 @@
---
title: RFC Process
---
# Vac RFC Process
The Vac RFC unit serves as a vital cornerstone in the Logos collective,
taking on the responsibility of shepherding and editing [specifications](https://rfc.vac.dev/) for Logos projects and Vac incubator projects.
By meticulously crafting and overseeing these specifications, the Vac RFC unit acts as a linchpin for ensuring standardized and interoperable protocols within the Logos ecosystem.
Their expertise and attention to detail contribute to a cohesive and collaborative environment, facilitating seamless integration and advancement of decentralized technologies throughout the Logos collective and beyond.

View File

@ -24,11 +24,6 @@ module.exports = {
label: 'Forum',
href: 'https://forum.vac.dev/',
},
{
type: 'link',
label: 'Waku.org',
href: 'https://waku.org',
},
],
},
],

24
docs/vips.md Normal file
View File

@ -0,0 +1,24 @@
---
title: Incubator Projects
---
# Vac Incubator Projects
The Vac incubator projects, zkVM and RLNP2P, are emerging initiatives that stem from Vac's [deep research](/deepresearch) efforts.
These projects are envisioned to eventually become separate Logos projects, benefiting from the support and resources of both deep research and R&D service units within Vac.
The incubator projects operate within Vac, leveraging the expertise and collaboration available to them.
The Vac incubator projects exemplify the dedication and innovation within Vac and the Logos collective,
working towards the realization of a network state that empowers individuals and fosters a more equitable and trustworthy digital society.
## zkVM
zkVM focuses on developing a general-purpose Zero-Knowledge Virtual Machine.
It enables privacy-preserving computing, which holds significant importance for Logos.
## RLNP2P
RLNP2P centers around the application of RLN (Rate Limiting Nullifier) to peer-to-peer (P2P) networks.
RLN plays a crucial role in providing denial-of-service (DoS) protection within otherwise permissionless and privacy-preserving network protocols.
RLNP2P works closely with the [PSE](https://appliedzkp.org/), collaborating to enhance and refine RLN for efficiency.
By leveraging RLN, P2P protocols and applications can achieve economic, anonymous spam protection, contributing to a decentralized, sybil-resistant, and privacy-preserving communication channel.

41
docs/vsus.md Normal file
View File

@ -0,0 +1,41 @@
---
title: R&D Service Units
---
# Vac R&D Service Units
Vac's R&D Service Units play a crucial role in supporting Logos projects within the Logos collective.
In addition to providing expertise, resources, and technical guidance,
they also develop software artifacts, such as [nim-libp2p](https://github.com/status-im/nim-libp2p),
which can be employed beyond Logos projects.
## Token Economics
The Tokenomics R&D Service Unit is dedicated to designing custom tokens and crafting incentivization strategies for Logos projects.
Leveraging their expertise in decentralized economics and incentive design, the unit develops tailored token models that promote engagement and value creation.
Through close collaboration with project teams, they ensure that the tokenomics frameworks align with project objectives, while also incorporating the latest trends and best practices.
## Distributed Systems Testing
The Distributed Systems Testing (DST) R&D Service Unit is responsible for developing distributed systems testing software,
such as [Wakurtosis](https://github.com/logos-co/wakurtosis).
Their primary objective is to assist Logos projects in understanding the scaling behavior of their nodes within larger networks.
By conducting thorough regression testing, this unit helps identify potential bottlenecks and performance issues,
ensuring the reliability and stability of the projects.
Their expertise in distributed systems testing enables Logos projects to deliver scalable and resilient solutions that can withstand the demands of real-world decentralized applications.
## P2P
The P2P R&D Service Unit is a vital part of Vac, specializing in peer-to-peer (P2P) technologies.
They develop nim-libp2p, work on improving the [libp2p gossipsub](https://docs.libp2p.io/concepts/pubsub/overview/) protocol, and assisting projects with the integration of P2P network layers.
This unit collaborates closely with Vac's deep research team to conduct research aimed at enhancing libp2p gossipsub.
By focusing on advancing P2P technologies, they contribute to the overall improvement and efficiency of decentralized networks,
enabling seamless decentralized communication for the Logos collective and beyond.
## Applied Cryptography & ZK
The Applied Cryptography & ZK R&D Service Unit focuses on cryptographic solutions and zero-knowledge (ZK) proofs.
They provide valuable assistance to Logos projects by offering expertise in employing ZK proofs and implementing cryptographic techniques.
This unit specializes in areas such as employing noise protocol channels and other cryptographic-related aspects.
By leveraging cutting-edge cryptographic technologies, they enhance the security, privacy, and trustworthiness of Logos projects,
contributing to the overall integrity and resilience of the decentralized web ecosystem.