John Light
3 min readAug 9, 2016

--

Thanks for taking the time to publish this write-up, Andreas. I think segregated witness is a beneficial improvement for a lot of reasons, however I do not believe that segregated witness will do much to “align economic incentives with resources costs.” More on this later. First, there are a few other points that I seek clarity on below:

Furthermore, immediately after receiving a new transaction and validating witness data, nodes can discard that witness data.

Nodes could discard the witness data, but if the node wants to help the network by providing archival copies of historical blocks to new nodes then they will have to keep the witness data so those new nodes can fully verify the blockchain. Additionally, discarding the witness data would mean that it is more expensive to re-verify the blockchain if the node is ever in doubt about the integrity of its own copy of the transaction database since it will need to re-download all of the witness data. It might be cheaper (and more beneficial to the network) if nodes just keep the witness data stored on disk.

If the fees are overwhelmingly motivating wallets to use as few inputs as possible in transactions, this can lead to UTXO picking and change address strategies that inadvertently bloat the UTXO set.

I don’t know whether it’s fees that would motivate wallets to use fewer inputs, or the desire to protect user privacy. More inputs means more addresses being combined to create a transaction, which decreases the privacy of users by exposing which addresses are connected to a given sender.

Firstly, segregated witness reduces the overall cost of transactions by discounting witness data and increasing the capacity of the bitcoin blockchain.

There is no guarantee that segregated witness will “reduce the overall cost of transactions” because that cost is determined by not just the supply of block space but also demand. Given a constant level of demand, yes increasing the supply will lead to reduced costs. But demand is not constant, and so it would be inaccurate to state that segregated witness reduces the cost of transactions.

Secondly, segregated witness’ discount on witness data corrects a misalignment of incentives that may have inadvertently created more bloat in the UTXO set.

Now we get to the incentive discussion. The emphasis this post places on how fees may be related to UTXO bloat seems to miss an important point: a transaction fee is not so much included to compensate for the ongoing costs borne by nodes to store a given transaction, but rather to compensate miners for the one-time cost of building a block that includes a given transaction (costs that include CPU-time for signature verification, amortized mining hardware, electricity/opex, and bandwidth used to relay new blocks).

That fees are included to cover the one-time cost borne by miners and not the ongoing costs borne by full nodes is evidenced in part by the fact that full nodes receive no portion of transaction fees at all, and yet must still bear the costs of running a full node, whatever those costs may be. Further evidence is the fact that a transaction fee is a one-time payment to miners, just like including a transaction in a block is a one-time expense for miners. In contrast, the cost to store transaction data on disk and in memory is an ongoing cost that is not (yet) compensated for by any ongoing revenue source — these ongoing costs are therefore externalized by users and (some) miners onto full nodes.

If we truly want to align incentives with the costs of storing transaction data, then we will need to come up with a scheme where users not only pay miners a one-time fee to include transactions in blocks, but also pay n full nodes to store that transaction data in perpetuity. A protocol like StorJ might possibly be used for something like this in the future, but right now I’m not sure that there is either the technology or the incentive for users to pay for such a scheme given that so many full nodes are willing to store transaction data for free. And given that the costs of storage are dropping rapidly while the capacity of storage is simultaneously increasing, these costs are unlikely to be much of a burden to full nodes in the future.

--

--