Giter Site home page Giter Site logo

Comments (7)

ligi avatar ligi commented on July 19, 2024

What is the criteria for a testnet? The lines are blurry ..
Why do you need to figure out which ones are testnets?

from chains.

matejcik avatar matejcik commented on July 19, 2024

Why do you need to figure out which ones are testnets?

Key isolation. On a hardware wallet, I don't want to be using the same address for toy coins for experimental chains, and coins that have actual value, which I don't want stolen or endangered by signing some sort of smart contract message with who-knows-what cross-chain replay protection.

(on Trezor we enforce that "testnet" coins are only using the derivation path m/44h/1h/... whereas the real thing is m/44h/<slip44>h/....)

(of course, the whole issue wouldn't exist if Metamask didn't use the same derivation path for every EVM)

What is the criteria for a testnet? The lines are blurry

The devs of the EVM in question should know ;)
My criterion would be, is the environment stable enough to be a "store of value", however small that "value" is, then it is a mainnet. If there is built-in expectation that there will be rollbacks, experimental forks, if the coin is intended as valueless for this purpose, it is a testnet.

from chains.

ligi avatar ligi commented on July 19, 2024

I do not see the key-isolation part tbh - the chainID and EIP155 isolate the chains already and they cannot be replayed from one to the other. We enforce unique chainIDs. The chainID is part of the tx and this way it cannot be replayed.

wrt becoming blurry: there are testnets I trust more than some "mainnets"

from chains.

matejcik avatar matejcik commented on July 19, 2024

Call it "account isolation" then? Signing an EIP712 message for a smart contract might not include the chain id, and the message might still confer some permissions when someone else wraps it into a transaction on another chain. Wasn't there a problem of this kind with some DEX back when EthPoW started?

But mainly, cryptographic hygiene: don't use the same key for different domains if you can at all avoid it.

Quite honestly, just the ability for the devs to say "this one is testnet and this one is mainnet" would be nice -- sure, I can rely on responsible devs to fill out different slip44 ids to indicate "don't use the same address", but even an irresponsible dev understands what a "testnet" is. (and if someone is deliberately creating something that is not clearly a testnet, flip a coin -- there is no hard line for my purposes so this will not mess anything up)

wrt becoming blurry: there are testnets I trust more than some "mainnets"

yes, well, a boolean field "do_not_touch_with_a_10foot_pole" (defaults to true) would also be appreciated ;)

from chains.

ligi avatar ligi commented on July 19, 2024

But mainly, cryptographic hygiene: don't use the same key for different domains if you can at all avoid it.

yea - fully agree with this - but still do not see any reason for a testnet flag here as it is the same if you use it between 2 "mainnets"

yes, well, a boolean field "do_not_touch_with_a_10foot_pole" (defaults to true) would also be appreciated ;)

we kinda have this with the redFlags array - unfortunately this is a bid underused

I am really not opposed to add more markers to the data of chains - but I think a testnet flag is not helpful. I really hate a "testnet" filter that is often done btw. I value a lot of testnets more than some mainnets

from chains.

matejcik avatar matejcik commented on July 19, 2024

I guess you can close this issue then, i've stated my position well enough.

it is the same if you use it between 2 "mainnets"

Absolutely true, the trouble is we're fighting against the ecosystem here. We can't realistically enforce separation even between networks with properly defined slip44, because Metamask will hate you if you want to use different address per network. The very vague splitting of the world into "testnets" and "mainnets" is enforceable at least.

From the other end of this: a tag saying "this is an L2 of XYZ" marker would be useful to positively assert that you should use the same address.

from chains.

ligi avatar ligi commented on July 19, 2024

we have a way of saying this is a L2 of XYZ in our data - happy to add metadata like this - because there is not really room for interpretation - it is "hard data"

My main fear about a "testnet" flag is that people will put to much trust into things that do not have this flag ..

Anyway happy about other ideas how to add metadata to chains to indicate intent - just "testnet" is to coarse/wishy-washy for me

from chains.

Related Issues (20)

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.