Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - arhag

Pages: 1 ... 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 ... 81
226
General Discussion / Re: Not everyone is selling at a loss
« on: April 14, 2015, 12:43:03 am »
Today I have zero use for BitShares. Let me lend bitUSD to traders on bitshares at 20% annually and I will put $20,000 into bitUSD tomorrow. Let me borrow bitUSD against my bitUSD collateral to buy bitBTC and I will stop using Bitfinex tomorrow.

I don't understand. You want to borrow BitUSD on a BitUSD collateral? How does that make sense?

Are you asking to borrow money from the blockchain that is not more than 100% collateralized? That's a big no no. The blockchain has no ability to force you to pay. The blockchain cannot sue you in court if you refuse to pay your debt. The only thing a blockchain can do is seize the digital assets on the blockchain that you lock up as collateral to back your debt.

Similarly, you can lend BitUSD to other people who do not collateralize their loans (I am not talking about margin trading which is possible with simple tweaks to the BitAsset rules) but when your counterparty is an anonymous person, there isn't much you can do if they refuse to pay the debt. Who are you going to sue? The most you would be able to rely on is hurting the reputation of their pseudonymous identity. No big deal, they just make another one. Until we have identity verification on the blockchain, uncollateralized lending is not interesting.

227
1)  Direct exchange between assets.  From what I understand, this is tricky to do but it is absolutely necessary to compete with centralized exchanges.  A BTC/USD asset pair is essential and could be the focus to begin with for a real, working product.  Bitfinex alone had over 1.2 million bitcoin exchange volume in February.

I agree that direct exchange between assets (really it is an exchange of IOUs that one can use to redeem the underlying asset) is a big deal. I am a fan of using the delegate system as a multisig (and/or threshold sig) to hold the reserves of cryptocoins (like BTC) backing official IOUs of those cryptocoins on the BitShares blockchain. However, if you want "direct" exchange against fiat (like USD) then we must wait until fiat gateways come online. Who knows when that will happen.

2)  Advanced order types.  These order types are very useful to traders.  Coinbase exchange does not have these order types, only bare bones buy and sell, yet monthly volume in February was over 320,000 BTC - and this is only their 4th month trading.

I am a fan of adding "limit order" types to the DEX. I have discussed this elsewhere but the idea is that it would actually be an Immediate or Cancel limit order (not a regular limit order which is why I put it in quotes) to prevent front running. Then the client can automatically place any remaining unfilled amounts as a regular YGWYAF order in the next block. This would effectively simulate a limit order while removing the risk of front running.

As for the other fancy order types (stop, trailing stop), I believe we should leave that to smart contracts. Once a DApp / Smart contract / Turing complete script mechanism is on the blockchain, traders can utilize those to do all kinds of fancy order that haven't even been thought of yet. The smart contract would be responsible for actually placing and canceling the limit orders on behalf of the trader according to the programmable script. The obvious scripts (like stop and trailing stop) would initially be made available for traders, but in theory people could design their own.

228
We will be starting to post only the finalized hangouts.   The team and I have talked about it and think with some of our plans movies forward that it would be best this way.

-5% to that. How is taking away choice the better way? Besides it isn't enforceable since anyone who attends live can record and post the raw recording at virtually no cost.

229
General Discussion / Re: Idea: Models for Decentralised Governance
« on: April 12, 2015, 02:56:42 am »
Yes, yes, we can have all kinds of fancy governance systems. But as far as I am concerned they can all be implemented with a minimum of a few mechanisms:
  • A prioritized pay list of specific amounts to specific addresses where the list can be mutated by an authorized group.
  • A non-binding BTS-stake-based proposal voting system.
  • A binding mechanism to modify the members of the authorized group through BTS-stake-based voting on the blockchain.

We already have the last mechanism: it is the delegate slate voting system. This means the "authorized group" above is what we currently call "active delegates".

The other two mechanisms would need to be developed for the BitShares client. The link above links to a proposal of how the pay list could be implemented. As for the non-binding proposal system, we can take advantage of the negative delegate_id hack that already exists (meaning a hard fork of the blockchain wouldn't even be necessary to implement a non-binding proposal sytem), but the code would still need to be developed into the client.

Now once these mechanisms are built, shareholders can vote for whatever changes they want to the governance state. The "authorized group" could follow the changes to the governance state and update the "pay list" so that the necessary accounts are funded. The job of the "authorized group" (beyond other tasks they may have such as block signing and price feeds) is very simple: they must follow the "official" (but not coded into the blockchain consensus model) and straightforward governance policy by appropriately responding to the results of non-binding proposals. If they fail to do this, they will be voted out.

Sure you could modify the blockchain consensus model to automate some of these tasks so that the "authorized group" (or "active delegates") wouldn't have to be middlemen doing it themselves (or setting up client-side scripts to do it on their behalf), but doing it this way requires less hard-forking changes to the blockchain (especially as the governance model/policy changes over time) and it is a good first step.

So now the hard part: convincing bytemaster that we need to implement those first two mechanisms. Or at the least convincing him of the need for the first mechanism (since in theory any third-party dev could create a version of the client with the non-binding proposal since it is a not a hard-forking change).

230
Why do you want the extra level of indirection in determining block signers?

I would prefer the voting slate associated with each BTS balance to vote for 101 block signers as it currently does (no extra level of indirection required), but to take away the price feed responsibility from that set of 101 block-signers. Instead the 101 block signers (the "delegates") would in turn delegate the task of updating price feeds to another set of accounts (which they can belong in as well if they choose).

Also, these delegates would only be block signers (and the authority to submit and vote on binding proposals, dynamic parameter changes, and updating the price feed authority set and the worker pay list). All other tasks that the shareholders want to see happen for the benefit of the BitShares ecosystem (which would require dilution to pay for) would be implemented through a worker system (my latest proposal on how this worker pay system could be implemented can be found here).

Edit: By the way, I propose the following terminology. The term "active delegate" can be used to describe a member in the set of accounts that are selected via an official (meaning recognized by the blockchain consensus system) BTS stake-based voting system (and therefore the blockchain knows that this set of entities has some authority). The term "candidate delegate" can be used to describe a member of the set of accounts that have registered as candidates who could potentially be voted in as an "active delegate". And "delegate" can either be used to refer to an "active delegate" or "candidate delegate" depending on context (but it should be assumed that it refers to "active delegate" if the context isn't clear). Any other sets or groups of accounts should not be referred to as a "delegate". Other names should be used to describe them, such as block signers, price-feed submitters, workers, board of directors, etc.

231
You're right I could sum them, those are all expired orders actually, I forgot about the margin called orders. I was under the impression the 10% above price was a bug, isn't it? Expired orders should be at the feed price though right?

The bug was that expired cover orders had a limit price at 10% above the price feed when it was supposed to be at the price feed. However, margin call cover orders should have a price limit 10% above the price feed.


232


Shouldn't your buy table also have entries at 10% above the feed price for the margin-called orders?

Also I think it would look much better if you coalesced orders at the same price together. That means there shouldn't be more than at most two yellow items (one for expired cover orders and one for margin-called cover orders). If a user wants to a see a more detailed break down than that, they always could click the "Margin Orders" button (which I think is misleading and should instead be labelled "Cover Orders").

233
General Discussion / Re: Buying bitUSD - PM me offers.
« on: April 11, 2015, 08:57:35 pm »
Uhh... why not just use the BitShares DEX? That's its purpose.

Edit: I just realized the market engine has a matching bug (again >:(). However, from what I understood, regular BitUSD sell orders (not shorts) would still match with your buy order.
I am not 270-290 BTS/bitUSD desperate... That are the regular sell orders as of this writing...

You don't buy those sell orders. You put a buy order at 225 BTS/BitUSD and wait. If no real BitUSD sell order matches at that price, then you probably won't be getting anyone PMing you offers either.

Also, if I understand the margin-call mechanics appropriately (and they are working according to theory other than the current short matching bug), then there is a (currently invisible) buy order at 10% above the feed price (so around 245.9 BTS/BitUSD). And that should be a buy order for at least 80,000 BitUSD. So if I am correct about this, then unless you are willing to increase your price to 246 BTS/BitUSD, you probably won't get a match anytime soon.

234
General Discussion / Re: Buying bitUSD - PM me offers.
« on: April 11, 2015, 08:33:38 pm »
Uhh... why not just use the BitShares DEX? That's its purpose.

Edit: I just realized the market engine has a matching bug (again >:(). However, from what I understood, regular BitUSD sell orders (not shorts) would still match with your buy order.

235
General Discussion / Re: Shuffle Bounty $200 BitUSD
« on: April 10, 2015, 05:10:25 pm »
Only transactions that update BTS votes are allowed in failover blocks (...)

Doesn't every transaction update votes? Or you want to allow only transactions to yourself for this case?

Yes. In failover mode, only transactions that update the delegate slate of a BTS balance (but do not change the withdraw condition) would be allowed. That means no transfers of funds, no market operations, no future smart contract transactions, etc. Failover mode basically means the DAC is temporarily not working with the exception of updating delegate votes so that it can resume normal operation. Ideally, the DAC will never have to enter failover mode because there will always be enough active delegates in the old delegate set to generate a threshold signature that signs the new block that updates the threshold public key to a new one created by the current active delegates.

236
I see absolutely no reason why we should pay an exchange for integrating BTS and/or BitAssets. After all, they're supposed to earn money from trade fees. So they should fund the necessary development themselves. Unless they're repaying the DAC's investment, which I find unlikely.

giving them coin in exchange for enlisting , that's the unwritten common rule for exchanges .

I don't agree with voting in a delegate specifically for an exchange. They are a for-profit business not a public good for the benefit of the BitShares ecosystem. If they are a worthwhile exchange, they shouldn't need an ongoing subsidy.

However, I can understand providing some initial subsidy in the form of helping them out with integrating the BitShares client software with their exchange or even providing an initial subsidy to cover their integration costs to offset their risk of investing time and resources for a coin that may not provide enough volume to provide them profit (of course that assumes that we are confident that the BitShares markets on that exchange will have sufficient volume and liquidity, otherwise it is a waste of our money). The former can be done by having some of our devs help out with the integration process and offering technical support (although the bulk of the work should be done by the exchange's devs or they should pay our devs consulting fees), and in this case the devs are already paid through their own delegates. In the latter case, I think a delegate that is specifically for the purpose of providing small one-time lump sums to different projects in order to bootstrap them (like fund.bitsharesbreakout) is more appropriate. However, I don't like the idea of voting in a delegate specifically for the exchange.

Finally, I really wish we would put more resources into getting a decentralized BTC UIA on the BitShares blockchain so that we can start using our DEX rather than relying on these centralized exchanges (who in theory should be our competitors).

237
So what happens if after the moonstone wallet is released, the community doesnt vote in the proposed moonstone delegates?

Then your donation to fund a public good and hopefully make some profit as well just becomes a donation to fund a public good.

238
Stakeholder Proposals / Adjustments to delegate pay
« on: April 10, 2015, 01:53:23 am »
I really think we need improvements to the way we pay delegates and workers. Here is my latest suggestion to get a little closer to the ideal system by making minimal changes.

First, instead of each delegate candidate only having a single pay rate, they would have the following:
  • Percentage budget for worker distribution
  • Budget limit for self-pay
  • Salary

The percentage budget for worker distribution (PBWD) would be a percentage between 0 and 100% (just like the current delegate pay rate) and budget limit for self-pay (BLSP) would be a BTS amount. The actual budget for worker distribution (BWD) for an active delegate, which is in units of BTS, would be calculated by multiplying the delegate's PBWD and the per-delegate BTS allocated for that round (this is the per-block inflation limit as of that round plus any per-delegate fees allocated for distribution in that round). Another important quantity, budget for self-pay (BSP), is defined for each delegate as min(BWD, BLSP). The registration fee for a delegate is based on the BLSP value, not the PBWD value. After registering the delegate, the delegate can not increase the values for PBWD or BLSP, but they can change the Salary however they wish at any time. The PBWD and BLSP can be decreased at any time, however the change to these values do not go into effect until the end of the round.

The salary of a delegate would specify a particular BitAsset type (or alternatively BTS) and provide a quantity in that BitAsset. The idea behind the salary is that the blockchain will multiply the quantity with the latest price feed for the corresponding BitAsset to get an estimated salary per round in BTS units. If that number is larger than the BSP quantity, then the salary will be limited to the BSP quantity. The actual salary (SAL) in BTS units to transfer to the delegate is calculated at the beginning of the round using the latest price feeds at the beginning of the round. If there are no recent price feeds at the beginning of the round for the specified BitAsset, that delegate will simply not be paid in that round.

At the end of the round, the total salary (TOTAL_DELEGATE_SALARY) distributed to delegates that produced blocks is calculated (TOTAL_DELEGATE_SALARY = sum of the SAL for each delegate that produced a block in that round) and the sum of each active delegates' BWD (TOTAL_AVAILABLE_BUDGET) is also calculated. The difference TOTAL_AVAILABLE_BUDGET - TOTAL_DELEGATE_SALARY gives the remaining worker budget (WB). Then, the WB is distributed according to the "worker pay list" as of the end of that round.

The "worker pay list" is a list of the PAY item which is a tuple (BITASSET_QUANTITY, BITASSET_TYPE, ACCOUNT_ID) or the LIMIT item which only has one value BTS_LIMIT_QUANTITY. Similar to delegate pay, the BITASSET_QUANTITY and BITASSET_TYPE together define the pay amount and are converted into the appropriate amount of BTS using the latest price feeds at the time (this time being at the end of the round). So you can think of this process as mapping the list [A] to list [c] with a function f : a -> c which maps PAY (BITASSET_QUANTITY, BITASSET_TYPE, ACCOUNT_ID) to PAY' (BTS_QUANTITY, ACCOUNT_ID) and maps LIMIT (BTS_LIMIT_QUANTITY) to itself. Again, if there is no recent price feed for the specified BITASSET_TYPE of an item, then the BTS_QUANTITY of the mapped tuple of that item is simply set to zero. At the end of the round, the blockchain goes in order through this second list (the [c] list) and if the item is the PAY' type, it pays BTS_QUANTITY to the specified ACCOUNT_ID as long as there is enough value in the WB, which is updated (WB := WB - BTS_QUANTITY) as it goes through the list, and if the item is the LIMIT type it burns (WB - BTS_LIMIT_QUANTITY) amount of BTS (assuming that it is a positive number) and sets WB := min(WB, BTS_LIMIT_QUANTITY) before proceeding with the rest of the list. If it reaches an item in the list where the BTS_QUANTITY exceeds the updated WB at that point, it will simply send WB amount of BTS to the ACCOUNT_ID and stop processing the rest of the list.

The "worker pay list" allows the blockchain to prioritize who to pay when money is tight. A typical set up would be to have multiple rounds of worker pay in the list. For example, if there were 3 workers (A, B, C), one possible "worker pay list" might be the following:
  • LIMIT (3500)
  • PAY (3, BitUSD, A)
  • PAY (1, BitUSD, B)
  • PAY (6, BitCNY, C)
  • PAY (1, BitUSD, A)
  • PAY (1, BitUSD, B)
  • PAY (6, BitCNY, C)
  • PAY (1, BitUSD, B)
  • PAY (6, BitCNY, C)
  • PAY (1, BitUSD, B)
So with the above list, if there is enough money to pay the entire list, both A and B would receive 4 USD worth of BTS per round (approximately $125,000 per year) and C would receive 18 CNY worth of BTS per round (approximately $90,000 per year). But let's pretend that money got tight (the price of BTS went down for example) and the DAC would only afford to pay up and including the 6th item of the list fully, the 7th item only partially, and the rest couldn't be paid at all. Let's say approximately $7.25 worth of BTS was available in the worker budget for each round (and let's assume that amount worked out to less than 3500 BTS). In that case, A would get the full 4 USD worth of BTS per round, B would only get half their normal pay or 2 USD worth of BTS per round, and C would perhaps get approximately 7.5 CNY worth of BTS per round. Also the LIMIT could further limit how much each worker gets paid. If the price of BTS were to drop to $0.003/BTS and the WB was 4800 BTS at the very beginning of the list, then if the LIMIT item wasn't there there would be enough BTS in the budget to fully pay the three works (only 4000 BTS would be needed in WB). However, with the LIMIT item at the top of the list, the 10th item would only receive partial pay.

Finally, there needs to be a way to update the "worker pay list" (which is initially set to the empty list). Any active delegate can submit a proposal for a change to the "worker pay list" and they can cancel their submission at any time. If they submit a new proposal when they already have a pending submission, the old proposal will be cancelled and replaced by the new proposal. Each active delegate is also allowed to submit a vote for any delegate's proposal (by submitting their delegate ID) but the vote only counts if it is for a currently active delegate who currently has submitted a proposal. Again, they can cancel this vote at any time and submitting a new vote automatically cancels any previous vote. Also, if the delegate they are voting for cancels their proposal (or it is automatically cancelled by submitting a new proposal), all of the delegate votes voting for that proposal also automatically cancel. If enough active delegates (let's say >=76) vote for the same delegate proposal, that proposal will become ratified. When this happens, the proposed changes from the ratified proposal update the "worker pay list", then the proposal submission is automatically cancelled and all of the active delegate vote submissions are also cancelled.

These proposals consist of a sequence of operations. There are four types of operations: ADD_ITEM, MODIFY_ITEM, REMOVE_ITEM, and REMOVE_ALL. The REMOVE_ALL operation removes all of the items in the current "worker pay list". The ADD_ITEM, MODIFY_ITEM, and REMOVE_ITEM operations require a non-negative integer which specifies the zero-based index of an existing item (and the integer equal to the number of items in the list is also acceptable for the ADD_ITEM operation). REMOVE_ITEM simply removes the item specified by the index from the list (shifting all items coming after it up to close the gap). ADD_ITEM adds an item immediately before the item specified by the index to the list (shifting it and all items coming after it down to make room) or it just adds the item to index 0 if the list was empty. MODIFY_ITEM does not add or remove items but rather simply modifies the values for the item specified by the index. ADD_ITEM and MODIFY_ITEM operations obviously need an additional argument to define the new values of the item which can either be just a BTS_LIMIT_QUANTITY for a LIMIT item or the tuple (BITASSET_QUANTITY, BITASSET_TYPE, ACCOUNT_ID) for a PAY item.

So with the above setup, it would take a super majority of the delegates to make changes to worker pay and even then they could not inflate BTS in each round by more than TOTAL_AVAILABLE_BUDGET which is simply the sum of each active delegate's BWD (which cannot exceed the BWD they were elected with). Also, there is still the hard-coded dilution limits that guarantee that TOTAL_AVAILABLE_BUDGET <= 101 * (hard-coded per-block inflation limit). The idea is that the delegates will listen to the shareholders through future non-binding proposals and make the appropriate changes that the shareholders want. Until the appropriate tools for non-binding proposals are available in the client, the delegates should just do what they think is best for BitShares.

The delegates can still get paid individually even if a super majority is never able to agree to any "worker pay list" so there is no new added risk of delegates not getting paid with this system. The delegates get the convenience of specifying their pay in USD (or other BitAssets), even though they are still actually paid in BTS, which means they do not need to manually burn excess BTS to get paid their fair salary (the blockchain will automatically do it for them). The delegates just need to make sure that the BSP they are elected with is high enough to give them their desired USD salary even as BTS price changes. And if BTS price drops so low that they cannot get their desired USD salary due to BSP limit, they are simply forced to deal with the lower pay as they are now (or maybe they can get a new delegate voted in with a higher BSP).

239
General Discussion / Re: Moonstone Fundraiser Help Thread
« on: April 09, 2015, 10:39:37 pm »
Another thing I would suggest is to reduce the MOONFUND to BTS donated rate as the fundraiser progresses. Right now it is 1.15 MOONFUND for every BTS donated. Perhaps when the fundraiser is 50% funded the rate could be dropped to 1.10 MOONFUND per BTS donated and then after 80% funding could be further dropped to 1.05 MOONFUND per BTS donated.

This serves two roles. First, it reduces the liabilities for the buyback meaning that satisfying all promises becomes possible in a shorter amount of time (meaning earlier cut off deadline). Second, it encourages people to donate early when there is greater risk since there is less information regarding the probability of the fundraiser reaching its goal (and if the fundraiser doesn't reach its goal and become MIT licensed, the community is slightly less likely to promote the Moonstone client, which means it is slightly less likely that the 5 delegates will get elected in the first place).

240
General Discussion / Re: Moonstone Fundraiser Help Thread
« on: April 09, 2015, 10:23:46 pm »
In my calculation, 5 delegates for 42 months. Baaed on current BTS price.
But here's variables. Bts price can go up during the fundraising, and some people will sell moonfund at discounted price.

Right, so assuming Moonstone will be restricted to only 5 delegates, and assuming the price of BTS does not rise higher than what it is right now in the next 30 days, the cut off must be at least 3 and a half years in the future to have a chance of paying back the 15%. However, if they decide to have the cutoff be 30 months with 5 delegates, the best they can do is 0.81 BTS (not 1.15) for every BTS invested.

That is why it is important to not start the buyback at a 1 MOONFUND = 1 BTS rate, because anyone who moves fast every time more BTS is added to the sell wall will profit at the expense of everyone else. If a continuous buyback is still desired, the appropriate thing to do in that case would be to buyback at a rate of 1 MOONFUND = 0.705 BTS (obviously the exact numbers will change depending on how the price of BTS change over the next 30 days).

Pages: 1 ... 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 ... 81