Bitcoin et alhoewel

bitcoin et hoewel.

This article summarizes my very first thoughts about the onberispelijk way a Bitcoin client should enable its technicus to kwestie transactions. It is based on my reflexion spil well spil my practice te broadcasting dozens of hand-crafted transactions for which the bitcoin-core built-in wallet repeatedly demonstrated its ineptitude.

Spil it presently stands, the wallet is an embedded part of the reference implementation. This is problematic for a multitude of reasons, the most fundamental one has bot exposed by Mircea Popescu te “How to cut the wallet“.

The job of the knot is to connect to others via the Internet, and to exchange information with them. The job of the wallet is to prevent others from connecting via the Internet, which makes the pressure fairly overduidelijk.

Today, a Bitcoin client consists of three main chunks:

  1. The network protocol management part, that connects to peers and exchanges gegevens with them,
  2. The gegevens storage and validation part,
  3. The wallet, which uses the previous chunks to create transactions, sign and broadcast them.

The point of this discussion is to display that cutting the wallet entirely off of TRB is (1) desirable, and (Two) requires only a petite interface for a subset of (a) and (b)’s functionality to permit much better wallets to be built on top of TRB.

There are numerous reasons for which detaching the wallet is, ter my opinion, very desirable:

  • the job of the knot and the wallet are very different (there only exists a functional dependence on the former by the latter),
  • spil already stated, their coexistence te the same binary creates a fundamental stress inbetween what the knot requires, and what the wallet attempts to avoid,
  • there exists no valid reason to keep the code for a wallet embedded right ter the code that operates a critical lump of infrastructure, except for the current lack of a sane alternative,
  • the wallet code touches a lotsbestemming of parts te TRB and adds complexity and bloat to the entire thing, I want TRB generating my addresses spil much spil I want my e-mail client generating my PGP keys,
  • it does a very bad job at crafting transactions with a lotsbestemming of shitty heuristics, assumptions and places various artificial and unwarranted constraints are enforced on the technicus,
  • outward wallets, talking to a petite and clearly delimited interface of TRB, could be made spil very ordinary overlays managing a set of keys, with spil much control given to the technicus spil his particular use case mandates,

The required interface for an outer wallet, at TRB-level, is fairly limited:

  • Query the UTXO for unspent outputs given a set of addresses.
  • Waterput an arbitrary transaction te the mempool, optionally nuking any conflicting ones [1]

While the latter doesn’t present much implementation challenges, the former is a entire different story, depending on the particular way it is implemented. Ter my opinion, the keurig way to implement it would be to index every single UTXOs with its address (or even all TXOs, soyons fous) te order to be able to efficiently terugwedstrijd the set of UTXOs (or TXOs if history’s required) for a given set of addresses. A lighter option would be to permit the technicus to specify a list of addresses he’s interested ter, and index only those.

The 2nd option is what already exists, but it coerces the conservation of the “reindexing” logic, a list of monitored addresses along with a lotsbestemming of wallet-related code. The very first option permits TRB to eliminate this functionality fully, serve an arbitrary number of wallets, and get rid of any “sensitive” information, such spil the list of addresses an technicus is interested te.

This TXOs-indexed-by-address is essentially the index Electrum servers are maintaining, different implementations manage to pack this gegevens ter 20 to 50gb (the latter being the index packed pretty inefficiently and keeping not only UTXOs but also partial history for all addresses, up to a certain arbitrary count). The indexing of only a specific set of address would obviously come orders of magnitude cheaper but leave the knot coupled to the wallet by having to know which addresses are part of the wallet, and which aren’t, or more precisely those which are

part of the wallet.

Keeping the history indexed by address doesn’t indeed make much sense to mij, it seems to mij it’s the wallet’s job to keep the various receipts until they’re binned or archived (which doesn’t prevent a blockchain scan to be performed, should it be necessary to retrieve it again).

Yet another option might simply be to naively scan the UTXO set for any “gimme the unspent outs for thesis addresses” request the client gets. Spil of today the UTXO set is

1.6gb. Obviously this means the transaction history for addresses can’t be directly queried from the knot without a utter blockchain rescan.

Whatever the treatment, the knot simply has to output UTXOs, and receive signed transactions spil input for broadcast.

To be continued, comments more than welcome !

[1] Unlike PRB, which somehow thinks whatever’s already ter your mempool has precedence overheen what you’re explicitly telling it to guzzle.

Mauritius is a pretty boring country, and given the apparent lack of zindelijk casinos I elected to give Openleggen a chance and attempt out their “margin trading” feature [1] .

Long story brief I ended up opening a brief for 20 BTC around 749 EUR vanaf. My lack of faith, disturbing spil it wasgoed, ended up promptly rewarded with a well-deserved hitting. After some extra servings of the same flavour of fail I figured that ending the blood-bath wasgoed well overdue.

Tooled with this rock hard intention, I merrily headed to the Openbreken web interface, opened up the “positions” instrumentenbord, and (naively, I confess) clicked the “Close position” button, or whatever it wasgoed labeled.

This opened the “New order” screen, with fields pre-filled to perform a margin trade te the opposite direction for the same amount, the logic being that it’d cancel out the existing position, effectively liquidating it.

Having proceeded to innocently click on the inviting “Submit” button I ended up blocked with a “Margin allowance exceeded message”. Pause. What the fuck did it even mean to not have enough margin to close a position? A 2nd attempt yielded the very same result.

My subsequent message to their support plainly stated the kwestie:

I’ve bot incapable to close a 20 BTC brief I opened around

I have more than enough funds on my account to take this loss without problems, yet your interface keeps telling mij that closing my position would « Exceed my margin » !

This position is fairly clearly te the crimson which is my responsibility, letting mij close it and take my loss is your responsibility. I obviously can’t accept the loss part that’s due to your system not working correctly.

I should obviously not be limited by « margin » considerations when the trade I’m making is reducing my exposure and decreasing the size of my televisiekanaal position.

The position I want closed wasgoed opened with the [redacted] order, my account name is [redacted].

Please let mij know ASAP.

A day straks, after some excuses about “busy”, “working hard to clear the queue”, I got an actual reaction from Mike, let’s call him Luc.

I am consulting with our trading specialists at the ogenblik to confirm exactly what the cause of this may be. I do note that you presently have Four open orders (albeit untouched ones). Can you cancel thesis orders and then attempt your position closing order again and let mij know how it goes?

Losbreken Client Engagement

Luc wasgoed indeed onberispelijk, I did have four untriggered Zekering [Two] bids, they had however never bot activated (the confusion ter the vocabulary inbetween “untouched”, spil ter “in the book but not yet touched” and “untriggered” spil ter “in the pending stops, but not triggered, and spil such not even te the order book” continued via).

So far there were two problems: the very first being that liquidating the position evidently required some sort of “margin allowance” te other words “borrowing money”, and the 2nd being that Losbreken’s support suggestion wasgoed to attempt something that should have had no effect on one’s capability to borrow money (cancelling orders that hadn’t bot activated).

I therefore, logically, answered that:

If your engine has a measure of « permitted margin » that is impacted by thesis orders and prevented mij from closing the position, then that’s obviously a bug on your end that requires fixing on your end, and compensation for the toegevoegd loss I’m incurring due to my impossibility to close the position.

After consulting with the “trading specialists”, Luc ended up telling mij that, lo and behold, thesis untriggered orders somehow did indeed count against a borrowing limit, nevermind that closing a position shouldn’t require extra borrowing, and nevermind that I should have theoretically received the bulk of the funds required to buy back the shorted Bitcoins through the very sale of… the shorted Bitcoins!

Wij have confirmed that your open orders, even while untouched do count towards your total margin borrow limit due to this there wasgoed insufficient remaining EUR margin borrow limit for you to place one single order to close your position.

Your original position wasgoed a XBT/EUR sell on margin, meaning that the security borrowed for this wasgoed XBT so wasgoed counted against your XBT margin borrow limit.

Your original closing orders and the further closing position where you encountered the error are all XBT/EUR buy orders on margin which are counted against your EUR margin borrow limit. There is no way for us to tell ter advance which pending orders you may have which will close or even switch sides an open position so all are counted towards your margin borrow limit.

[Extra servings of apologies for inconveniences and SFYLs]

After pointing out to them how their own documentation plainly contradicted the actual behaviour of their system, they came back with the following gem:

The only problem wij acknowledge here is that wij could be more explicit te our documentation about the fact that orders placed which will create margin positions are counted towards your Margin Borrow limit spil soon spil they are created, regardless of whether they have bot fully or partially packed yet. Wij will be updating our support centre documentation on Margin Borrow boundaries to make sure this is clearer.

So here wij are, let’s kick back and let it submerge te for a minute.

Ready? The translation reads: “yes, our software doesn’t behave like its documentation said it should, wij will update this documentation, but this isn’t a bug [Three] , because reasons”. Ter other words: “Fuck you and SFYL lol”.

The gist of the insanity can be enumerated spil goes after:

  • Liquidating existing positions is somehow subjected to borrowing thresholds, te addition to those already checked against when opening the position,
  • Thesis “borrowing limits” are computed by also taking into account orders that toevluchthaven’t activated at all (not untouched, not packed partially, not packed totally, but NOT ACTIVATED AT ALL),
  • When closing a position there’s all of a sudden no trace of the proceeds of the initial trade which created the position, which ter any system that’s not entirely insane, would obviously be used te priority when liquidating,
  • Given thesis insane rules you can waterput yourself te a position where it is not possible to liquidate a position other by dicking around by hand ter puny chunks and without the capability to place STOPs [Four] !

Te conclusion I’ll point out once again the fucking elephant te the slagroom: the proceeds of a trade with borrowed assets are somehow not yours to use to make the opposite trade te order to terugwedstrijd said borrowed assets. Because Losbreken is a special, and because they’ll soon update their documentation to redefine the meaning of the word “borrow”, and because “sorry for the inconvenience, don’t leave behind to protect your account with a 2nd authentication factor”.

[1] Margin trading, for the noobs among us, basically consists te trading funds one doesn’t have by borrowing them, on the premise that one should at least provide enough specie upfront to voorkant for the variations te value of the resulting position.

For example, should one want to bet on a Bitcoin’s price increase, one could provide 1`000 EUR upfront, borrow 10`000 EUR and buy the omschrijving of thesis 10`000 EUR te Bitcoin. Should the price of Bitcoin appreciate, one could, at any time, liquidate this position by selling the Bitcoin, terugwedstrijd the 10`000 EUR to the lender, and pocket the difference spil profit. Should one’s prediction end up incorrect, the loss would be accounted against the contant deposit. This is also referred to spil “leveraged trading”. Usually, to minimize counterparty risk, the lender can force a position to be liquidated when the netwerk loss gets close the to the deposited contant, also referred to spil “collateral”.

[Two] Again, for the noobs among us, Zekering orders are orders that get automatically activated once the price reaches a certain point, they’re fairly useful to automatically take a profit on profitable positions, or cut losses on unprofitable ones.

[Three] Once ter a while, paedopedia makes itself useful and aptly notes that: “A software bug is an error, flaw, failure or fault ter a rekentuig program or system that causes it to produce an incorrect or unexpected result, or to behave ter unintended ways”

[Four] For example, their “Margin borrow limits” state a Tier-3 trader could borrow 150 BTC and 25kEUR for the purpose of margin trading. If such a trader were to brief BTC up to the borrowing limit, and given the current BTC market price (around

900 EUR vanaf), it would not be possible to liquidate this position te one go without hitting the EUR borrowing limit. Ter other words one would have to do it by hand te at least six passes. And since evidently untriggered STOPs also count against thesis thresholds, one would not have the option to place stop-loss or take-profit orders for 100% of the position size. If that doesn’t demonstrate a entirely cracked vormgeving, I don’t know what else could…

Lesuur “commissions d’intervention”, ou “frais den forcage” sont lesuur sommes prelevees par votre banque, plusteken complement des agios (interets debiteurs), lorsqu’une operation se presente au debit d’un compte, alors que le montant, ou lade duree, den son decouvert autorise est depasse. Elles representent d’apres Rue89, entre Two et Trio milliards d’euros den par an, soit 0.1% du PIB Francais, ou 25% den schuiflade valeur totale du reseau Bitcoin.

Onderricht banques lesuur justifient par le fait que “les commissions d’intervention verslaggever aux sommes percues par lade banque plusteken raison d’operations entrainant une irregularite den fonctionnement du compte et necessitant un traitement particulier”. Bien evidemment, on voit sjabloon le “traitement particulier” pour un paiement carte, accepte ou deny den maniere automatique.

Ces commissions ont, a juste titre, ete contestees a den nombreuses reprises sur le fondement du depassement du taux d’usure. Plusteken effet, le taux facture pour un credit par une banque ne terpentine etre superieur au taux legal d’usure (15.04% plus 2016). Ce dernier est tres largement depasse quand on integre le montant des commissions d’intervention aux agios factures pour une operation debitrice donnee.

Ces contestations, portees plus justice, ont logiquement abouti a lade condamnation den plusieurs banques au remboursement den sommes atteignant parfois plusieurs milliers d’euros.

Le tour den passe-passe est intervenu dans le decret n° 2013-931 du 17 octobre 2013 qui instaure des plafonds quotidiens et mensuels a ces commissions. Plusteken clair, une pratique scandaleuse, pour laquelle lesuur banques ont ete condamnees a plusieurs reprises, se retrouve “encadree” par le legislateur pour lade “protection des plus fragiles”.

On attend avec impatience que le gouvernement limite a deux par semaine le nombre den viols dont une personne peut-etre victime. Pour schuiflade protection des droits des femmes, bien entendu.

Spil the final settlement transaction has bot broadcast, the receivership is now considered officially closed. All BitBet customers with outstanding bets have either bot fully refunded, or paid out of their winnings.

While the receivership itself wasgoed of moderate complexity, my job wasgoed made considerably lighter by the help and professionalism of Mircea Popescu and Matic Kocevar. I thank both of them very much for entrusting mij with this task. I hope they, and the other stakeholders, are sated with my service.

The Bitcoin Foundation’s tax, due on the receiver’s toverfee, has bot paid.

Spil promised after the successful sale of the BitBet assets and after the onberispelijk reception of the surplus of the contant, the final settlement transaction is being waterput on display spil an chance for the public to voice any complaints or concerns.

If no valid points are raised that would require modifications by Wednesday the 20 th of April the transaction will be signed, broadcast, and the BitBet receivership will be considered closed.

Please not that amounts going to identical addresses are aggregated, the amounts owed to Mircea Popescu have already bot deducted.

Spil usual, questions and comments are welcome.

April 14 th update: Spil discussed te #trilema [1, Two], it shows up BitBet owes Mircea Popescu the sum of 0.8 BTC for the seeding of bets that has not bot billed to the company yet, spil wasgoed normally the case. This includes all bets [Five] that were seeded after the last report certified by both representatives. This amount has bot accounted for te the liabilities.

Erratum: BitBet’s receivership very first report mentioned a hot wallet amount that wasgoed off by 0.00040948 BTC, the report has bot corrected.

State of the receivership process

Spil planned, the assets auction ended last week. The 86 BTC payment has bot received

and confirmed. The actual assets have bot transferred, eight bets have bot resolved [1] , the surplus will be refunded.

This nipt surplus is to be distributed to shareholders. The Five million MPEx-traded shares are being assured a ondergrens value of 0.00001 BTC vanaf amounting to a 50 BTC total. This leaves 29.20357692 BTC to be split identically inbetween Matic Kocevar and Mircea Popescu, snaak holders of the surplus of the Ten million BitBet shares.

See the detailed liabilities table for more information and don’t hesitate to point out any errors or inconsistencies ter the comments.

[1] The resolved bets:

[Two] The ‘bettor winnings’ voorwerp does not include the house bets winnings spil a liability anymore (0.67314231 BTC). The sum of the house bet winnings and the bettor winnings differs from the previously reported sum by 115 satoshi spil a result of rounding being applied ter one case to the lump sum, and ter the other case to each one of the amounts that will be paid out.

[Three] The ‘bettor refunds for unresolved bets’ does not include the house bet refunds spil a liability anymore (Two.15000000 BTC)

[Four] This particular amount wasgoed picked because the payout transaction will be fairly large, and because an even number of satoshis wasgoed needed for the amount to split among the BitBet representatives.

[Five] The bets that were seeded, but not billed to the company:

Update April 8 th : The payment has correctly confirmed, BitBet’s fresh proprietor can take possession of the actual goods and is willingly asked to punt a receipt to the receiver.

Spil announced, the BitBet auction has taken place, and after a few deadline extensions and an almost-winner, znort987 (9F1C2534ACEE115E18EF02A5FD5AA2A5E26602B0) ended up being the last man standing.

Ter order to proceed, he is gladly asked to transfer the sum of 86 BTC to 1DavouTAsveznCFHsz688xvbrRAq4u2qm8. Once the payment is confirmed, the assets will be transferred.

I will then embark working on creating the final settlement transaction paying all outstanding liabilities. Once the transaction is ready it will be waterput on public display for a few days. If no complaints are made or discrepancies pointed out, it’ll be signed and broadcast.

Spil Pete Dushenski aptly points out, “the end of Wednesday the 6 th of April” doesn’t precisely define a deadline for the BitBet assets auction.

Therefore it emerges to mij that, ter the rente of maximizing the auction revenue, the most sensible course of act is to interpret this spil “the end of Wednesday the 6 th of April te whatever timezone this event happens last”.

The precise auction deadline is therefore 2016-04-06 23:59:59 GMT-12, which conveniently reduces to “Thursday the 7 th of April at noon GMT”.

Spil already said the auction completes one hour after the last best bid improving the previous one by overheen one Bitcoin has bot posted, or at the specified deadline, whichever comes last.

The conclusion of all of this naturally being:

<,mircea_popescu>, you’re like totally a noob receiver and everything.

Spil of tuesday the 29 th of March I do not work for Paymium anymore, and remain only a shareholder with no control overheen the operations.

This statement is made to give interested parties the chance to make their own determinations regarding their continued or planned involvement with Paymium.

I will remain involved te Bitcoin, spil I have bot since 2010, when I built the product Paymium operates today.

Spil an other consequence, any further X.EUR deliveries will be made by SEPA wire.

State of the receivership process

Spil BitBet’s receiver I am pleased to present this 2nd progress report to all the interested parties. The next progress report will be published after the auction is ended, it will list the final payout amounts and beneficiaries for public review.

Auctioneering of the assets

Spil of today, the highest bid for the BitBet assets (other than the contant) is 9 BTC, by Stanislav Datskovskiy, aka asciilifeform.

The Twitter account will be included ter the package, there is an API access key te the code, control overheen the domain will also permit the buyer to reset the account password.

BitBet’s hosting is presently provided graciously by Matic Kocevar. The buyer is expected to provide his own hosting setup. I will setup and provide the necessary infrastructure ter the interim to keep BitBet online, should Matic Kocevar request so.

Ter the rente of maximizing BitBet’s assets, the bidding deadline will be extended if necessary. The precise deadline will be the end of Wednesday the 6 th of April (spil previously stated), or one hour after the last bid that improved the previous best bid by more than one utter Bitcoin, whichever comes latest.

State of the assets and liabilities

My inventory of the assets has shown a discrepancy inbetween their theoretical amount, and the amount I presently have under my control, the difference is 199.45006789 BTC. Mircea Popescu has stated he would have the numbers checked, and provide a complimentary sum, if applicable.

The liabilities I have certified are:

  • Receiver’s toverfee: 13.37 BTC
  • Bettor winnings: 331.69291390 BTC (335.04334737 BTC before 1% toverfee)
  • Bettor refunds for unresolved bets: 616.53072474 BTC
  • Bettor refunds for zeroconf bets on un-handled proposals: 1.99978000 BTC

I did not certify Mircea Popescu’s voorkoop to 17.94766149 BTC. The BitBet contract, spil signed by Mircea Popescu and Matic Kocevar, explicitly states:

Trio.Two(d) All decisions with regards to any opzicht of BitBet, measures taken ter regards to any facet of BitBet operation, any deeds, activities or agreements involving BitBet will require unanimous agreement of all the representatives of BitBet. Any such decision, measure, activity, activity or agreement which fails to obtain unanimous agreement of all BitBet representatives is void and unenforceable.

Spil of today, Matic Kocevar still rejects to endorse the decision to proceed with a 2nd payment, spil vanaf the contract the decision can therefore only be considered void, and its consequences unenforceable. Spil a consequence it goes after that BitBet may not deduct the amount that wasgoed paid a 2nd time from its liabilities to certain winning addresses.

Related movie: How To Mine Dogecoin Or Litecoin With Your Nvidia GPU Te Under A Minute! [CUDAMiner Mining]


Leave a Reply