关于区块链原理的一些问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
w9ay
V2EX    问与答

关于区块链原理的一些问题

  •  
  •   w9ay 2018-08-20 18:45:33 +08:00 1907 次点击
    这是一个创建于 2608 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原本来自实习公司的技术分享,有一个区块链的浅谈,于是我问了一些有关底层原理的问题,但是没有很好的解答。所以整理了一下问题,问下大家。

    1. 去中心化存储,每个节点存储全部区块 如果像 BTC 那样区块很多的情况下,一个节点存储全部区块,那存储空间会不会被占满?占满了如何操作?

    2. 分布式账本无中心节点 如果分布式账本没有中心节点,那一个节点启动后是如何和其他节点联系的?

    3. 工作量证明 如果同一时间两个节点工作量证明的结果相同,应该算谁的?

    4. 节点攻击 很早的时候看到一种利用时间差的攻击方式,大概是这样的:A 向 B 转“钱”的时候,又同时在另一个时区向“ C ”转钱,利用一个时间差成功了,这种攻击方式现在是怎么防护的?

    以前都是看帖,这是第一次发帖,有不对的希望大家见谅,谢谢大家~

    9 条回复    2018-08-20 23:44:27 +08:00
    nfroot
        1
    nfroot  
       2018-08-20 20:16:34 +08:00 via Android
    1.节点自己判断咯,客户端自己实现
    2.未尝试实现,不过一般你的软件会连入一个服务器,去中心化不是没有服务器,是
    nfroot
        2
    nfroot  
       2018-08-20 20:25:16 +08:00 via Android
    点错了
    2.去中心化应该是:不是没有服务器,而是谁都可以是服务器(应该是多个服务器吧,猜的,而每个人都可以突然有一天拿这些数据去单独做一个服务器),因为每个节点都有所有数据
    3.不知道,不过当概率够低时则可忽略
    4.这个情况会发生分叉,就是多了一个平行时空,但是区块链记账是每个记录一个个连接起来验证的,假的验证人数会少一点,但是一旦其中一个用的人多,其他的分叉就会自动失效(可以理解为,选举制度,投票不是第一就抛弃,如果没有第一,就会多个分叉同时存在)
    nfroot
        3
    nfroot  
       2018-08-20 20:28:13 +08:00 via Android   1
    以上有一部分是自己的理解,也不一定正确,如果错了请谅解,不过估计也差不了太多,一般解说只会说个大概,不可能教你去实现服务端,客户端
    nfroot
        4
    nfroot  
       2018-08-20 20:35:30 +08:00 via Android
    想起来了,问题三其实很好解决,验证数据的时候,加入自己的 id 值进去
    dbw9580
        5
    dbw9580  
       2018-08-20 20:52:34 +08:00 via Android
    1 fully-blown nodes 会存储所有的历史,典型的如矿池里的矿工,交易所和在线钱包的提供者等;还有 thin nodes,不保存或者只留很少一部分历史,依赖网络里的 full nodes 做验证。另外,10 年到目前为止 btc 的全部历史纪录数据量大约 173GB,对于一般的矿工来说都完全可以接受
    2 有用于 bootstrap 的种子节点列表,写进 btc 客户端里的
    3 产生新块的间隔时间是泊松分布的,也就是间隔时间越短生成块的概率越低。如果真的发生同时有两个矿工各自找到 valid block,那不同的节点根据它们得知这两个 valid block 的先后分别跟随某一个 block 在其后继续挖块,网络会因此暂时分裂成两条链;在长期来看这种情况是极小概率的,因此马上会有一条链超过另一条链,得到大多数节点的认可。
    4 问题表述地不够清晰,无法回答。
    dbw9580
        6
    dbw9580  
       2018-08-20 20:59:40 +08:00 via Android
    @dbw9580 有个笔误,间隔时间是指数分布的
    hyyou2010
        7
    hyyou2010  
       2018-08-20 21:13:19 +08:00   1
    不一定对:
    1,逻辑上某个节点存储了完整的数据,但在底层实现上可以分布存储。
    2,底层是 p2p 网络,有几个固定存在的节点。
    3,算谁都不要紧,因为不会每次都碰巧相等。
    4,不懂。
    w9ay
        8
    w9ay  
    OP
       2018-08-20 22:20:51 +08:00
    @nfroot
    @dbw9580
    @hyyou2010
    谢谢各位的解答,不过旧的问题解决了新的问题又有了。
    对于 1 可以理解为程序会自动判定让你全部存储或者只存储一部分吗
    对于 3 搜索了下好像是双重支付( double-spend )但是被证明不现实了 http://www.hualian.me/archives/52243
    benjix
        9
    benjix  
       2018-08-20 23:44:27 +08:00 via iPhone
    之前看的这个视频基本可以解答楼主的疑问
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1221 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 17:24 PVG 01:24 LAX 10:24 JFK 13:24
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86