News for hackers. Stuff that matters.
Re:Is Git a Block Chain? by ntonozzi on Friday April 24, 2015 @11:06PM (#9437021)
Both git repositories and bitcoin are specialized Merkle trees. Merkle trees are incredibly useful and general; they are used in many kinds of verification, especially of large chunks of data.

http://en.wikipedia.org/wiki/Merkle_tree

Re:Is Git a Block Chain? by ejholmes on Saturday April 25, 2015 @01:10AM (#9437300)
The power of the Merkle tree is pretty amazing. IPFS is a good example https://www.ipfs.com.
Re:Is Git a Block Chain? by nosir33 on Saturday April 25, 2015 @01:28AM (#9437342)
Re:Is Git a Block Chain? by ngoldbaum on Saturday April 25, 2015 @12:22AM (#9437188)
I thought it was a directed acyclic graph. Care to share the distinction?
Re:Is Git a Block Chain? by petertodd on Saturday April 25, 2015 @02:03AM (#9437421)
The terminology used in #bitcoin-wizards is to call it a merkelized dag, or merkle-dag.

Similarly, we also refer to "Merkelized Abstract Syntax Trees", a way of hashing code originally proposed by Pieter Wuille and Russel O'connor(1) that will probably be added to Bitcoin's scripting system eventually.

Pretty much any data structure can have hash functions added to it to "merkelize" it, producing an authenticated data structure: http://www.cs.umd.edu/~amiller/gpads/

1) https://download.wpsoftware.net/bitcoin/wizards/2014-12-16.h...

Re:Is Git a Block Chain? by nivertech on Saturday April 25, 2015 @06:13AM (#9437876)
Bitcoin Script is Forth-like RPN, why does it need AST? Do you mean there are plans to add more languages/DSLs to Bitcoin which with multiple compiler front-ends generating ASTs. which then translated to "machine opcodes"? Something similar to Ethereum?

Or maybe it's a solution for transaction scriptSig malleability? [1]

[1] https://en.bitcoin.it/wiki/Transaction_Malleability

Re:Is Git a Block Chain? by cfallin on Saturday April 25, 2015 @12:30AM (#9437203)
You can see git's DAG as a dedup'd Merkle tree: in other words, if two child pointers in two places in the tree point to nodes (blobs) with the same hash, make them share a single node instead.

This works because the hash "is" the content/entire subtree (modulo hash collisions), so the resulting data structure has the same meaning as before.

Content/hash-addressed stores are related to referential transparency and immutability (and deep equality) in languages like Haskell, FWIW. I've always thought it's sort of beautiful how cleanly the ideas come together like that.