Inspiration
Ethereum (as most blockchains) has a privacy problem. This needs to be attacked on multiple fronts. One of them was described by Péter Szilágyi at DevCon4 If you are not aware of the full extend of the problem (e.g. thing having some zk in your stack would solve the problem completely) Please watch this talk before reading on. For a wider scope look at the problem and motivation see the talk by Cory Doctorow at DevCon4. These talks outlined the problem. The talk INCUBED - A trustless incentivized decentralized remote node network by Christoph Jentzsch" carried part of the solution. Already suggested way back at Ethereum Magicians. But this Flyig Circuit was the perfect chance to dive into this. TinCubETH intents to be the second best thing you can do for your privacy. The best will still be running your own FullNode (which unfortunately is infeasible on e.g. phones for most chains)
In short: BlockChains have privacy problems and this project intends to be become part of a solution
And it does not stop at privacy - it also helps the resillience of the parent sytem. For big actors (like states) it is actually not that hard to attack a service like infura as it is well known. But it is quite hard to take down onion services as Silk Road nicely showed. Just instead of sending interesting physical packets - in this case we use it to transport interesting digital packets only.
What it does
It actually does not do much yet. Our goal was more to explore the space, see if the idea has merit and lay the foundation. Also explored the UI/UX of the space a bit like this: https://github.com/walleth/walleth/issues/390 Find the concept here: https://github.com/tincubeth/doc
How We built it
- With passion and love
- TincubETH built a Docker container so either Parity-Ethereum or Geth may be used over Tor with Slock.it Incubed
- The Docker container that is configured to start a Slock.it Incubed Server on the Görli Testnet, start a a Parity Ethereum Blockchain Client Node on the Görli Testnet, and start a Tor Network Service.
- The Incubed Service exposes port 9050 over TCP that is only accessible to the Tor Network Service as a Socks Proxy since we do not want to map any ports to the host machine.
- The Onion address for Incubed Clients to connect to is meant to be generated.
- Additional option to run Geth (Go Ethereum) instead of Parity Ethereum.
- Credit to Randy Westergren who provided this blogpost that helped show us one approach to building the prototype https://randywestergren.com/running-a-hidden-tor-service-with-docker-compose/
Challenges We ran into
- IN3 not being fully released in source yet (full source should be dropped September 2019)
- IN3 server keystore problem: https://github.com/slockit/in3/issues/52
- IN3 + Goerli being problematic currently: https://github.com/SlockItEarlyAccess/in3-android-example/issues/7
- Tor-Onion-Proxy-Library should be avoided - NetCipher looks much better: https://github.com/tincubeth/android/issues/1
Accomplishments that We are proud of
- highlighting the power and simplicity of IN3 and shining a light on it
- getting people to talk about privacy on Ethereum
What We learned
it looks most possible/feasible after slockit releases the code
What's next for TinCubETH
- hoping it improves the current situation at least a bit.
- Integrate privacy and security sliders into WallETH
Built With
- android-studio
- docker
- kotlin
- solidity
- tor
Log in or sign up for Devpost to join the conversation.