Inspiration

Wireguard VPN and NEAR Protocol use the same cryptographic curve, making them a natural fit to demonstrate how to apply blockchain based authentication to real world applications.

What it does

The project creates an NFTc (NFT Configuration) minter where VPN providers can mint sets of signed NFTc that provide a self contained VPN configuration and subscription. Upon receiving the NFTc, a NEAR-compatible VPN client reads the configuration data from the NFTc and configures the connection automatically. VPN Servers can verify the user subscription in a RESTful manner upon connection, without having to keep a client database. The cryptographic keys can later be changed on both ends as often as necessary seamlessly and without any configuration, just sending the NFTc to new blockchain addresses.

How we built it

We used NEAR-API-JS and some tutorial code for the NFTc minter. Next we will work on the VPN client, that will be a modified version of Boringtun (a userland fork of Wireguard written in Rust) connecting via NEAR RPC .

Challenges we ran into

Finding a suitable environment for this idea, until we found NEAR. The design of how the NFTc are signed with the server private key was particularly challenging as we could not find a completely satisfactory way for the OS native VPN client to interface with the wallet.

Accomplishments that we're proud of

Using NFT for real world purposes. Minting the first NFTc set with a full custom VPN configuration.

What we learned

To make a NFT first you need to make a NFT making machine! :)

What's next for Cableguard VPN Authentication based non Non-Fungible Tokens

  • Update the login method to FullAccess
  • Complete the modification of the VPN client.
  • Create a Point of Sale so VPN providers can sell their VPN subscriptions.
  • Create Verification nodes so VPN providers can verify third party NFTc and provide cross-services.
  • Create a VPN provider finder so users can quickly and easily find a suitable VPN server.

Built With

Share this project:

Updates

deleted deleted

deleted deleted posted an update

You may or not be interested about the choice of Cableguard for a name. Reasoning Jason Donefeld created Wireguard, Cloudflare created Boringtun (userspace Rust) from Wireguard code probably inspired by BoringSSL, and as I am Spanish, Wire in Spanish is Cable and going back to Jason's creation, boom Cable Guard -> Cableguard

Log in or sign up for Devpost to join the conversation.

deleted deleted

deleted deleted posted an update

Well, we are making great progress. cableguard-tools now generates implicit account ids and the cableguard NFTC minter is up and running minting away! Now for the last leg, boringtun mods!

Log in or sign up for Devpost to join the conversation.