Search content
Sort by

Showing 20 of 82 results by mappum
Post
Topic
Board Project Development
Merits 3 from 1 user
Topic OP
Nomic: High-performance Bitcoin sidechain
by
mappum
on 09/05/2020, 01:05:53 UTC
⭐ Merited by ABCbits (3)


Website: nomic.io
Twitter: @nomicbtc
Telegram chat
GitHub repository



tl;dr:

  • Fast Bitcoin sidechain network
  • Allows fast, low-fee BTC payments, and advanced decentralized BTC apps
  • More decentralized than other sidechains
  • Just launched a testnet, you can run your own full node



Hey Bitcointalk,

For the past few years, we've been building an advanced sidechain system. We believe this will unlock the future of Bitcoin by allowing high performance payments (scaling Bitcoin to support billions of users) and making decentralized BTC apps possible.

Nomic is permissionless and decentralized. Unlike Liquid, on the Nomic sidechain you don't need to be whitelisted by Blockstream to withdraw your BTC, and the network is merge-mined with Bitcoin to remain open, as opposed to Blockstream's centrally-picked list of authorities.

One main thing we're building on our sidechain is a decentralized Lightning hub. Inbound LN capacity is a scarce resource since it requires BTC to be locked up. On Nomic, hodlers can earn interest by lending out their BTC for use in Lightning channels in a decentralized, risk-free way, and merchants using LN can easily get the inbound capacity they need.

Our framework for building 2-way pegs can also be used to build other kinds of advanced decentralized Bitcoin applications. Any Bitcoin app that exists on a central server today can be moved to its own decentralized sidechain network.

Join the Nomic Testnet

We've been working hard on our codebase for a while now, and have a working testnet which allows you to deposit testnet BTC into the peg, transfer it on the sidechain for very low fees, and withdraw back onto the mainchain whenever you want. We welcome you to run a Nomic full node.

You can also mine (it's currently very easy to CPU-mine) to become a signatory and help secure the BTC reserves held in the network multisig.

Try out the Nomic Sidechain Testnet by running a full node

We're very excited about how this project can advance the future of Bitcoin, and we'd love to hear your feedback or answer your questions. Let us know if you need some testnet BTC or help running a node.

Remember to join the Telegram chat or follow us on Twitter to follow along as Nomic develops.
Post
Topic
Board Project Development
Re: [ANN] Memecom - Trade dank memes, backed by Bitcoin
by
mappum
on 17/10/2018, 15:27:42 UTC
How exactly do you make money?

While it would be possible to build in a founder's reward to the protocol (like Zcash) to show explicitly how much is being paid to the developers, this still seems too scammy to me.

I'd much rather just profit from the growth period where this market is being adopted, so I would make money simply by buying shares of obviously large-scale memes while they are extremely cheap. That seems very fair to me.

And; how is the market going to react to certain "memes"- apart from their popularity they have no ''function'' which will result in most if not all of them being a Pump & dump - your entire platform being a pump & dump.. -> Which will ultimately result in no one using/trading on your platform.

Money is only valuable because people believe it will be, and markets only behave based on what people believe others will do. So the thesis here (which may or may not prove to be true) is that people will believe in meme markets enough to keep money in them (whether for entertainment value or to store financial value). So it's really not different from the thesis that altcoins have value, and we know Dogecoin has maintained a relatively large market cap just for being based around a meme. Actually, it's one step better than altcoins since the shares can be redeemed for real Bitcoin.

This would be ideal, however i highly doubt this is what will happen. That'd be wayy to predictable.

I definitely see this as an experiment, overall nobody truly knows what the future of crypto holds Smiley
Post
Topic
Board Project Development
[ANN] Memecom - Trade dank memes, backed by Bitcoin
by
mappum
on 17/10/2018, 13:35:29 UTC
Hey Bitcointalk,

We've been working on a project called Memecom, it's a Bitcoin proof-of-stake sidechain with decentralized memes that you can buy and sell shares of.

The beta is live (not using real Bitcoin yet, and the interface is designed for mobile), start trading memes now:
https://memecom.co


You can buy shares of any internet meme by sending Bitcoin to an automated market maker (similar to the Bancor project, or what some people call bonding curves), which puts the BTC in a decentralized pool of reserves. Conversely you can sell shares back to the automated market maker to get BTC. This way, even for small memes there is always liquidity, and it allows speculators to make a profit by investing in the right memes.

As a consequence, a healthy market of speculation around meme popularity ends up curating a list of which memes are popular right now, taking into account all the information the market uses to trade on (e.g. Google trends, Reddit popularity, mentions in traditional media, etc.)

I have some more info about the the pegged sidechain design here: https://github.com/mappum/bitcoin-peg/blob/master/bitcoinPeg.md

This is a very early stage for the project, at the moment you can only trade with fake Bitcoin but I'd like to put this out there to see what people's thoughts are. Thanks.
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 24/06/2015, 18:31:57 UTC
If there is BTC/Fiat, it will be better, I will try it after it launches.

now how would u do decentralized crypto -> fiat?

That would be possible with assets issued on the blockchain by a gateway service, for example if a bank takes USD deposits and sends you USD colored coins in return. You can then trade those USD coins just as you would any other coin on the blockchain, safely and transparently.

Of course, this means trusting the service to honor the colored coins and not to default if you want to redeem them for "real" USD. However, this is still much safer than other centralized financial institutions since the accounting is all done publicly on the blockchain, and everyone can tell if the service is ripping you off or not. And there could be a diversity of gateway providers to use, for instance commercial banks or even the Federal Reserve.

There is no way to get away from some amount of centralized trust when using fiat, we can't magically turn it into a cryptocurrency. However, USD-backed assets on the blockchain is the closest we can get.
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 02/06/2015, 18:53:19 UTC
I am actually quite surprised that this has not taken off faster than it has already, what is stopping this from exploding? I haven't reviewed the code, but there does not seem to be any complaints from current users, so why has it not gained extreme attention?

Two reasons:
1. The software is still a little buggy, not in ways that should lose money, but in ways that make the client hard to use. I have yet to fix some annoying crashes.
2. Until the OP_CHECKLOCKTIMEVERIFY changes are adopted by each coin, there is a TX malleability attack that can let the counterparty steal the funds that should have paid out to you.

I'm working on building out all the code, so #1 should not be a major issue for long. But #2 waits on the coin developers to merge the OP_CHECKLOCKTIMEVERIFY changes. This is very likely to happen since a lot of other protocols rely on this change, but all I really can do is wait.
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 31/03/2015, 21:05:08 UTC

Help us please.
It is not my picture. Other man screenshot it.
But I have some problem.
199 it is my too, but i sell this 199 dogs, and have some error.

"Canceled. Something went wrong, your funds where returned to you"

We want trade in mercury exchange.

Thanks for letting me know. Could you please PM me a link to your debug log so I can see what happened? It is located at ~/.mercury/logs/debug.log (on Windows, replace ~ with C:/Users/).
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 26/03/2015, 08:00:16 UTC
Disclaimer: I am currently working on my own decentralized exchange although I've tried my best to make this feedback balanced and accurate.

First, let me say this is a great project. I like your user interface, your centralized order book is a nice simple idea, and you seem like a competent developer. However I can't help but think you're glossing over the security concerns by making too many assumptions. Keep in mind, I do understand this is a prototype but as it stands this design won't work for real money (at least not very well) and here is why:

1. Transaction malleability. If the transaction that the refunds depend on is mutated the refund will be invalidated, potentially locking any funds up within the contract and leaving the contract vulnerable to extortion attacks. You suggest this problem is too costly to perform but let me say: that might not be the case. A particular paper comes to mind (0) in which researchers were able to double-spend zero confirmation transactions on the Bitcoin network by having vastly more connectivity than the victim and using that connectivity to propagate the double spend TX before the legitimate TX arrives. The attack works by exploiting the properties of the mempool, as nodes will only accept the first version of a transaction for any group of inputs. Now in the context of your exchange, an attacker could simply mutate (3) the "bond" TX and propagate it to the rest of the network / the majority of miners before your original transaction arrives (1) ( 8 ). This attack would not be expensive to perform and could be done with a few hundred $5 a month VPS'. Additionally, the attacker could vastly optimise his chance of success by monitoring multiple points on the network, thereby ensuring the attacker sees transactions at the earliest possible time.

Even if the attacker only succeeds in mutating less than 5% of transactions and your exchange's transactions constitute less than 0.00001% of that TX volume - that could still translate to quite a large number of users effected (4) and OP_CHECKLOCKTIMEVERIFY won't save you here. You seem to be assuming that once Bitcoin Core merges the patch that all your problems will go away, but this relies on the assumption that alt-coins will actually merge Bitcoin Core's patches and stay up to date when generally they don't. There are still patches that were made to Bitcoin core in 2012 that have yet to be merged with Litecoin and I'm guessing it's the same story with other alt-coins too. Thus, alt-coins that aren't forked after the patches are likely to remain vulnerable to TX malleability for years - possibly indefinitely.

Of course, you could fix this whole nasty problem in a day by adding fail-safe keys to your scheme, that way if the money is locked you can still mediate ... but if you decide to do that, you then have to worry about the security of the keys and you couldn't claim that your scheme was entirely trustless if  full mediation was required.

2. Partial matching. From my understanding of your code there doesn't seem to be a mechanism for partial matching. In practice, this would mean that your users would have to wait for 8~  confirmations * confirm_time minutes (80 minutes for Bitcoin!) between every match (and large orders may require hundreds of them.) The problem comes from the fact that Bitcoin transactions are like hierarchical trees, that outputs must be spent in full, and that the distribution of amounts amongst outputs isn't guaranteed to be optimal for matching trades. Consequently, any given match - even for a small amount - could make 100% of the coins in your wallet unavailable until the contract was confirmed (which would make it incredibly painful to match trades.)

A proper exchange needs to support partial matching (5) to be able to efficiently match orders and I'd argue its even more important for "decentralized" exchanges as trades are already thousands of times slower than centralised exchanges because of the block chain.

3. Non-standard transactions. Since this is getting too long I'll just summarise this point: cross-chain contracts rely on non-standard transactions whose propagation is outright rejected on most alt-coins. The result is your contracts likely won't work on the main network and if  it does: confirmation time will take hours rather than minutes. This is a huge issue because you can't fix the lack of transaction support with any coding patch. It's an immovable object built directly into the parameters of the network and the only way around is to be able to influence the miners directly into accepting your non-standard transactions. You probably won't have this problem on the Bitcoin side because the IsStandard() rules were recently relaxed (2), but on alt-coin I can see you pulling your hair out (6) (7)
 
tl; dr, your design has major problems that you need to fix. These are all problems I've had to address in my design so if this criticism comes off as too vague I'm happy to elaborate.

(0) https://eprint.iacr.org/2012/248.pdf
(1) There have been reports of widespread transaction mutation on the main network. An attacker might already have the capabilities I've discussed.
(2) https://github.com/bitcoin/bitcoin/pull/4365/files
(3) I have a five line function in my repo - literally five lines, and it will mutate transactions on most alt-coins:
   
Quote
def mutate_tx(tx_hex):
    """
    Mutates a raw transaction using TX malleability in the scriptSig (specifically, the OP codes.) This function shouldn't be used beyond testing as it uses an ugly eval() hack.

    https://en.bitcoin.it/wiki/Transaction_Malleability
    """
    tx = CTransaction.deserialize(binascii.unhexlify(tx_hex))
    script_sig = repr(tx.vin[0].scriptSig)[9:]
    script_sig = eval("CScript([OP_1, OP_DROP, " + script_sig)
    tx.vin[0].scriptSig = script_sig
    return b2x(tx.serialize())
   
(4) I'd argue even 1 user effected would be bad since there's potentially no way to retrieve the money if  the other side discards the key.
(5) A simple solution is to sort the order book in descending order but that still doesn't guarantee optimal matching.
(6) Tier-Nolan came up with a solution to this that only requires non-standard transactions on one side of the trade. The details are available here: https://github.com/TierNolan/bips/blob/bip4x/bip-atom.mediawiki
(7) I really like cats.
( 8 ) The window of time for such attacks would be possible depending on how close the attacker was on the network to the broadcasting node. If we assume around 50 - 400ms latency between hops, then the arrival time for the initial transaction would still make a double-spend possible given the current network propagation delays: http://bitcoinstats.com/network/propagation/

And now I'm done editing.


Thanks, that's probably the best-written and most thoughtful feedback I have received yet.

1. Transaction malleability. I agree completely that malleability is a major concern and I am not satisfied with the attack only being costly to perform. However, it is at least a better situation than the experiments in the paper you linked since those researchers were in possession of the double-spend TX at the same time as the attack TX. In my case, the "deposit"/"bond" TX is not directly sent to the would-be attacker directly which makes it at least slightly more unlikely to get the transaction fast enough to perform the attack. Additionally, the Mercury trade server already helps out by being well-connected to miners and relaying the transactions (but this means traders are trusting the Mercury servers to not perform the malleability attack, which of course I am not planning on doing). These are only precautions for the time being, I don't plan on making a marketing effort for Mercury until the protocol is secure against malleability attacks.

Obviously OP_CHECKLOCKTIMEVERIFY is the real solution, and while it is a painful barrier that all coins will need to adopt it, I believe I can lobby coins to put in that patch (thankfully it only requires a soft fork, not a hard fork). Micropayment channels, cross-chain atomic swaps, and any other contract protocols that need to have refunds all rely on OP_CLTV so it has a good case for being merged in.

2. Partial matching. Interesting point, I had not thought of that. But I must be missing something, because I do not understand where your "8 confirmations" figure is coming from. Trades will be able to be made safely with far less than 8 confirmations (maybe even 0 for small-value trades), and outputs are not  tied up while contracts are confirming. As soon as the deposit transactions are spent, the change should be spendable (however, chaining too many unconfirmed transactions could cause problems). If I'm understanding your point correctly, it can be solved simply by breaking up outputs in the wallet into many smaller outputs (balanced at a good size that doesn't make transaction sizes prohibitively large).

3. Non-standard transactions. This is already a solved issue since I am using TierNolan's clever protocol that only requires one chain to support non-standard transactions. Bitcoin Core 0.10 relaxes the rules and has already been adopted by ~40% of the network, and empirically my non-standard transactions are getting confirmed into blocks in 20-30 minutes on average (and will get faster as more miners update over time).
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 26/03/2015, 02:31:51 UTC
Great Smiley

So if we had a non Bitcoin based coin like Nxt, Ripple or BitShares, and they implemented some sort of PayOnSecretReveal & SecretReveal API would that be pretty straight forward to implement into Mecury?

It's slightly more complicated than that in order to allow the deposits to be redeemed by the refund transactions, but that sort of API would be most of what is required. I don't know a lot about how these currencies differ from Bitcoin, do they still have the same input/output system, with scripting?
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 25/03/2015, 23:54:24 UTC
Hi mappum, do you plan to add support for interacting with coin daemons instead of relying on inbuilt SPV clients?  This way people could host their own nubits daemon and mecury could just call its APIs? This seems to me a much more scalable solution.

The currently implemented coin clients will already do this (they check for a node running on localhost, and if there is one they use it as a trusted peer). You're right, it might be a good idea to get Nubits to work like that, so that a SPV client doesn't have to get developed first.
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 25/03/2015, 21:19:52 UTC
Good news on that front - our source code audit is nearly complete, meaning we will be open-source in the very near future. We'll post here as soon as you can access the code.

In the meantime, we have our Documentation available here: http://docs.nubits.com/, and our NuBitsj library here: https://github.com/Cybnate/NuBitsj

Shoot us a message if we can be of help! info at nubits dot com.

I'm a little worried about NubitsJ. Since Nubits uses PoS, the blockchain can't be safely verified by an SPV client. It seems that NubitsJ tries to solve that by trusting a centralized server for blockchain download, which is very insecure (full trust is being placed in that server).

If a more secure model can be worked out, I will work on adding Nubits. This might involve a client with a little more overhead than SPV (e.g. a pruned full-node).
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 25/03/2015, 21:16:08 UTC
nice it looks like good work., any chance we see Monero on it?

Sure, Monero is a good candidate since it has a good amount of trade volume. I'll try to get it in the next release or two.
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 20/03/2015, 05:38:09 UTC
This look interesting and it's in Java  Grin

The code seems well written and easy to follow.  I'll study see if I can contribute to it in anyway.  Perhaps I'll start by adding in a new coin.

Thank you for making it open source.

Awesome Cheesy If you add a new coin, look at my fork of Bitcoinj: https://github.com/mappum/altcoinj
Each coin has a NetworkParameters class in the params package.

Just letting you know, I'd prefer coins to be ones that have significant volume, I don't want to just add every boring altcoin. Some important ones that need to be added are Nubits and Ethereum (but those are a little more complicated).
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 19/03/2015, 22:50:53 UTC
Hi! Please, support my order! Sell me some DOGE! Smiley

Looks like someone made the trade Smiley

Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 19/03/2015, 22:42:36 UTC
Hey I just wanted to make a suggestion. I know we talked earlier about AT and malleability and it was concluded it still is a problem until the update of checklocktimeverify.


However, I think I have a really good idea that may help you fully avoid malleability. In BitHalo, we use "instant refund" for preventing a malleable transaction. If you have a refund based on the TXID of the transaction in question to a multisignature account controlled by both parties then you can do AT! The amount must only slightly exceed the amount being traded. Hell, even a small refund would be a deterrent if it exceeded the probability of a successful attack.

Thus if a party deliberately changes the TXID before broadcast then he loses the refund. This can help you until checklocktimeverify is added and can make 100% sure your exchange is trustless.

This way we know that p2sh is indeed more resilient. Because we should try and attack the mercury exchange to test its resilliance to these attacks. If you want, i can give you a p2sh malleability script in python.

Please read my whitepaper on instant refunds and let me know what you think. If you have a question for me please PM me since i dont always check bitcointalk. The whitepaper is here... www.bithalo.org

Best,
David

Right, I mentioned that solution here before:

Additionally, a way to solve the malleability attack is to require party A to deposit some coins into party B's initial multisig deposit. If A mutates the transaction, they are also tying up their own funds in the process. This solution is already possible today, I may implement it in the Mercury alpha.

But it turns out to not be very viable from a UX standpoint, since traders have to already have a significant balance of the coin they want to buy (so they would have to buy it on another exchange), and they could then not trade their entire balance. It's still an option if necessary, but I'd actually rather lobby for OP_CHECKLOCKTIMEVERIFY to be added to coins since it only requires a soft fork and it is also necessary for micropayment channels and some escrow protocols.
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 17/03/2015, 21:31:05 UTC
@mappum how you getting on with adding support for colored coins? Are you going to use the open assets protocol?

I'm holding off until there are some real assets to trade (I don't know of any high-volume colored coin assets on the market right now). However, I expect some companies to start issuing colored coin-based assets very soon.
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 17/03/2015, 21:29:08 UTC
because no one is holding your coins - the coins are just locked up in algorithmic contracts. Therefore, you never have to send your money to an exchange in order to exchange it. Your money essentially stays in your wallet until the contract is filled, and then the transaction is sent.

(did I get this right?)

Yep, that's correct Smiley More details about the contract protocol are here: https://en.bitcoin.it/wiki/Atomic_cross-chain_trading
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 17/03/2015, 05:42:02 UTC
what it mean trustless? unsafe?

Trustless means you don't have to trust anyone else, so your funds are as safe as possible. When using centralized exchanges, you are trusting the exchange operators with your money so they have the power to do what they want with your money. In a trustless exchange, only you ever hold your money.
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 09/03/2015, 22:12:15 UTC
Some criticism here https://bitsharestalk.org/index.php?topic=14736.msg191291#msg191291

Another critique is that front running is possible with a centralized order book, see https://bitsharestalk.org/index.php?topic=14736.msg191299#msg191299

@mapum would love to hear what you think about all these points.

This protocol is definitely not made under the assumption that all parties are acting honestly, it would not be considered trustless if that were the case. Not going through with orders is much less critical than other types of attacks, since no funds would be stolen, the only damage is that funds will be locked up for a few hours before the refund unlocks.

However, this attack is completely solved by using security deposits: traders pay a one-time deposit or fee when they first begin using the trading platform to initialize their trading identity (which is pseudonymous). If the trader using that identity fails to go through with trades (they could possibly be given 3 strikes), the orderbook server will ban that identity, and the trader will have lost their security deposit. This mechanism makes it unprofitable to back out of trades.

Front running can be solved by including signatures along with orders that prove they are actually backed by unspent outputs, and by communicating over a p2p gossip network to ensure the orderbook is valid. These things will be worked on in the future, and will essentially make this model fully decentralized (but are more complicated, so Mercury's federated model should work fine until then). They will also require full node verification (or UTXO set queries), so they are not yet viable with SPV clients.
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 05/03/2015, 22:00:36 UTC
Can you add in the future version the possibility to see the private key for each address that I own in mercury? Maybe also the opportunity to import/exports the various address.

Thanks for the attention.

Sure, import/export is already on my TODO list. Smiley That will be there sometime before the Beta release (which I hope to finish a few months from now).
Post
Topic
Board Project Development
Re: Mercury - Fully trustless cryptocurrency exchange - Looking for testers!
by
mappum
on 05/03/2015, 21:59:11 UTC
Is it possible to open 2 or more instances of Mercury on the same computer?

I'd like to test trading with myself.

If it's not possible I know I can use a virtual machine or another computer but I want to confirm first.


Yes, it's possible. Launch one instance of Mercury with the environment variable DATA=data (that will make that instance of Mercury store its wallet in the directory './data'.