由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - blockchain的稳定机制在哪里?
相关主题
wdong和赵老师请进C++/C#的一个设计方案---大伙说谁的方案合理?
人总是对近期进展过于乐观,远期进展过于悲观问个树遍历的线程化问题
blockchain是marketing的工具而已异步通讯代码的简化
以太坊那么ERC20协议好在哪里?Block on mac os x
bitcoin的阴谋C++ 模板的技术问题
C++下如何从Yahoo Finance获得Historical Price的数据?C++ static member method with default arguments
Re: 别了,纽约 (转载)go channel和clojure core.async哪个好
【C++算法求助】有个O(n*n)的算法不知道该怎么优化并且并行化计算fastest way to send 100k http requests in java
相关话题的讨论汇总
话题: blockchain话题: bitcoin话题: block话题: 节点话题: value
进入Programming版参与讨论
1 (共1页)
T*******x
发帖数: 8565
1
昨天通过本版的介绍看了一下blockchain,觉得这个确实可能是一个改变未来的技术。
有一个疑问:参与blockchain的每一个node都要下载整个blockchain的所有历史数据吗
?那这个历史数据越来越大怎么办?现在bitcoin的历史数据据说大概几十G,这不算
啥 ,但是以后越来越大怎么办?对node的要求越来越高,能够参与的越来越少了。
n*********2
发帖数: 357
2
> 参与blockchain的每一个node都要下载整个blockchain的所有历史数据吗?
是的。
》 那这个历史数据越来越大怎么办?
这也是为什么Bitcoin 要增加新块创建的难度的原因。
》现在bitcoin的历史数据据说大概几十G,这不算啥
这个历史数据已经很大了。 现在开一个新的节点, 光下载和检查旧的历史纪录就要一
个星期。
》但是以后越来越大怎么办?
根据Bitcoin 的设计, 这个增长速度不会大到无法控制的地步。(大致每10分钟一个
新的块。)
》对node的要求越来越高,能够参与的越来越少了。
对, 这是一个问题。 如前所述, 现在运行一个新的节点不是那么容易的了。
我的感觉就是大部分人其实不是真懂 blockchain 是个什么东东。 都是跟风。 我读过
人行里搞技术的人写的这方面, 感觉他们压根就不懂这玩意。 估计是商业上有人搞,
他们有压力, 必须跟, 就玩概念。
现在blockchain 被滥用的倾向很大: 什么应用都拿来套一套, 然后卖炒作。

【在 T*******x 的大作中提到】
: 昨天通过本版的介绍看了一下blockchain,觉得这个确实可能是一个改变未来的技术。
: 有一个疑问:参与blockchain的每一个node都要下载整个blockchain的所有历史数据吗
: ?那这个历史数据越来越大怎么办?现在bitcoin的历史数据据说大概几十G,这不算
: 啥 ,但是以后越来越大怎么办?对node的要求越来越高,能够参与的越来越少了。

n*w
发帖数: 3393
3
还有那个etherum 的smart contract. 看起来就是一段小代码。有什么特别?
n*w
发帖数: 3393
4
我看到一个peer to peer买卖多余的太阳能电的start up。 说用block chain。每户电
源都装个小盒子。我猜miner也在上面运行。
问题是这个盒子运算能力应该不强。有人接个强机器是不是就可以乱搞了?blockchain
在iot说是应用广泛。但iot都是computing power超弱的。很容易找到个计算能力超过
半数的机器吧?
d******c
发帖数: 2407
5
要说技术改变世界政治和经济,这大概算一个突出例子了。对整个地下金融,国际金融
都有很大的影响。
有个blogger井底望天声称他向国内高层建议跟进blockchain,并且被采纳来着,肯定
有政府决策在里面。
不知道创始者到底是谁,是不是那个日本人。

【在 n*********2 的大作中提到】
: > 参与blockchain的每一个node都要下载整个blockchain的所有历史数据吗?
: 是的。
: 》 那这个历史数据越来越大怎么办?
: 这也是为什么Bitcoin 要增加新块创建的难度的原因。
: 》现在bitcoin的历史数据据说大概几十G,这不算啥
: 这个历史数据已经很大了。 现在开一个新的节点, 光下载和检查旧的历史纪录就要一
: 个星期。
: 》但是以后越来越大怎么办?
: 根据Bitcoin 的设计, 这个增长速度不会大到无法控制的地步。(大致每10分钟一个
: 新的块。)

n*********2
发帖数: 357
6
这个太阳能电小盒子听起来就是一个滥用 Blockchain 的应用。
NPR曾经报道过一个用Blockchain 来存储病人病历供所有医生来查询的应用。 我去那
个公司的网站看了一下, 发现就是忽悠。 IT界瞎搞的也很多。
etherum 我没有仔细看过。 不过那个etherum网站并不提供技术文本(或者我遗漏了?
)。 它只是提供一个工具平台。感觉到大规模滥用Blockchain的时代要来了。

blockchain

【在 n*w 的大作中提到】
: 我看到一个peer to peer买卖多余的太阳能电的start up。 说用block chain。每户电
: 源都装个小盒子。我猜miner也在上面运行。
: 问题是这个盒子运算能力应该不强。有人接个强机器是不是就可以乱搞了?blockchain
: 在iot说是应用广泛。但iot都是computing power超弱的。很容易找到个计算能力超过
: 半数的机器吧?

n*********2
发帖数: 357
7
Bitcoin 是天朝贪官们转钱出国的天然好工具。 不知道土共为什么还要拥抱它。 应当
把它当成洪水猛兽才对。
》》 不知道创始者到底是谁,是不是那个日本人
这个要真是穷究, 应当不难找到。 既然提到了这个, 有一个问题: 给定两个软件包
(源码, 比如 C++), 有没有这样开源工具来检测这两个软件包是不是同一个人或者
同一个小组开发的? (比如通过编程风格, 等等)

【在 d******c 的大作中提到】
: 要说技术改变世界政治和经济,这大概算一个突出例子了。对整个地下金融,国际金融
: 都有很大的影响。
: 有个blogger井底望天声称他向国内高层建议跟进blockchain,并且被采纳来着,肯定
: 有政府决策在里面。
: 不知道创始者到底是谁,是不是那个日本人。

w***g
发帖数: 5958
8
这样的检测工具倒是可以用deep learning来做。直接拿github上的代码训练。
就是不知道会不会有市场。

【在 n*********2 的大作中提到】
: Bitcoin 是天朝贪官们转钱出国的天然好工具。 不知道土共为什么还要拥抱它。 应当
: 把它当成洪水猛兽才对。
: 》》 不知道创始者到底是谁,是不是那个日本人
: 这个要真是穷究, 应当不难找到。 既然提到了这个, 有一个问题: 给定两个软件包
: (源码, 比如 C++), 有没有这样开源工具来检测这两个软件包是不是同一个人或者
: 同一个小组开发的? (比如通过编程风格, 等等)

n*********2
发帖数: 357
9
市场不知道。 但是搞出几个大的(世界级)新闻是很有希望的。

【在 w***g 的大作中提到】
: 这样的检测工具倒是可以用deep learning来做。直接拿github上的代码训练。
: 就是不知道会不会有市场。

a*w
发帖数: 4495
10
看过一个说法,每个交易都存储于多个节点,
而不是全部节点。

【在 T*******x 的大作中提到】
: 昨天通过本版的介绍看了一下blockchain,觉得这个确实可能是一个改变未来的技术。
: 有一个疑问:参与blockchain的每一个node都要下载整个blockchain的所有历史数据吗
: ?那这个历史数据越来越大怎么办?现在bitcoin的历史数据据说大概几十G,这不算
: 啥 ,但是以后越来越大怎么办?对node的要求越来越高,能够参与的越来越少了。

相关主题
C++下如何从Yahoo Finance获得Historical Price的数据?C++/C#的一个设计方案---大伙说谁的方案合理?
Re: 别了,纽约 (转载)问个树遍历的线程化问题
【C++算法求助】有个O(n*n)的算法不知道该怎么优化并且并行化计算异步通讯代码的简化
进入Programming版参与讨论
l******n
发帖数: 9344
11
blockchain‘用在iot?blockchain的有点对iot没有用处呀

blockchain

【在 n*w 的大作中提到】
: 我看到一个peer to peer买卖多余的太阳能电的start up。 说用block chain。每户电
: 源都装个小盒子。我猜miner也在上面运行。
: 问题是这个盒子运算能力应该不强。有人接个强机器是不是就可以乱搞了?blockchain
: 在iot说是应用广泛。但iot都是computing power超弱的。很容易找到个计算能力超过
: 半数的机器吧?

l******n
发帖数: 9344
12
如果不是所有节点都有所有的transaction,那fraud就变得很容易。信息完全公开透明
,所有节点地位必须平等。否则decentralization就是joke了

【在 a*w 的大作中提到】
: 看过一个说法,每个交易都存储于多个节点,
: 而不是全部节点。

a*w
发帖数: 4495
13
每个交易都随机选多个节点存储,容易破解
吗?

【在 l******n 的大作中提到】
: 如果不是所有节点都有所有的transaction,那fraud就变得很容易。信息完全公开透明
: ,所有节点地位必须平等。否则decentralization就是joke了

T*******x
发帖数: 8565
14
我觉得blockchain/bitcoin似乎有两个功能,它们不一定非要在一起不可:一个是作为
公开账本的可信性,一个是作为新的货币的挖掘产生机制。
可信性一定要建立在挖掘难度上吗?还是只建立在公开的复制到世界各地的大量的node
上?

【在 T*******x 的大作中提到】
: 昨天通过本版的介绍看了一下blockchain,觉得这个确实可能是一个改变未来的技术。
: 有一个疑问:参与blockchain的每一个node都要下载整个blockchain的所有历史数据吗
: ?那这个历史数据越来越大怎么办?现在bitcoin的历史数据据说大概几十G,这不算
: 啥 ,但是以后越来越大怎么办?对node的要求越来越高,能够参与的越来越少了。

n*w
发帖数: 3393
15
both

node

【在 T*******x 的大作中提到】
: 我觉得blockchain/bitcoin似乎有两个功能,它们不一定非要在一起不可:一个是作为
: 公开账本的可信性,一个是作为新的货币的挖掘产生机制。
: 可信性一定要建立在挖掘难度上吗?还是只建立在公开的复制到世界各地的大量的node
: 上?

d******c
发帖数: 2407
16
补充一些有趣的材料
https://news.ycombinator.com/item?id=14460085
在以太币基础上有无数Ponzi骗局
另一个评论
https://www.reddit.com/r/Buttcoin/comments/4uzw81/eli18_ethereum/d5ucyca/
b*******s
发帖数: 5216
17
有种东西叫代码混淆工具

【在 n*********2 的大作中提到】
: Bitcoin 是天朝贪官们转钱出国的天然好工具。 不知道土共为什么还要拥抱它。 应当
: 把它当成洪水猛兽才对。
: 》》 不知道创始者到底是谁,是不是那个日本人
: 这个要真是穷究, 应当不难找到。 既然提到了这个, 有一个问题: 给定两个软件包
: (源码, 比如 C++), 有没有这样开源工具来检测这两个软件包是不是同一个人或者
: 同一个小组开发的? (比如通过编程风格, 等等)

n*********2
发帖数: 357
18
同意。

【在 n*w 的大作中提到】
: both
:
: node

n*********2
发帖数: 357
19
我说的那几个应用, 比较明显的是(C++)源代码没有被混淆;在源码里面,有些个人
风格还比较明显。

【在 b*******s 的大作中提到】
: 有种东西叫代码混淆工具
i*******d
发帖数: 1430
20
问的是blockchain,答的是bitcoin。虽然有联系但并不是一回事。
blockchain的scalability的问题我并没有见到有什么好的解决方式。针对想bitcoin这
样的应用尚可忍受。别的很多应用根本不能忍。说什么用blockchain来做 IoT绝对是忽
悠。

【在 n*********2 的大作中提到】
: > 参与blockchain的每一个node都要下载整个blockchain的所有历史数据吗?
: 是的。
: 》 那这个历史数据越来越大怎么办?
: 这也是为什么Bitcoin 要增加新块创建的难度的原因。
: 》现在bitcoin的历史数据据说大概几十G,这不算啥
: 这个历史数据已经很大了。 现在开一个新的节点, 光下载和检查旧的历史纪录就要一
: 个星期。
: 》但是以后越来越大怎么办?
: 根据Bitcoin 的设计, 这个增长速度不会大到无法控制的地步。(大致每10分钟一个
: 新的块。)

相关主题
Block on mac os xgo channel和clojure core.async哪个好
C++ 模板的技术问题fastest way to send 100k http requests in java
C++ static member method with default argumentsGcc出来的exe,被防病毒软件block了......
进入Programming版参与讨论
n*********2
发帖数: 357
21
>> 问的是blockchain,答的是bitcoin。虽然有联系但并不是一回事。
为了避免歧义,有必要精确定义一下blockchain: 什么样的数据结构才能叫blockchain?
我的理解是: hash chain + proof of work [+ digital signature]
(最后一个可能不同的应用有不同的要求)
这个你有不同的见解吗? 讨论讨论?

【在 i*******d 的大作中提到】
: 问的是blockchain,答的是bitcoin。虽然有联系但并不是一回事。
: blockchain的scalability的问题我并没有见到有什么好的解决方式。针对想bitcoin这
: 样的应用尚可忍受。别的很多应用根本不能忍。说什么用blockchain来做 IoT绝对是忽
: 悠。

d******c
发帖数: 2407
22
我觉得他回答都是针对blockchain的,只不过用bitcoin的blockchain作为主要讨论对
象。
至于前面提到的盒子,IoT,我没有仔细了解,但是不可能用IoT做node,最多是IoT和
smart contract能匹配,机器之间自主通讯协作,这和node没什么关系。
另外以太币平台上很多是Ponzi骗局,用smart contract写个金字塔形态就开始骗人,
这些骗局是把以太币兑换值推高的一个重要因素。见我另一个帖子。
记录全部历史是负担很重,本来也就是在关键行业,金融之类的这不是问题。以后历史
太多的时候,我觉得可以有一部分node有超高速网络处理全部历史,其他个人的下载最
近的就行了,把所有历史做个hash,能一定程度上验证对个人node就够了。

【在 i*******d 的大作中提到】
: 问的是blockchain,答的是bitcoin。虽然有联系但并不是一回事。
: blockchain的scalability的问题我并没有见到有什么好的解决方式。针对想bitcoin这
: 样的应用尚可忍受。别的很多应用根本不能忍。说什么用blockchain来做 IoT绝对是忽
: 悠。

n*********2
发帖数: 357
23
说到 Bitcoin, 刚才想到了一个问题: 如果你想运行一个新的Bitcoin node, 你有
Bitcoin软件(软件里有the genesis block)。 你的Bitcoin软件可以先找到一些别的
Bitcoin节点, 然后从这些邻居节点下载整个blockchain (many blocks)。
我的问题是:在这个情况下, 你的Bitcoin软件是怎么检查/确认这些下载的
blockchain blocks的? (理论上, 你的邻居节点可能都是恶意的; 它们会合起来欺
骗你。在极端情况下, 你下载的blockchain blocks可能都是精心伪造的; the
genesis block 并不能让你确认整个blockchain的真伪。)

【在 d******c 的大作中提到】
: 我觉得他回答都是针对blockchain的,只不过用bitcoin的blockchain作为主要讨论对
: 象。
: 至于前面提到的盒子,IoT,我没有仔细了解,但是不可能用IoT做node,最多是IoT和
: smart contract能匹配,机器之间自主通讯协作,这和node没什么关系。
: 另外以太币平台上很多是Ponzi骗局,用smart contract写个金字塔形态就开始骗人,
: 这些骗局是把以太币兑换值推高的一个重要因素。见我另一个帖子。
: 记录全部历史是负担很重,本来也就是在关键行业,金融之类的这不是问题。以后历史
: 太多的时候,我觉得可以有一部分node有超高速网络处理全部历史,其他个人的下载最
: 近的就行了,把所有历史做个hash,能一定程度上验证对个人node就够了。

d******c
发帖数: 2407
24
简单看了几个讨论,感觉问题不是太大
https://bitcoin.stackexchange.com/questions/17837/longer-fake-block-chain-
with-valid-transactions
https://bitcoin.stackexchange.com/questions/50606/how-do-you-know-that-block
-the-merket-root-the-hashes-in-the-path-are-authent/50610
https://bitcoin.stackexchange.com/questions/6065/why-must-some-bitcoin-
clients-download-the-block-chain-and-others-not
验证不需要全部信息,验证hash可以基本上认为是等价于验证全部(hash conflict的
可能性太小不考虑)
另外就是靠网络里大多数了,假设至少一半以上的是真的。如果整个网络大部分都是骗
子,那没有办法。不过那需要很大的计算成本。

【在 n*********2 的大作中提到】
: 说到 Bitcoin, 刚才想到了一个问题: 如果你想运行一个新的Bitcoin node, 你有
: Bitcoin软件(软件里有the genesis block)。 你的Bitcoin软件可以先找到一些别的
: Bitcoin节点, 然后从这些邻居节点下载整个blockchain (many blocks)。
: 我的问题是:在这个情况下, 你的Bitcoin软件是怎么检查/确认这些下载的
: blockchain blocks的? (理论上, 你的邻居节点可能都是恶意的; 它们会合起来欺
: 骗你。在极端情况下, 你下载的blockchain blocks可能都是精心伪造的; the
: genesis block 并不能让你确认整个blockchain的真伪。)

n*********2
发帖数: 357
25
谢谢回复。
【更新: 我查到了。 每个 bitcoin 块的target value是嵌在那个块里的, 是从邻居
节点下载下来的。 所以,成功地检查了一个收到的块的 hash value 并不能证明那个
块不是假的, 因为那个target value也可以被伪造。】
【原帖】
我的这个问题没有问好。 再试一次: 比方说, 你从一个邻居节点下载了blockchain
的第5000th 块 (block)。要检查/确认这个块, 你必须先计算这个块的 hash value
,然后将这个值跟一个 target value 比较。如果这个hash value 小于那个target
value, 那么这个块很可能是好的。
问题是在一个分布式环境中, 你是怎么拿到这个块的target value的?(这个target
value不是一个静态值, 所以不能固化在Bitcoin软件里。这个target value是动态的
;在Bitcoin协议里,每2016块就要依据当时Bitcoin网上的计算能力调整一下当前的
target value [如果计算机多, 这个target value就变小]。)
如果你是从一个邻居节点拿到一个块的target value, 那么这个安全性就很成问题。
Bitcoin 的协议里好像没有明确谈到这个。
block
a*****e
发帖数: 1700
26
你说这种情况不是不可能,但不用担心。
因为网络不停地有新 block 产生,而每个新 block 的签名都是以上一个 block 的签
名来验证的,所以只要知道一个 > 5000th 的正确 block,马上可以倒回去看你这个第
5000th block 能否推出这个正确 block 的签名,从而知道这个 5000th block 是否
真的在 chain 里面。
有各种 block chain 查询的网站,就算是 neigbour 都是恶意的,也不妨碍去第三方
验证一下。
总体来说,只要作假的成本高,而识别的成本低,那么整个链就能健康发展。

blockchain
value
target

【在 n*********2 的大作中提到】
: 谢谢回复。
: 【更新: 我查到了。 每个 bitcoin 块的target value是嵌在那个块里的, 是从邻居
: 节点下载下来的。 所以,成功地检查了一个收到的块的 hash value 并不能证明那个
: 块不是假的, 因为那个target value也可以被伪造。】
: 【原帖】
: 我的这个问题没有问好。 再试一次: 比方说, 你从一个邻居节点下载了blockchain
: 的第5000th 块 (block)。要检查/确认这个块, 你必须先计算这个块的 hash value
: ,然后将这个值跟一个 target value 比较。如果这个hash value 小于那个target
: value, 那么这个块很可能是好的。
: 问题是在一个分布式环境中, 你是怎么拿到这个块的target value的?(这个target

n*********2
发帖数: 357
27
》 而每个新 block 的签名都是以上一个 block 的签名来验证的,
这个说法不准确。 在 Bitcoin 的 blockchain 里, 每一个 block 包括了上一个
block 的 hash value, 不是(数字)签名。估计你也是这个意思, 重复一下避免歧义。
》 所以只要知道一个 > 5000th 的正确 block,马上可以倒回去看你这个第
》 5000th block 能否推出这个正确 block 的签名,
问题是作为一个新的Bitcoin节点, 你的关于blockchain的检查是从哪里开始的: 是
从 the genesis block 呢还是从 一个5000后面的块开始的? the genesis block固化
在Bitcoin软件里, 是比较可信的; 如果是从 5000 后面的一个块开始, 那你是怎么
确认/检查这个开始块的(这是一个鸡生蛋, 还是蛋生鸡的问题)。
(也许我有点吹毛求疵, 但是这点在这个玩意里太重要了。)

【在 a*****e 的大作中提到】
: 你说这种情况不是不可能,但不用担心。
: 因为网络不停地有新 block 产生,而每个新 block 的签名都是以上一个 block 的签
: 名来验证的,所以只要知道一个 > 5000th 的正确 block,马上可以倒回去看你这个第
: 5000th block 能否推出这个正确 block 的签名,从而知道这个 5000th block 是否
: 真的在 chain 里面。
: 有各种 block chain 查询的网站,就算是 neigbour 都是恶意的,也不妨碍去第三方
: 验证一下。
: 总体来说,只要作假的成本高,而识别的成本低,那么整个链就能健康发展。
:
: blockchain

a*****e
发帖数: 1700
28
如果不相信已有的验证(比如 block chain explorer 网站),当然可以自己从头开始
验证。

义。

【在 n*********2 的大作中提到】
: 》 而每个新 block 的签名都是以上一个 block 的签名来验证的,
: 这个说法不准确。 在 Bitcoin 的 blockchain 里, 每一个 block 包括了上一个
: block 的 hash value, 不是(数字)签名。估计你也是这个意思, 重复一下避免歧义。
: 》 所以只要知道一个 > 5000th 的正确 block,马上可以倒回去看你这个第
: 》 5000th block 能否推出这个正确 block 的签名,
: 问题是作为一个新的Bitcoin节点, 你的关于blockchain的检查是从哪里开始的: 是
: 从 the genesis block 呢还是从 一个5000后面的块开始的? the genesis block固化
: 在Bitcoin软件里, 是比较可信的; 如果是从 5000 后面的一个块开始, 那你是怎么
: 确认/检查这个开始块的(这是一个鸡生蛋, 还是蛋生鸡的问题)。
: (也许我有点吹毛求疵, 但是这点在这个玩意里太重要了。)

a*****e
发帖数: 1700
29
实际上 bitcoin full node 就是这么做的,而且它是选择已知范围内最长的 chain,
并不依赖其它方法区分 neighbor 是否恶意

【在 a*****e 的大作中提到】
: 如果不相信已有的验证(比如 block chain explorer 网站),当然可以自己从头开始
: 验证。
:
: 义。

n*********2
发帖数: 357
30
》》 实际上 bitcoin full node 就是这么做的,
怎么做的?你能给出一步一步的技术细节吗?(你说的黑盒子办法没有回答这个问题。)
这个讨论就是在深究这个"技术"细节: 一个新加入的Bitcoin 节点, 它有Bitcoin软
件(其中有 the genesis block),可以找到几个(比如8个)邻居节点(也许是恶邻
),可以下载blockchain。 这个新的节点是怎么“逐步(一个块一个块地)”检查下
载的blockchain的?

【在 a*****e 的大作中提到】
: 实际上 bitcoin full node 就是这么做的,而且它是选择已知范围内最长的 chain,
: 并不依赖其它方法区分 neighbor 是否恶意

相关主题
bitcoins是怎么回事?人总是对近期进展过于乐观,远期进展过于悲观
二爷,给你推荐个好的web template引擎blockchain是marketing的工具而已
wdong和赵老师请进以太坊那么ERC20协议好在哪里?
进入Programming版参与讨论
d******c
发帖数: 2407
31
http://www.samlewis.me/2017/06/a-peek-under-bitcoins-hood/
如果我没理解错的话,所谓distributed的也还是需要一些central control。源码里有
一些DNS节点用于bootstrap。所以一开始是从官方节点出发,而不是先找邻居,只看见
邻居。
当然你要劫持了这些DNS节点或者修改了DNS就能搞破坏,这没办法。

。)

【在 n*********2 的大作中提到】
: 》》 实际上 bitcoin full node 就是这么做的,
: 怎么做的?你能给出一步一步的技术细节吗?(你说的黑盒子办法没有回答这个问题。)
: 这个讨论就是在深究这个"技术"细节: 一个新加入的Bitcoin 节点, 它有Bitcoin软
: 件(其中有 the genesis block),可以找到几个(比如8个)邻居节点(也许是恶邻
: ),可以下载blockchain。 这个新的节点是怎么“逐步(一个块一个块地)”检查下
: 载的blockchain的?

a*****e
发帖数: 1700
32
Google "bitcoin full node" helps

。)

【在 n*********2 的大作中提到】
: 》》 实际上 bitcoin full node 就是这么做的,
: 怎么做的?你能给出一步一步的技术细节吗?(你说的黑盒子办法没有回答这个问题。)
: 这个讨论就是在深究这个"技术"细节: 一个新加入的Bitcoin 节点, 它有Bitcoin软
: 件(其中有 the genesis block),可以找到几个(比如8个)邻居节点(也许是恶邻
: ),可以下载blockchain。 这个新的节点是怎么“逐步(一个块一个块地)”检查下
: 载的blockchain的?

a*****e
发帖数: 1700
33
理论上都不需要 trust bootstrap,选取目前已知最长链足以提供保障

【在 d******c 的大作中提到】
: http://www.samlewis.me/2017/06/a-peek-under-bitcoins-hood/
: 如果我没理解错的话,所谓distributed的也还是需要一些central control。源码里有
: 一些DNS节点用于bootstrap。所以一开始是从官方节点出发,而不是先找邻居,只看见
: 邻居。
: 当然你要劫持了这些DNS节点或者修改了DNS就能搞破坏,这没办法。
:
: 。)

n*********2
发帖数: 357
34
》》理论上都不需要 trust bootstrap,选取目前已知最长链足以提供保障
我的理解是上面的这个表述是不对的。
如果一个新的节点“不加验证地”接收邻居节点给定的 target value的话, 从那个固
定的 genesis block起, 那个“邻居节点”可以很容易地产生一个任意长度的伪
blockchain。所以“已知最长链”并不能保证安全性。

【在 a*****e 的大作中提到】
: 理论上都不需要 trust bootstrap,选取目前已知最长链足以提供保障
a9
发帖数: 21638
35
关键你控制不了整个“邻居”节点啊。

【在 n*********2 的大作中提到】
: 》》理论上都不需要 trust bootstrap,选取目前已知最长链足以提供保障
: 我的理解是上面的这个表述是不对的。
: 如果一个新的节点“不加验证地”接收邻居节点给定的 target value的话, 从那个固
: 定的 genesis block起, 那个“邻居节点”可以很容易地产生一个任意长度的伪
: blockchain。所以“已知最长链”并不能保证安全性。

a*****e
发帖数: 1700
36
你这个场景得有一个前提,就是所有邻居都是“恶邻”,而且永不遇到“好邻”。

【在 n*********2 的大作中提到】
: 》》理论上都不需要 trust bootstrap,选取目前已知最长链足以提供保障
: 我的理解是上面的这个表述是不对的。
: 如果一个新的节点“不加验证地”接收邻居节点给定的 target value的话, 从那个固
: 定的 genesis block起, 那个“邻居节点”可以很容易地产生一个任意长度的伪
: blockchain。所以“已知最长链”并不能保证安全性。

n*********2
发帖数: 357
37
》》 你这个场景得有一个前提,就是所有邻居都是“恶邻”,而且永不遇到“好邻”。
不一定, 因为Bitcoin 遵从最长链原则(?)。
一旦一个很长的伪 Blockchain 被接受的话, 真的短一点的Blockchain反而会被拒绝
(因为它短)。
这个讨论到这儿该结束了。 我之所以问这个问题是因为这些细节没有出现在 Satoshi
的2009年的那篇文章中。有时只能从源码中找答案, 那个太花时间。

【在 a*****e 的大作中提到】
: 你这个场景得有一个前提,就是所有邻居都是“恶邻”,而且永不遇到“好邻”。
a*****e
发帖数: 1700
38
你真的理解什么是最长链吗?
https://bitcoin.stackexchange.com/questions/25170/can-the-blockchain-be-
outpaced-by-a-chain-of-low-difficulty-blocks

”。
Satoshi

【在 n*********2 的大作中提到】
: 》》 你这个场景得有一个前提,就是所有邻居都是“恶邻”,而且永不遇到“好邻”。
: 不一定, 因为Bitcoin 遵从最长链原则(?)。
: 一旦一个很长的伪 Blockchain 被接受的话, 真的短一点的Blockchain反而会被拒绝
: (因为它短)。
: 这个讨论到这儿该结束了。 我之所以问这个问题是因为这些细节没有出现在 Satoshi
: 的2009年的那篇文章中。有时只能从源码中找答案, 那个太花时间。

n*********2
发帖数: 357
39
我们讨论的东西跟 forking 有关, 但是那个不是最根本的。(我早前也想过, 正常
的 forking 就说明了 blockchain 的检查应当从 genesis block 开始)
最本质的安全问题还是在 target value 是这么处理的。这个不读源码是不清楚的。不
过,大都数人恐怕对跑一个Bitcoin节点挣钱更有兴趣。

【在 a*****e 的大作中提到】
: 你真的理解什么是最长链吗?
: https://bitcoin.stackexchange.com/questions/25170/can-the-blockchain-be-
: outpaced-by-a-chain-of-low-difficulty-blocks
:
: ”。
: Satoshi

a*****e
发帖数: 1700
40
需要被承认的是游戏规则,以及实现整套规则的程序。
一旦确认了“最长链”的规则,连 genesis block 都不是必须的。

【在 n*********2 的大作中提到】
: 我们讨论的东西跟 forking 有关, 但是那个不是最根本的。(我早前也想过, 正常
: 的 forking 就说明了 blockchain 的检查应当从 genesis block 开始)
: 最本质的安全问题还是在 target value 是这么处理的。这个不读源码是不清楚的。不
: 过,大都数人恐怕对跑一个Bitcoin节点挣钱更有兴趣。

相关主题
以太坊那么ERC20协议好在哪里?Re: 别了,纽约 (转载)
bitcoin的阴谋【C++算法求助】有个O(n*n)的算法不知道该怎么优化并且并行化计算
C++下如何从Yahoo Finance获得Historical Price的数据?C++/C#的一个设计方案---大伙说谁的方案合理?
进入Programming版参与讨论
n*********2
发帖数: 357
41
>> 一旦确认了“最长链”的规则,连 genesis block 都不是必须的。
(Sorry I cannot type Chinese for now.)
You have to be extremely careful here. If you start with nothing, you may
end up with nothing; there is simply no magic here.
>> 需要被承认的是游戏规则,以及实现整套规则的程序。
What really matters is not rules, but whether the rules have loopholes. If
ECDSA-256 is broken, will Bitcoin survive?

【在 a*****e 的大作中提到】
: 需要被承认的是游戏规则,以及实现整套规则的程序。
: 一旦确认了“最长链”的规则,连 genesis block 都不是必须的。

a9
发帖数: 21638
42
这个blockchain目前看来是安全的不用你自己去读代码,有很多懂的人代劳了。

【在 n*********2 的大作中提到】
: 我们讨论的东西跟 forking 有关, 但是那个不是最根本的。(我早前也想过, 正常
: 的 forking 就说明了 blockchain 的检查应当从 genesis block 开始)
: 最本质的安全问题还是在 target value 是这么处理的。这个不读源码是不清楚的。不
: 过,大都数人恐怕对跑一个Bitcoin节点挣钱更有兴趣。

1 (共1页)
进入Programming版参与讨论
相关主题
fastest way to send 100k http requests in javabitcoin的阴谋
Gcc出来的exe,被防病毒软件block了......C++下如何从Yahoo Finance获得Historical Price的数据?
bitcoins是怎么回事?Re: 别了,纽约 (转载)
二爷,给你推荐个好的web template引擎【C++算法求助】有个O(n*n)的算法不知道该怎么优化并且并行化计算
wdong和赵老师请进C++/C#的一个设计方案---大伙说谁的方案合理?
人总是对近期进展过于乐观,远期进展过于悲观问个树遍历的线程化问题
blockchain是marketing的工具而已异步通讯代码的简化
以太坊那么ERC20协议好在哪里?Block on mac os x
相关话题的讨论汇总
话题: blockchain话题: bitcoin话题: block话题: 节点话题: value