直观感受,为什么区块链的数据不可篡改?我做了一个页面

2019-01-07 16:37:31 +08:00
 cr4fun

直接做成 github 的 page 了。

https://hashfish.github.io/blockchain/

6322 次点击
所在节点    分享创造
53 条回复
geelaw
2019-01-07 20:06:28 +08:00
@jadec0der #13 虽然我个人并不是区块链爱好者,但是你没意识到 git commits 是区块链吗?
dreamwar
2019-01-07 20:28:21 +08:00
@geelaw #21 并不是,你没有数据的控制权而已,git 的程序员操作下数据库就改了
dreamwar
2019-01-07 20:31:10 +08:00
决定货币价值的是信用背书

决定美元价值的是美国
决定比特币价值的是数学
jadec0der
2019-01-07 20:47:19 +08:00
@geelaw 当然,从数据结构的角度来讲,git 就是 chain of blocks。blockchain 也没有比 git 更多的东西。如果只是需要一个分布式的 append-only 账本,它很早就开发好了,而且免费。

但是区块链拥趸并不承认这一点,他们坚持 blockchain 并不只是一个数据结构,blockchain 需要共识算法,blockchain 有超过这十个字母的更多内涵。所以我认为 lz 在开发这个玩意儿的时候并不想承认他用的 git 早就实现了他需要的所有功能。

git 是不是 blockchain 是一个老问题,你 Google 一下就能看到很多讨论,而据我的观察,"blockchain 专家"都在否认 git 是 blockchain 这个论点,因为这个论点让集资几十亿买个区块链显得很滑稽。
jadec0der
2019-01-07 20:48:58 +08:00
@dreamwar 把 git 当联盟链使用是没有问题的,pull 的时候如果前面被篡改了 git 会报错。
ooh
2019-01-07 20:57:17 +08:00
@dreamwar 分布式,至少是一个私链
dreamwar
2019-01-07 21:08:17 +08:00
@jadec0der #25 还是那个点,数据库可以直接被篡改
felixlong
2019-01-07 22:09:17 +08:00
@dreamwar 谁告诉你 决定比特币价值的是数学? 决定比特币价值的是那群来玩比特币的那群人。 我们这些没有比特币的人干嘛要来加进来被割韭菜?
bullfrog
2019-01-07 22:20:16 +08:00
把 pre_hash 也改了不就行了。。
不能篡改不是区块链的特性,是分布式的特性。。
KgM4gLtF0shViDH3
2019-01-07 22:25:50 +08:00
反正那些奶粉机油什么的溯源我是不信的,直接
返回一个正品的页面,后面的逻辑你也不知道
loading
2019-01-07 22:44:36 +08:00
那些所谓溯源的,是不能改,但是他们用的是自己官方控制的链,写的就是假东西。
yinqi025
2019-01-08 09:19:32 +08:00
@cr4fun 分叉走不远~~~~
cr4fun
2019-01-08 10:07:39 +08:00
@jadec0der 我写的这个例子,只是直观感受一下改变数据后,链式结构就断了呀,因为首尾相接的两个 hash 值对不上了。至于你说的 git,它明显是一个可追溯的 fork 系统,所以我认为大部分商业用的追溯系统用 git 比区块链更实用。

这个就是我写的例子: https://github.com/trackwithgit/demo/commits/master/lamp.md
jadec0der
2019-01-08 11:52:42 +08:00
@dreamwar 「还是那个点,数据库可以直接被篡改」还是不懂,能否展开讲讲?

比如现在你有个 git 库里面的 commits 是 A-B-C,我用 git clone 把它们都复制到了本地。如果你要偷偷篡改 B commit,让我下次 git pull 的时候把本地的 B commit 也改掉,你要怎么做呢?
binux
2019-01-08 13:37:22 +08:00
@jadec0der 按照你这个复制到了本地的说法,你就算用记事本,别人偷偷篡改,你下次再下载的时候不是一样能发现
jadec0der
2019-01-08 14:39:47 +08:00
@binux 文本文件不是 append-only 的。对 git 来说,只有在把改动在后续 commit 中提交才是合法修改,直接改前面 commit 中的内容是非法修改。文本文件没有这种区分。

除非你把 txt 当账本用,规定前面的不能改,每次下载新文件的时候扫描前面的每一行比较,再额外维护个 UTXO 表。那你确实可以用文本文件防篡改。
dreamwar
2019-01-08 14:46:34 +08:00
@jadec0der #36 没关系啊,线上数据库都已经篡改过了,又没有别人复制,1:99。

“所以有问题的是你手里那份数据,请以线上为准。”

除非,你让超过 51%的 git 用户都复制一份(这就是区块链了)
binux
2019-01-08 15:29:44 +08:00
@jadec0der 扫描每一行又如何,能防篡改就行了,所以防篡改根本不是 git 带来的特性。
jadec0der
2019-01-08 15:38:59 +08:00
@binux Bitcoin 现在三亿七千万条交易,每十分钟更新一次,扫描每一行又如何? O(n) 和 O(1) 在你看来没区别?
jadec0der
2019-01-08 15:40:25 +08:00
@dreamwar 呵呵,说错了就认错,胡搅蛮缠有意思么,blocked

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/524690

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX