Block Chain
Why Block Chains
-
Block Chain 干嘛的:
一个可扩充,不可更改的,de-centralized,distributed 的文件记录系统
-
为什么需要文件记录系统:
如果不使用文件记录系统,互联网上无法进行资产的交易,A给B转账100块钱和A给B转发1张图片(的副本)是不一样的。需要一个系统来记录A少了100块,B多了100块
-
why 可扩充:
因为随时都有新的数据需要记录
-
why 不可更改:
交易记录要是能改的话资产就混乱了,等于有人黑进了银行改了账户
-
why de-centralized:
去掉了银行/paypal这样的中间机构,好处:
- 更可靠,银行可能会破产
- 更高效,所有人共同存储这个记录
- 防止了集权(嘘)
-
why distributed:
稳定性,reliability
How It works
一条block chain由一个接一个的block构成,每个block包括:
- Nonce:(一个数值)
- Data:(需要存储的各种东西)
- Prev:(上一个block的hash值)
- hash:(以上三坨信息加在一块,map出来一个hash值)
其中,hash func是固定的,hash value会有一个valid条件,比如说要求前4位都是0;所以就需要找一个Nonce来满足这个valid条件,找Nonce的过程就是mining(计算复杂度蛮高的,找一次大概10分钟?)。找到Nonce之后,这个block就生效了,被加进链条里面。
对任意一个block,修改他的data的任意一个字符,他的hash value就变了,这时候需要重新找一个nonce使得它的hash value满足valid条件;找到之后,会发现因为hash value变了,他的下一个block也不满足valid条件了,需要重新找Nonce。那个block之后的所有链条都不valid了,并且你无法把它的所有block重新搞成valid因为它还在后面不断更新,速度赶不上。这条链就废了,之后大家就使用存在别的地方的链。篡改失败了( •̥́ ˍ •̀ू )
别的好处
因为这个性质,它不仅可以用来在网上做资产交易,它其实可以存储任何不想被篡改的东西。比如说合同啊,国家历史啊啥的。