Code Monkey home page Code Monkey logo

nanonymous's Introduction

Nanonymous: A privacy-focused Android wallet for the cryptocurrency Nano

This wallet is a proof of concept wallet which shows how one can create a privacy-focused wallet by taking use of the no-fee feature of Nano.

How Does It Work?

The privacy is constructed by taking use of multiple addresses created by one seed. Every address has a corresponding index which starts at 0. When you first start using the wallet it will only create one address which is shown on the main page. If you send Nano to this address it will then increment the index and create a new address with index 1 and show this on the main page. Thus the address which is shown will always have zero Nano and blocks associated with it. Thus friends can send Nano to you without knowing the balance in your other addresses.

Thus, the amount of Nano this wallet stores can be distributed amongst a big set of addresses. That means that if people send money to your wallet, they will not see how much Nano is in your wallet. Only the amount they sent since every address is ment to only receive one transaction.

When you wanna send Nano to one of your friends, the wallet will take the smallest index that has a non-zero balance and see if there is enough balance in that to send the money. If there is not, it looks at the next index, adds the balance in that address and see if that is enough Nano. It keeps incrementing the index until it has enough addresses with enough balance in total. Then it empties the accounts by making one send block per address. For the last address, it sends the required Nano left over to the receiver, and the rest is sent back to the user by looking at the next index address.

Here is an example: Addresses with index 0-4 has 5 Nano each which totals 25 Nano. You wanna send 12 Nano to your friend with address A. You first send all Nano in address with index 0 to A. Then all Nano in address with index 1 to A. That is a total of 10 Nano. Then you send 2 Nano from address with index 2 to A. Now your friend is happy since he has received all 12 Nano. You have 3 Nano left in address with index 2, and so that is sent to your next address in line which is index 3. So now address with index 3 has a total of 8 Nano.

This makes it much harder for a third-party to track your Nano. You can also receive Nano from people without revealing how much Nano you have. Also, since Nano has no fees making all these transactions do not hurt the user in any way. It requires more from the wallet creators since they have to produce more work, but the users benefit.

Nanonymous is of course not a 100% anonymous, but it certainly makes it much harder for someone else to track your Nano. I hope this proof of concept wallet will convince people that it is possible to create more privacy-focused wallets, and that it will start a discussion in how to most effectively achieve privacy.

Development

This wallet was developed for Android, but since it is created in Flutter it shouldn't be very hard to port it over to iOS.

At this moment, I do not have enough time to keep this wallet feature-rich and bug free. It is therefore only ment as a proof of concept. If anyone is willing to spend their time helping me further develop this wallet, please reach out! But at this time, I can not maintain this wallet to the standard that cryptoicurrency wallets should meet.

nanonymous's People

Contributors

lillejohs avatar

Stargazers

 avatar  avatar Saeed Rasooli avatar trashman avatar  avatar mr avatar Fábio Borges Jr avatar Joohansson (Json) avatar Sevenate avatar qwahzi avatar

Watchers

Saeed Rasooli avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.