I just discovered Blockstack and it seems to be a pretty interesting framework and concept.
Something is still unclear to me though (just read the presentation page, didn’t look at the forum or the code in detail yet). What are the costs for every transaction entry in the virtual block chain?
Registering a new domain surely has a cost (wich is obviously essential to prevent domain squating) but what about storing some data uri in the blockchain? Does it have a cost too? Let’s say I want to make a chat app using Blockstack. Would the users have to pay every time they write a new message or want to attach a picture or video? If this is the case, that seems to be a serious drawback of using Blockstack for any app with frequently changing data…
TL;DR: You don’t store data in blockchain, you store an URL that points to your data and keep it there.
The costs of doing an update transaction is just like any Bitcoin transaction, you’ll have to pay whatever cost the network is expecting. Right now this seems to be 140 satoshis/byte (https://bitcoinfees.21.co/). So an update might come to about ¢40 if you want a quick 0-30 min update.
However, you wouldn’t want to put messages in a chat app on the virtual chain. The virtual chain is meant to keep the domain name, public key and zone file hash. The zone file is in the routing layer and so you’d need to pay a transaction fee every time you want to update your zone file.
Messages for your chat app would be stored in the storage layer, you can store it in one of two ways, mutable or immutable. If you choose the former you’ll just use the zone file to point to some bootstrap URL where you store stuff you need. You can change this as you want. If something is supposed to be unchangeable you can do a hash of this and store that hash in your zone file, then you can check that whatever you were linking hasn’t been changed.
However, for most cases you’d use mutable storage. And in that case you just put a link in the zone file, and whatever resides as this link can be updated independently and as often as you wish. An example would be a JSON file listing chat API endpoints.
Who and what mechanism decide the price of blockstack name id?
Can you verify my math? If it’s right then in the past month the cost of a writing a simple pointer in blockstack has increased 4x in a single month.
As of your reply April 15, the estimated cost for writing a single pointer was about $0.40 USD per write, reading is free. This will fluctuate and will be pegged to the underlying blockchain, currently blockstack uses bitcoin. Bitcoin has jumped from $1180 USD to $2275 USD from Apr 15 2017 to May 23 2017.
The mining cost is also a free market and has changed from 140 satoshi to 300 satoshi per byte for an update to occur within 0-30minutes if I’m reading bitcoinfees right.
The math I used was
mining cost: 0.40 usd x 300 satoshi / 140 satoshi = 0.86 USD
bitcoin cost: 0.86 usd x 2275 usd / 1180 usd = $1.66 USD
That same operation 1 month ago would now cost $1.66 USD. Is this correct?
Yes, we’re going to have to make a few changes pretty soon. Allowing for the registration of delegated subdomains is at the top of the list. With these subdomains, they’ll have been cryptographically committed by the parent domain so that they can only be updated or revoked by the delegated key.
@ryan the price of cryptocurrencies fluctuates both in short time frames of hours as well as relatively short periods of a week or a month.
Do you agree that this aspect of trustless public blockchains (which is not unique to bitcoin), is not very helpful for the aims of this project?
I have thought that interchangeably using Ethereum as the underlying blockchain would open other possibilities, but it wouldn’t help on this point.
Without entering into the deeper underlying topics here (other threads touch on background reading and I’m certainly not qualified) I can see there are dynamic tensions between stability, market forces, nascent endeavours and monopolistic tendencies.
My further question is if you agree that these are the sorts of factors that would be considered when deciding whether to use a private blockchain for any particular use case?