• General
  • The next big step: trustless anchors

I wonder how you feel about this idea: "Trustless anchors are the new blockchain grail". Does it sounds like obvious to you ? Or total non-sense ? If you're not sure what I'm talking about, please allow me to make my point.

The current situation

What I like about blockchain is the robust design. When I own a lumen, I really own it. Meaning, nobody is going to steal it, duplicate it, destroy it or (really) prevent me to access it with a law. It's secured by my private key and I'm the only one responsible to keep it safe.

Now, when I buy some LTC, EURT or XRP on Stellar network, it's not the same deal, right? I need to give my trust to an anchor, and I do. I'm buying promise of LTC, EURT, XRP. I know 98% of us are (mainly) honest peoples, and I'm happy with the idea that anchor managers intent to offer a nice service and grow our network while paying themself fairly for the job.

Still, I think bank account, I think fractional reserve, I think Tether, I think yeah but... This is not the blockchain revolution I signed for. I know we got a beautiful decentralized exchange (DEX). And that's nice, really. Yet, something is missing.

Bitcoin qualities

Bitcoin is peer-to-peer made money. This is to say that bitcoin retained the fundamental qualities of previous peer-to-peer networks: decentralized and trustless. When you download a file peer-to-peer, this can be said trustless. Why ? Because whatever node you connect with, you know you'll end up with the good file, right? No scam. Well, the file itself may be a scam, then it's what you get. But the network don't cheat.

Bitcoin is operating under the same design principle. We don't care so much what node we connect to, because we know it's secure by design. We know the printing rule, we know it's not counterfeit, we really own it. This is arguably what made bitcoin so successful, as trust in fiats value and banks is understandably sinking.

Trustless anchor

An anchor is a node that prints a token on a blockchain for each token it receives from another. This is a 1:1 bridge between blockchains. Nowadays, we have to trust in its ability to be able to convert a token back to its native blockchain the same way we trust in the bank ability to give us money when we want to withdraw. The same way we trust an exchange will give us back the cryptos in our account. And we better be right.

A trustless anchor is an anchor that can't be controlled, and that operate automatically under a set of well-defined rules. Exactly like a blockchain. A bitcoin emitted by a trustless anchor on the Stellar network will be a real bitcoin, because you are absolutely guaranteed that you can get it back on its native blockchain.

The design involves strong redundancy and smart contracts: blockchain technologies. This could be implemented by an independent entity/chorum, and get merged into the main code when perfect stability is reached. There's a missing letter in DEX design. I'd like to see it back. I'm asking for a Trustless Decentralized EXchange.

Remitters selling cryptos

This is a nice side-effect. Right now, remitters can't really do that because that would be selling promises of a litecoin as a real litecoin. The issue here is that remitters have no control over the anchors. It means that if something goes wrong, they can't act on it but will have to bear the responsability anyway.

With trustless anchor, they will be offered a way to sell real ether/litecoins/... without much further coding. Actually, anybody could go ahead with this business and sell foreign coins from Stellar network, providing they comply with legislation. Why would they do that? Well, because they can sell 'x' top value coins implementing only one protocol. Plus low transaction fees. Plus immediate access to an exchange.

This will give us something very interesting: volumes. Those sellers will literaly suck in foreigns cryptos into Stellar network, rocketing the exchange to another level.

RIP lightning network

I'm getting a bit playfull there. I'd like you to consider this idea: "trustless anchors will kill lighting network". Why would you keep bitcoins on the bitcoin blockchain while you could have them on the Stellar network where transaction fees are a fraction of cent?

The day Stellar implement trustless anchor for a crypto, it does offer a lightning network for it. The day Stellar offer trustless anchors for the main actors, it becomes an awesome API for building rock-solid exchanges.

Demand is here

If like me you're reading the news, you heard about things such as tether issues and worry that lightning network will destroy bitcoin decentralization. I'd say there's something important to grab here.

We got the blockchain, and we're still digesting it. Somehow, when facing a problem we may answer with the old solutions. Easier, faster. Yet, when an innovation is going the right way, we can tell it. TDEX is a continuation of what caught our attention in blockchains. This is the next logical step. I have no doubt a cleverly design TDEX will get massive adoption right away.

Let's do it

Well, you probably noticed that I didn't shared any real clue of how to do it. I have a few schemes here and there in my notebooks. Enough to know that it's a very big task. My few clues won't do it. Yet, I can at least speak about it and spread the idea. Even if it's more a bottle in the sea than willpower in action.

Stellar is a very good candidate for implementing this. It's not the only one. Some projects are already on their way, such as ADA. I'm claiming that TDEX are the next big thing, and the first ones to get there will ciment their network in a leader position for quite a time. What do you think about it ?

And, really, how far from it are we ? What are the next little steps ? What are the seemingly unresolvable issues ? And the hint we already got ? This is going to be a collective achievement, with great benefits. Hoorray for the interchain !

    Hi, in my opionion we have two kind of tokens with Stellar in the moment.

    Type 1) Assets on Stellar only
    Got created on Stellar and exist only on the Stellarnetwork. If you set weights accordingly on the issuer account to 0. The price of the token will be set by supply and demand on the exchanges. This is actually is already trustless.

    Type 2) Assets outside of Stellar
    Somebody created a token which is a synonym for another asset which also exists outside Stellar (Euros, USD, ...)
    here we need an anchor who promises to pay what is payed outside of Stellar. Thats all. In my opionion there is no way around to have an anchor.

    Do I see this right?


      MisterTicot Yes, that's my end goal. I don't know how to get there yet.
      Answer is atomic swaps, but devil is in details, trying to figure out how to make it fully automated

        umbrel
        I know, that's a tricky one! I'm glad you aim for it, though.

        tim
        What we usually call anchor in the stellar context is

        Somebody [who] created a token which is a synonym for another asset which also exists outside Stellar(Euros, USD, ...)

        We have anchors for other cryptocurrencies, too, like https://apay.io/ . That's the ones to be made trustless.

        Maybe we could outline what it means to be trustless so we can start to break down how to achieve it.

        I can think of a few things to start:

        1. Auditable - I should be able to prove that I number of assets I've issued <= the number of real assets that I hold.
        2. I should be able to prove that I will automatically exchange a Stellar token for the real thing (obviously this is the meat of the whole thing).
        3. Insured??? - I should be able to prove that in the event of a loss, I can recover and continue to function according to the the other rules.

        I am not sure we can get to fully trustless (although it would be awesome). But we can definitely make steps towards "almost trustless" along the way, which is much better than the current system.

        @StellarGuard

        I agree with you about the way to go. Still, I believe full trustlessness is indeed possible. Here's an attempt at describing it:

        If we assume the foreign block chain support multisignature, both sides could be handled by a quorum of signers that would have to agree over 70%.

        If foreign crypto is sent to deposit address, each quorum node sign the transaction to emit equivalent amount to linked stellar account. Signatures are gathered on chain and each node may attempt to validate it.

        This is the easy side.

        Now if stellar equivalents are sent to the anchor address, they're are burned and each quorum node sign a transaction to transfer the equivalent amount on the native chain. Here it should pick one of the deposit address to do so. It should be algorithmicaly determined so all nodes pick the same. Again, we gather the signatures on-chain and each node may send validation to the native chain.

        The incentive for node runners to keep it healthy is shared profit from withdrawal fees.

        This is the simple case, were foreign chain allow multi-signature. I assume it's rarely the case. Alternative solution may exist using smart-contract or multi-party encryption of the private keys, but I can't get how.

        In this scenario, a valid deposit address for the foreign currency would be an address that have each quorum node as a signer. An independent entity could be needed to check if a deposit address is valid or not.

        Do you see any flaw?

        Edit: Here, I assume that the quorum nodes doesn't communicate directly with each other. They should all build and sign the transactions independently in a predictable way, so they end up signing the same thing. This is to prevent security breach propagation and to allow very tight firewall rules.

          sounds like a great idea to me. takes out the centralization of anchors. but how this would go down with regulators? i dont know? they want you to do the KYC and all that, how will that fit in?

            MisterTicot But do you mean these anchor nodes are some known entities or anonymous?
            I don't see it working with anonymous nodes, if it's trusted nodes, then I kinda don't see the point of it anymore, same thing as normal anchor

            CryptoMediaNetwork
            As far as I know anchors are not required to comply with KYC. This may be because they are not selling anything, but only transferring assets.

            @umbrel

            This design is strictly similar to Bitcoin network design. The concept of trusted node is irrelevant there: the whole point of trustless design is that you don't have to trust a node. The trusted entity is the network, more precisely the fact that the majority of the nodes are honest. The point of this is perfect robustness.

            A compromised node would have no impact in this setup. For the same reason, knowing the identity of a particular node owner is not required, but as we want to ensure that no majority take control it would be better.

            A good starting point could be each of us booting one node using on a different infrastructure to prevent common weaknesses. Ideally, each of us would have an incentive to keep it healthy beyond the shared anchor profit: be it manage an exchange GUI, market bots, a wallet, being member of stellar foundation and so on. A protocol to accept/dismiss members have to be defined (like a 2/3 rule for emitting account highthreshold). Automatic detection/ban of compromised node could be implemented.

            As the maximum number of signers is 20, I would advice to do one node = one being and to aim for a large quorum. However, beyond 6 nodes distributed that way we can assume nobody will be in position to gain control over the anchor, as 4 have to agree on a transaction. Hence, it can be said secure & trustless.

              MisterTicot
              No, you have a very wrong understanding of Bitcoin network design.
              If you assume that other nodes are honest, then you don't need Bitcoin or Stellar at all, Paypal is fine.

              You can't rely on honesty of other nodes in permissionless network. You need to design for selfish nodes.
              In this case selfish behaviour would be to bring up 10, 20 or 2000 nodes, take up majority in quorum and sign few transactions to steal currency. To avoid that you need to know entities behind each node or have consensus protocol which can prevent that shit. Basically you're proposing to make a new cryptocurrency network, where each nodes is capable of communicating with nodes in other networks.
              That's kinda very ambitious even for ICO.

              MisterTicot As far as I know anchors are not required to comply with KYC. This may be because they are not selling anything, but only transferring assets.

              Btw, you're very wrong about that too.
              Anchor should comply with local regulation, it's a gray zone for BTC / ETH / etc in most countries, but if you're anchoring local currency, like EUR, then you are a custodian of people money and need to comply with all related laws about KYC/ AML / etc

              @umbrel

              I feel like my essay missed its point.

              By looking at your reaction, I can't help but think you felt attacked or threatened by my writing.

              I'm sorry about that. I wouldn't dare go ahead with such a project leaving everybody aside. It would be both rude and suicidal.

              I wrote this hoping for some fruitful cooperation to happen, especially with people like you who have some serious experience in anchoring cryptos.

                MisterTicot nah, I'm just trying to help by pointing out flaws in your idea.
                Don't want you to lose time on building castles in the sky.
                As I mentioned above, I don't know 100% how to achieve that myself, so I've started building up user base hoping to find answer somewhere in the future. Open to any suggestions, but at the moment most things come down to being able to execute some code outside the network in such a manner, that wouldn't require signing up to a service by single entity, but rather something like pay-as-you go computing or pay-per-API-call and doing that in secure way, that someone else can't screw up. And to date there is no good solution for that problem

                  umbrel

                  Well I'm not really getting it. I don't understand those tools very much.
                  I can tell an anchor with redundancy and proof-of funds is already ahead of the market standards.

                  I'm trying to design those trustless as a mind game. This is funny. Implemention is another job.

                  So far the multi signature design looks ok but I think very few blockchains handle this natively.

                  I may be on my way to find an alternative using smart contracts. Once again very few chains have that; Still, a gateway that would secure migration from Ethereum to Stellar would be of some benefits for each of us.

                  The real challenge is to find a theoretical solution for contractless/one signature chains which I think is the big majority and would work in every case.

                  I went a bit further looking for a foreign blockchain that would allow a proof of concept.

                  I realized how well is multisignature implemented in Stellar. The design I proposed require on both chains a native multisignature feature that allow to add/remove signers over time to prevent anchor decay.

                  I didn't found that elsewhere. So I guess a proof of concept would have to be implemented between Stellar public and testnet. At this point the trustless anchor design could at least provide migration of native assets between Stellar networks, which may be of some use later if some other organizations happen to implement their blockchains using Stellar.

                  There's also the possibility to implement multisignature or an alternative solution using smart contracts. This is possible. The drawback here is that smart contracts are tricky and the possibility of a failure (i.e.: all money blocked or gone) is non-null, which is not acceptable in a trustless design. Ethereum gave us an example of that with parity wallet failure.

                  Hopefully someone will come with some clue to go forward with this.

                  you have summarised my exact thoughts on anchors(for digital assets) perfectly. It ideally shouldn't be necessary that there be trust.

                  Perhaps someone who has experience creating hardware wallets/metamask type apps could figure out a way. If your stellar wallet could unlock an infinite amount of 'anchored' digital asset addresses like ether without needing the individual seeds...

                  Ie like a hardware wallet. One seed provides access to many accounts on different blockchains... If this could be done with anchored assets that would be amazing!

                  And like you say it would be like enabling the lightning network now. As sending lumens is so much quicker than ether/bitcoin etc.

                  It would also be the best all in one 'wallet' interface.

                  7 days later

                  Another challenger here : https://www.coindesk.com/aion-launching-token-bridge-connect-blockchains/

                  "It's a micro-network, it's a collection of nodes that's decentralized, there's multiple participants, and those other nodes on the network are acting honestly, but that bridge is responsible for agreeing they witnessed the event," Spoke went on to say. "That's the function that we built in."

                  They're going for a similar anchor design, except they're talking about burning the coins so there's only one copy at a time. I'm not sure how they send it back to the original block chain then.

                    MisterTicot

                    I don't see how it can work. If it's burnt it's burnt. Hard to issue new tokens if the contracts have disabled it.

                      You don't, you convince/trick everyone to start using tokens on your chain and burn whatever was on the other chains ? good business model, right?