by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Philipp Hoenisch
    @bonomat

    A very warm welcome from the COMIT team!
    COMIT is an open protocol facilitating the trustless exchange of digital assets.
    Feel free to ask any COMIT related question in our community room.

    Below are a few links to get you started.

    Getting started with COMIT:
    https://github.com/comit-network/create-comit-app
    https://github.com/comit-network/hello-swap

    Protocol Specification:
    https://github.com/comit-network/RFCs

    Rust reference implementation of the protocol:
    https://github.com/comit-network/comit-rs

    OliverNChalk
    @OliverNChalk
    Hey, just saw your devcon talk
    Daniel Karzel
    @da-kami
    Hi
    Franck Royer
    @D4nte
    @OliverNChalk Awesome, what did you think?
    husein
    @hfa0
    hi guys, is your project still alive?
    just came across it and I really like what I saw so far
    husein
    @hfa0
    I see commits are not long ago, guess you guys are still on it
    I do have a question. From the docs I see that when running the demo app 2 docker instances are deployed. Which makes sense to me hence you need maker and taker. But that looks to me that if I want to build an exchange on top of comit, each of my users has to run his own cnd. Is that correct or am I missing something?
    Franck Royer
    @D4nte
    Hi @hfa0 yes the project is still alive :)
    @hfa0 Yes it is correct, each user need to run their cnd node.
    Their cnd node is going to tell them (or actually their wallet) what is the next step in the atomic swap: deploying a smart contract, doing a bitcoin transaction, etc..
    Hence a user should not trust a remote (possibly malicious) node! This is why they need a cnd node locally.
    We are all based in Sydney so we might be a bit slow in answering if you are in a different timezone :)
    Daniel Karzel
    @da-kami
    @hfa0 if you have more detailed questions on building an exchange on top of COMIT I am happy to add you to our slack team to give you more support, feel free to send an email to hello@coblox.tech
    You can also ask more questions here, I'll try to be be more responsive on Gitter again :D
    husein
    @hfa0
    Hi @da-kami, sent you an email to add me :)
    Hi @D4nte, well I was thinking to run the exchange on the browser or mobile. Would it be possible to connect all the users to a single node?
    Actually while looking for a solution for the problem you mentioned there :
    How can we construct HTLCs or conditional payments in general without knowing the recipient upfront? What do we need for an HTLC or a conditional payment? It's a redeem address, a refund address, a timeout and a hash. The pubkey hash of whoever can take the money in the success case, and the one for the timelock case, and then the actual timelock and then the hash. The last three parts can actually be chosen by whoever constructs the conditional payment. But the redeem address needs to be constructed by whoever wants to receive the money. If we can somehow get rid of the redeem address, then we can get rid of a communication step between the two parties that want to do an atomic swap. Because then by removing that, you can just send this out there, and people can send an offer for atomic swaps for the conditional payment, and would you sell me this secret? You could build a whole market on selling secrets, it would be easy to build a decentralized exchange on top of this if we could figure out how to make a conditional payment that doesn't need the redeem address upfront but still guarantees only one person can receive it. If you take out the pubkey check in the first branch, then miners would figure out you can just take the money and forward it to myself. It's not as simple as just taking out the variable.
    husein
    @hfa0
    I'm quite new to cryptography and I'm doing some research about the possibilities to make cross-chain transactions. HTLC is obviously the most secure way to do that but requires information probably not known yet (like the recipient address). I have also seen solutions that use Oracle Smart Contracts, which are insecure IMHO. Well, what came in my mind was the same you mentioned in that post. Selling secrets by reveling them to whoever meets the conditions. Like in the case of BTC-ETH one could do the following: A creates an HTLC on the bitcoin blockchain and puts funds in it. Whoever knows the secret is able to spend the funds. Then the desired ETH address and the secret to unlock the HTLC are stored in an Ethereum smart contract. B now wants to buy A's secret. He just sends ETH to A's address and the secret is then revealed to him. B just spends A's HTLC.
    husein
    @hfa0
    Well, this brings some issues with it. The HTLC should be time-locked for A. Hence he could spend the transaction himself, while B is sending him the ETH. So A shouldn't be able to unlock the transaction with the secret rather wait until time has passed. The smart contract should only send the ETH if there is enough time left, so there isn't any race condition between left time-lock and ETH transfer.
    This would again lead to another issue. A would not able to cancel the trade at any time.
    husein
    @hfa0
    Btw I'm from Vienna, but don't worry about the response time :)
    husein
    @hfa0
    Another thought: HTLC doesn't even need to be time-locked. As soon ETH was deposited into the smart contract, the secret can be revealed. B can spend A's transaction, notifies the smart contract and a service like Oracle can verify if B's claim is true. If so, the deposited ETH is send to A. A could then cancel his HTLC at any time. B can withdraw his deposit as long the secret was not revealed to him. Probably would need some service running in the background to notify the smart contract when transactions are cancele to ensure order book consistency.
    Another issue that came to my mind: How can one spend a partial transaction? The secret would allow spending all the funds. The volumes of the buy and sell order would need to match
    What are your thoughts about that? Would be glad to discuss :)
    husein
    @hfa0
    Just found out secrets can’t be stored in a smart contract.. damn
    Daniel Karzel
    @da-kami

    I was thinking to run the exchange on the browser or mobile. Would it be possible to connect all the users to a single node?

    When you say node, do you mean the cnd (COMIT node daemon) or the blockchain nodes?
    cnd has to be able to monitor the respective blockchains of a swap. cnd is very lightweight though, it can easily run on a phone - and it is possible to plug other block-sources than a full-node (but adds some security assumptions).

    Daniel Karzel
    @da-kami

    Just found out secrets can’t be stored in a smart contract.. damn

    Well, "stored" is relative I suppose. You cannot store it without it being revealed. That is the point of the secret when using HTLCs - the role of Alice comes up with the secret and has to redeem first so the the secret is revealed for the other party. (feel free to have a look at our recently updated documentation: https://comit.network/docs/core-concepts/atomic-swap-htlc )

    Concerning Oracles (and watchtower) solutions: There are solutions out there that do atomic swaps similar to the way you describe it above, but that would be a different protocol from our approach. We are currently not looking into solutions that use Oracles. I haven's thought the process you introduce above completely through. Usually I would paint a sequence diagram and then see if it makes sense :)
    We can discuss this in a PM on slack if you want, feel free to ping me.

    Franck Royer
    @D4nte

    Hi @D4nte, well I was thinking to run the exchange on the browser or mobile. Would it be possible to connect all the users to a single node?

    If the users have to connect to a remote cnd, hosted as a service by yourself then they’d have to trust you. Atomic swap are a tool to allow one not to trust a 3rd party. If you ask then to trust your cnd then better not do an atomic swap at all.

    Users should run their own cnd whether it’s on mobile, on a raspberry pi or a laptop.

    How can we construct HTLCs or conditional payments in general without knowing the recipient upfront? What do we need for an HTLC or a conditional payment? It's a redeem address, a refund address, a timeout and a hash. The pubkey hash of whoever can take the money in the success case, and the one for the timelock case, and then the actual timelock and then the hash. The last three parts can actually be chosen by whoever constructs the conditional payment. But the redeem address needs to be constructed by whoever wants to receive the money. If we can somehow get rid of the redeem address, then we can get rid of a communication step between the two parties that want to do an atomic swap. Because then by removing that, you can just send this out there, and people can send an offer for atomic swaps for the conditional payment, and would you sell me this secret? You could build a whole market on selling secrets, it would be easy to build a decentralized exchange on top of this if we could figure out how to make a conditional payment that doesn't need the redeem address upfront but still guarantees only one person can receive it. If you take out the pubkey check in the first branch, then miners would figure out you can just take the money and forward it to myself. It's not as simple as just taking out the variable.

    This is food for thoughts on how to move things forward. Please note we have not progressed on this front. We are prioritising other things such as lightning integration.

    Please let’s discuss on slack, it’s easier with threads :)
    Taha Dhailey
    @dhaileytaha
    Hi
    Taha Dhailey
    @dhaileytaha
    guys what is the status of LND to erc20
    i read in an article that comit team where able to do swap from erc20 to LND
    but not vise versa
    if there is any documentation
    or if any contribution needed i am ready to help
    Franck Royer
    @D4nte
    Hi @dhaileytaha , how is the article? We are currently working on a bi-directional integration of lightning in COMIT which would allow Bitcoin Lightning to ERC-20 swaps.
    A part of the team is currently working on that so it’s not yet ready for contributions. We plan to merge a major piece of work this week.
    How do you want to help us and contribute? All code is opensource so you can always feel free to check out our projects. Are you trying to build your own COMIT App?
    Taha Dhailey
    @dhaileytaha
    I am too working on LN to erc20 swaps
    i came across this article
    @D4nte i can help contribute with programming, tutorials and documentations for your LN to erc20 swap project, that's all i can say
    Daniel Karzel
    @da-kami
    Great that you want to contribute @dhaileytaha - I sent you a PM with the invitation link to our slack team. Let’s discuss the details there :)
    Taha Dhailey
    @dhaileytaha
    Hi
    slack app is not working for me anymore :(
    503 serve error;
    Daniel Karzel
    @da-kami
    It seems to have been a general Slack problem, should be back up no - https://status.slack.com/2020-05/147dad376c8946ff