BitShares Forum

Main => General Discussion => Topic started by: starspirit on November 07, 2014, 02:43:39 am

Title: What can and can't be done by a DAC on a block-chain?
Post by: starspirit on November 07, 2014, 02:43:39 am
I wish to improve my understanding of what a block-chain allows a DAC to do but also what it's constraints are, in the context of a belief that they could potentially replace and grow new industries. I'm not a programmer so just after some non-technical answers.

I'm unclear on the following: 

1) As I understand it, anything internal to bitShares (or any other DAC) would have to share the same block chain, but I'm not really sure why. Is this ideological or a practical reason? Is it because human agents would be required to interact between multiple block-chains, and there are no algorithmic and trust-less ways to implement that? Or is it something else?

2) What is the dividing line between having many features/services on a single block-chain, and breaking an ecosystem into many block-chains where each serve separate functions with human actors operating between them? Could and should large enough "company"-like structures use multiple block-chains? (e.g. if bitShares were the size of a small country)

3) Is bitShares (or any other DAC) prevented from mobilising capital resources employed by traditional companies (e.g. fiat cash or cryptos, real property or assets) because such assets cannot be represented in the block-chain? Does this limit what a DAC can do (outside of software) compared to a traditional company? How could this be done, if at all?

4) (Apart from luckybit's idea of a cooperative...) Can DACs interact with the rest of the world to enter contractual agreements? If not, is this any constraint on how quickly they can grow and on their larger role in society?

Others may have bigger questions.

Thanks in advance of your responses.
Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: bytemaster on November 07, 2014, 03:45:11 am
A DAC cannot hold secrets.
Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: starspirit on November 07, 2014, 05:14:19 am
A DAC cannot hold secrets.
Thanks, you just gave me an idea to put this on a T-shirt!
I'm still unclear though. Are you saying that as soon as you have multiple block-chains you lose transparency at the border between them, so a single block-chain is better as far possible?
Or something else?
Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: bytemaster on November 07, 2014, 05:50:28 am
You can only do "atomic/conditional actions" involving information on a single chain. 
Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: monsterer on November 07, 2014, 03:58:17 pm
I wish to improve my understanding of what a block-chain allows a DAC to do but also what it's constraints are, in the context of a belief that they could potentially replace and grow new industries. I'm not a programmer so just after some non-technical answers.

If you're familiar with what an altcoin is, here is a basic description of a DAC which might make these questions more clear:

A DAC is an altcoin which contains more business logic than just processing transactions.

Any state which is required to run the DAC (such as: cards down on table in a poker game, entrants into a lottery, assets held by account etc) must be stored inside the DAC's blockchain, because there is nowhere else this information can go, since there is no central server.  Likewise it doesn't make a lot of sense to rely on information outside your blockchain because that creates a failure point.

The DAC must 'run' on many individual user's machines, in the same way the bitsharesX client does, which means you have to find some way to incentivise this behavior - otherwise people will be asking what benefit they have for burning *their* CPU cycles just to run *your* business logic.

At the moment, there is no support for cross-chain atomic transfers in bitshares - what this means for your DAC is that you cannot easily launch an tradable Asset on the bitsharesX exchange to represent the value of the DAC (for IPO funding, or for paying dividends to investors) because you cannot ensure that actions inside your own DAC are syncronised atomically with actions inside the bitsharesX DAC.

Hope that gives you a better idea of what it means to run a DAC.

Cheers, Paul.
Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: starspirit on November 08, 2014, 05:11:12 am
Thanks guys. I was not familiar with the meaning of "atomic actions", so found this explanation searching online:

"In programming an atomic action is one that effectively happens all at one (ed: once). An atomic action cannot stop in the middle it either happens completely or not at all."

What I feel you are both saying is that conditional actions (e.g. I make payment means I get the reservation and I receive the invoice) cannot be done automatically across chains.

What I'm confused about is how imposing such a restriction on any large organisation (say a company) leads to a world in which many many DACs can all interact. I'd be keen to understand how this is being envisioned...

Say for example we had many companies around the world, each restricted to operating on their own block-chain. How would they interact with each-other? How could they share a common currency, which would be an external DAC? How could they share other capital resources from the wider economy, such as real property or other assets, which could involve yet more DACs? How would they each enter into any kind of arrangements or agreements between them, when this relies on a joint consensus around property, rights and obligations?

I am presuming (perhaps wrongly) that there would need to be human bridges of some sort within and between these DACs, that allow human judgments to be exercised where trust is granted, and to protect against it when it is not. But would that then require companies to manage the use of multiple block-chains?

I want to see the world of the future, but its still a blur...

(As an example the problem of DACs sharing a common currency arose for me when I read the discussion that the Music DAC would need to use its own internal currency, NoteUSD rather than bitUSD.)
Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: monsterer on November 08, 2014, 05:33:32 pm
Say for example we had many companies around the world, each restricted to operating on their own block-chain. How would they interact with each-other? How could they share a common currency, which would be an external DAC?

One way would be to issue an asset on the bitsharesX DAC which represented the value of this new DAC. The asset would be purchased with whatever currency (BTSX, bitUSD etc) that the bitshareX DAC supports.

Once atomic cross-chain transactions are supported, the new DAC can syncronise its operations with the bitsharesX DAC, so for example if the new DAC wanted to pay dividends, it must do this via bitsharesX, so it needs to sync and perform this operation. Or if the new DAC was for music downloads, the unlock of the music (contained in the new DAC) must be syncronised with payment which happens on the bitsharesX DAC.

Presumably if there were multiple new DACs, they'd communicate with each other in the exact same way.

Quote
How could they share other capital resources from the wider economy, such as real property or other assets, which could involve yet more DACs? How would they each enter into any kind of arrangements or agreements between them, when this relies on a joint consensus around property, rights and obligations?

The only way a DAC can hold actual value from an external entity (like USD, for example) is to create an in-DAC mirror of the entity that acts as an exact proxy holding the exact same value, such that a trade or exchange of the proxy is of the same value as a trade of exchange of the actual item. What you do to actual transfer something like deeds to a property, though is a much more complicated question.

Quote
I am presuming (perhaps wrongly) that there would need to be human bridges of some sort within and between these DACs, that allow human judgments to be exercised where trust is granted, and to protect against it when it is not. But would that then require companies to manage the use of multiple block-chains?

As soon as you need human intervention, that's a clear sign the business idea is not suited for a DAC. DACs are autonomous by design and must be able to run by themselves without intervention.

Cheers, Paul.
Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: starspirit on November 09, 2014, 05:03:31 am
Thanks monsterer, that's helpful.

If a DAC cannot control any form of capital apart from what it defines internally, what would happen in the case where a billionaire wants to contribute say USD $100m to the business to take a stake in it (via dilution) and fast-track the further development of bitshares? Clearly this would be a form of company capital and be reflected in the valuation of bitshares, but this money would need to sit in a reserve account somewhere, or as hardware investments and the like, that would be outside the control of the DAC and require trust in some sort of human authority to manage it. Would we disallow this? Or is there a better way the DAC can deal with this opportunity?

You mentioned atomic cross-chain transactions. Your examples suggest that this would allow a DAC to make use of multiple block-chains and potentially a common currency, is that understanding correct? Is this a theoretical idea or something nearing a practical solution?

Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: monsterer on November 09, 2014, 11:43:08 am
Thanks monsterer, that's helpful.

If a DAC cannot control any form of capital apart from what it defines internally, what would happen in the case where a billionaire wants to contribute say USD $100m to the business to take a stake in it (via dilution) and fast-track the further development of bitshares?

This would be equivalent to increasing the supply of an asset after it was initially issued, and then selling those extra units to the new investor. I'm not sure this is currently possible, but the implementation ought to be trivial.

Quote
account somewhere, or as hardware investments and the like, that would be outside the control of the DAC and require trust in some sort of human authority to manage it. Would we disallow this? Or is there a better way the DAC can deal with this opportunity?

IPO and asset issuance are about the only things a DAC allows human intervention for, because although these change the economics, they don't change the business logic.

Quote
You mentioned atomic cross-chain transactions. Your examples suggest that this would allow a DAC to make use of multiple block-chains and potentially a common currency, is that understanding correct? Is this a theoretical idea or something nearing a practical solution?

Yes, that's correct. I believe this in on the internal wish list of the core devs, but I've no idea about when it's scheduled for implementation. IMO it's pretty important for all the reasons we've discussed here :)

Cheers, Paul.
Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: starspirit on November 09, 2014, 10:19:14 pm
Thanks monsterer, that's helpful.

If a DAC cannot control any form of capital apart from what it defines internally, what would happen in the case where a billionaire wants to contribute say USD $100m to the business to take a stake in it (via dilution) and fast-track the further development of bitshares?

This would be equivalent to increasing the supply of an asset after it was initially issued, and then selling those extra units to the new investor. I'm not sure this is currently possible, but the implementation ought to be trivial.

Quote
account somewhere, or as hardware investments and the like, that would be outside the control of the DAC and require trust in some sort of human authority to manage it. Would we disallow this? Or is there a better way the DAC can deal with this opportunity?

IPO and asset issuance are about the only things a DAC allows human intervention for, because although these change the economics, they don't change the business logic.

Recognising that the DAC does need at least some human intervention, in this case to deal with IPO and asset issuance, we've now opened up the obligation to deal with that in the most secure ways possible. I've seen there has been debate recently around the i3 allocations of unspent IPO and angel funds. In a future scenario as I described ($100m capital injection), presumably this would need to be separated amongst a trusted group of delegates, and there would need to be secure ways to deal with this capital which is invisible to the DAC. It seems that to a lesser extent the problem extends to delegates managing funds raised through dilution. Tools like reputation, proof-of-funds, multi-sig etc can all possibly be employed.

How about another scenario, where the DAC wants to take over a company to get access to its software IP. Suppose a legal company has everything we need to offer a certain feature or service, and it would be far quicker, cheaper and more effective to buy this IP than to build it ourselves. Now it may be that the owners of that company want payment in USD, not BTS. Also there would be no legal entity to which that IP could be sold. So presumably we could never do this (?). Does this limit the methods by which the DAC can expand? e.g..we seem limited to integrating developers of open-source software that have no contractual commitments.

Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: monsterer on November 10, 2014, 09:23:37 am
Recognising that the DAC does need at least some human intervention, in this case to deal with IPO and asset issuance, we've now opened up the obligation to deal with that in the most secure ways possible. I've seen there has been debate recently around the i3 allocations of unspent IPO and angel funds. In a future scenario as I described ($100m capital injection), presumably this would need to be separated amongst a trusted group of delegates, and there would need to be secure ways to deal with this capital which is invisible to the DAC. It

It doesn't have to be delegates, but you need trust in some form in order to handle the distribution and allocation of the capital injection, yes.

For me, the most challenging and as yet unanswered question is how to replace IPO. Because various financial institutions around the world regard assets as 'unregistered securities', actually doing an asset IPO as we've described is likely to land the people carrying it out in trouble, depending on their physical location.

Quote
How about another scenario, where the DAC wants to take over a company to get access to its software IP. Suppose a legal company has everything we need to offer a certain feature or service, and it would be far quicker, cheaper and more effective to buy this IP than to build it ourselves. Now it may be that the owners of that company want payment in USD, not BTS. Also there would be no legal entity to which that IP could be sold. So presumably we could never do this (?). Does this limit the methods by which the DAC can expand? e.g..we seem limited to integrating developers of open-source software that have no contractual commitments.

Yes, I don't know what the answer is in this case, it does seem like a problem area for the reasons you've mentioned.

For me, actually casting your business as a DAC instead of a traditional business can carry huge advantages for the users, because it makes the service much more resilient to being taken down. But for the owners of the DAC, the structure and operation is so much more complicated than running a traditional business that doing so might be the limiting factor to adoption in the first place.

Cheers, Paul.
Title: Re: What can and can't be done by a DAC on a block-chain?
Post by: starspirit on November 13, 2014, 01:55:56 am
Another large area where a DAC feature requires human intervention is whenever there is "external conditionality". This is whenever reference to some external source is required in order for the DAC to take certain actions.

An example is the price-feed for bitAssets, which requires a manual feed from delegates. We need to trust and incentivise the delegates to do the best job possible, but how they do this is not transparent to us. Another example would be with insurance, where premiums are conditional on underwriting, or claim payments are conditional on the claims submission and verification processes, which require trust (and proper incentive) in human actions. Voting would require human intervention around identity. I don't know, but I assume Music will have points of human intervention around the production and sales of music tracks.

So far in this discussion we have talked about the need for human intervention in dealing with IPO and equity capital, merger and acquisition capital, labour motivation and handling of funds (delegates), and any external conditionality that a transaction may be dependent on. There may be more if we go on.

So I'm coming to the conclusion that any reasonably complex service cannot be completely captured on a block-chain without points of human intervention.

If we want to open up the flexibility of these DAC platforms to capture traditional industries, I suspect we need to embrace the need for human judgments in certain tasks, rather than trying to avoid them. We can still recognise the need to minimise them as much as possible. And that means using the best tools available to derive maximum security and efficiency from that.

And if we take that step, maybe there is no reason why any service should not also make use of multiple chains?