...by Daniel Szego
quote
"On a long enough timeline we will all become Satoshi Nakamoto.."
Daniel Szego
Showing posts with label Blockchain FAQ. Show all posts
Showing posts with label Blockchain FAQ. Show all posts

Saturday, August 4, 2018

Blockchain immutability is a cryptoeconomical guarantee

Blockchain is said to be immutable, meaning that a give transaction can not be changed if it is already in the blockchain, because the whole structure is secured by crypthograhical hashes, that can not really be broken. However it is important to note that the immutability is not necessarily a pure cryptographical guarantee, it might depend on cryptoeconomical perspectives as well. Like in a proof of work system, a long range attack, meaning building up the whole blockchain from the genesis block, or from the block of the given transaction cost a lot of computational power but not impossible. Especially if we can take into account that the mining difficult might not always increase, but it might decrease as well. Similarly in a proof of stake scheme a long range attack cost a lot of money, however that is not a cryptographical guarantee. 

As a consequence blockchain immutability is not necessarily a cryptographical guarantee but it might be a cryptoeconomial one, depending on the used consensus algorithm. So instead of saying that  it  is computational impractical to change a recorded transaction, we claim something weaker, like it cryptoeconomically impractical (or not profitable) to change a recorded transaction.  

Sunday, December 3, 2017

Blockchain FAQ - Immutability of a transaction


Question: Can I change transaction that has been already registered in a block ?

Answer: Basically no. In most of the Blockchains, like Ethereum or Btcoin, transactions are immutable, meaning that if they are registered successfully into a block they can not be modified or deleted again. There might be way to create an inverse or a modifying transaction as well, however it means that the database will store both the original and the inverse transaction and the rest is only interpretation. There might be on a long run under the Hyperledger foundation project some solutions that might have a pluggable storage mechanism making eventually possible to explicitly delete a transaction, however such a special algorithms will be probably not regarded as Blockchain, rather as general distributed ledger solutions. 


Blockchain FAQ - Privacy


Question: How private is my transaction or information on the blockchain ?

Answer: Well, it depends actually on the Blockchain, but in most cases all transactions are visible to everyone. Only the value for which address or for which person does a specific transaction related is hidden in several different ways. As an example Bitcoin uses generated one time addresses to hide that a certain amount of transactions are related a wallet. It makes however not impossible to make an implication on that a certain number of transactions were probably initiated by the same account. There are blockchain platforms that makes this implication easier, like Ethereum with not using many different addesses, or more difficult, like Monero, with built in mixers or or two levels of one time addresses. Certainly an address is not really associated with a personal information, however it is something that is usually not impossible to identify. True privacy can be probably reached only by off-chain private channels only between two endpoint working similarly as the payment channels or lightning network.  

Thursday, November 30, 2017

Blockchain FAQ - Turing Completeness


Question: Is solidity or Ethereum EVM Turing complete ?

Answer: Theoretically yes, so you can implement loops infinite loops and everything that can be theoretically implemented. However from a practical point of view it is not. If you consider the live Ethereum network, there is a block gas limit that can be fine tuned by the miners but only on a long run. The sum of all gas consumption of all transactions in a block has to be smaller than this gas limit, otherwise a "gas limit exceeded" exception is thrown.  It is basically a mechanism to prevent DoDS attacks. So in the practical implementation of Ethereum, it is not possible to implement infinite loops or computation without limit, even if someone could finance the gas forever. 

Tuesday, November 28, 2017

Blockchain FAQ - immutability



As there are usually some interesting questions regarding blockchain, I thought it is a good idea to start a blockhain FAQ session.

Question 1: I used the state-of-the art development techniques like, Agile, Scrum, DevOps Lean and I deployed the first release of my smart contract to the Ethereum live Blockchain, so how can I deploy the next release ?

Answer 1: You can't ! Immutable means you can't change. Actually nobody can change. It is the basic characteristic of a truly decentralized global trust protocol. Certainly, in very special circumstances there might some workarounds, like you might prepare some elements at the beginning to be dynamic, or Buterin might do a hard-fork for you, or you completely destroy the contract and create a brand new one. But generally if you want to change an immutable smart-contract, you fucked up !

Question 2: Is it possible then to write smart contracts at all ?

Answer 2: Voyager 1 probe was launched in 1977, it left the solar system in 2012, it is still working and it has code running on it. Probably it was designed less with the above mentioned fashionable software development techniques and much more with old fashioned engineering, but it is possible.