浅谈区块链

区块链之一中什么样的技术呢?
区块链技术起源于比特币、一种支付交易、而比特币用于暗网支付系统、众所周知、现在互联网的支付系统都有第三方来处理电子支付信息、
而我们不管是支付方、还是收款方、都需要提供给第三方我们的基本信息、这在暗网中支付非常容易被侦察到收款方、对用户信息的保密性有很大的漏洞问题、
即使第三方说明不会泄露任何第三方信息、但是任何系统都有漏洞、就像whoami讲的 没有绝对安全的系统、那么这时候时代发展出来了一种无中心化的的支付技术
没有第三方、支付方直接把比特币交易给收款方、没有第三方接入、用户安全得到了全面保证、因为用户信息在交易中没有介入、也就无从查起、
中国有句老话:要想人不知除非己莫为 就是这个意思

那么BTC是什么解决了这个无中心化、直接由支付方把交易币给收款方的呢?
由此产生了区块链技术、每一个用户拥有的比特币就是支付系统中的一个点、一组点组成一个block、这些block又互相连接组成了网、这就是区块链技术
支付方支付给了收款方一个BTC 然后向全网进行广播 A给了B一个BTC、全网的其他节点收到这个信息后、把这个信息记录在自己的节点上【这个点是BTC】
这样就解决了第三方介入处理支付信息这个问题、抛弃了第三方、我们自己进行交易

那么由此就遇到了问题、网络中部分节点掉线怎么解决?
怎么保证节点数据安全性?

技术简介:

    介绍几个概念:
        交易:双方认定某种等额的物质交换。
        时间戳服务器
        工作量证明
        网络
        激励
        回收硬盘空间
        简化支付确认
        价值的组合与分割

在虚拟网络上我们重新定义了一种货币、一枚电子货币是这样一串数字签名、每一位拥有者通过对前一次交易和下一位拥有者的公钥签署一个随机散列的数字签名
并将这个签名附加在这枚电子货币的末尾、电子货币发送给下一位拥有者、而收款方对签名进行校验、就能验证该链条的所有者、

而在这个支付中容易出一个问题、就是你不能确定是否支付方使用这枚btc进行了双重支付、也就是是否使用这枚BTC连续支付了两笔订单、
通常的解决办法是引入了第三方、每一次交易后对这枚电子货币进行回收、然后在发行一版新的电子货币、而这种又回归了传统支付形式

解决思路:如果想要在支付中抛弃第三方、那么交易信息就要被公布、我们使用整个系统中所有的参与者、都拥有唯一公认的交易序列、首款方需要确保在
交易期间绝大多数节点都认同该交易是首次出现、

解决办法:

    引入一个新概念 时间戳服务器:时间戳服务器通过对区块(block)形式在的一组数据实施随机散列而加上时间戳、并将该随机散列进行广播、
    该时间戳能够证实特定数据必然于某种特定时刻是的确存在的、因为只有在该时刻存在了才能获取相应的随机散列值、每个时间戳应当将当前一个时间戳
    纳入其随机散列值中、每一个随后的时间戳都对之前的一个时间戳进行增强、这样就形成了一个链条(chain)

工作量证明:

        为了在点对点的基础上构建一个分散化的时间戳服务器、在进行随机散列运算时、工作量证明机制引入了对某个特定值的扫描工作、比如说SHA-256
        随机散列值以一个或者多个0开始、那么随着0的数目上升、找到这个解所需要的工作量也成指数增长、但是检验结果只需要一次随机散列运算


        我们在区块中补增一个随机数、这个随机数钥匙的该给定随机散列值出现了所需的那么多个0、我们通过反复尝试来找到这个随机数、找到为止、
        这样我们构建了一个工作量证明机制、只要该CPU耗费的工作量能够满足该工作量证明机制、那么除非重新完成相当的工作量、该区块的信息就不可以更改、
        由于之后的区块都是在该区块之后的、所以想要更改区块中的信息、就还需要重新完成之后的所有区块的全部工作量、这基本是不可能的

        同时 该工作量证明机制还解决了在投票表决时,谁是大多数问题、
        工作量证明机制是 一CPU一票、大多数表达为最长的链、最长的链包含了最大的工作量、
        如果想对已有区块进行修改、攻击者必须完成该区块外加该区块之后所有的工作量、并最终赶上和超越诚实节点的工作量、其成功率呈指数型递减

关于网络:
运行该网络步骤如下:

        1、新的交易向全网进行广播
        2、每一个节点都将收到的交易信息纳入一个区块中
        3、每个节点都尝试在自己的区块中找到一个有足够难度的工作量证明
        4、当一个节点找到了一个工作量证明、他就向全网进行广播
        5、当且晋档包含该区块中的所有交易都是有效的且之前未存在过的、其他节点才认同、该区块的有效性
        6、其他节点表示他们接受该区块、而表示接受的方法就是跟随在该区块的结尾、制造新的区块以延长该链条
            而将被接受区块的随机散列值视为新区块的随机散列值


节点始终将最长的链条视为正确的链条、并持续工作和延长它

对于一个节点没有收到特定区块、那么该节点将会发现自己缺失了某个区块、也就是提出自己下载该区块的请求

激励:

    我们约定:每一个区块的第一笔交易进行特殊化处理、该交易产生一枚由该区块创造者拥有的新的电子货币、这样就增加了节点支持该网络的激励
    并在没有中央集权机构发行货币的情况下、提供了一种将电子货币分配到流通领域的一种激励
    这种将一定数量新货币持续增添到货币系统的方法、非常类似与耗费资源挖掘金矿、并将黄金注入到流通领域、此时,CPU的时间和电力就是消耗的资源

    另外一个激励的来源则是交易费(transaction Fees)、如果是某笔交易的输出值小于输入值、那么差额就是交易费、该交易费用将被增加到该区块的激励中
    只要既定数量的电子货币已经进入流通、那么激励机制就可以逐渐转换为完全依靠交易费、那么本货币系统就能免于通过膨胀

    激励系统也有助于鼓励节点保持诚实、如果一个贪婪的攻击者能够调集比所有诚实节点加起来还要多的CPU计算力、那么他就面临一个选择:
    要么将其用于诚实工作产生新的电子货币、或者将其用于进行二次支付攻击、那么就会发现 还是按照规则行事是比较有利的

    因为该规则能使得他能够拥有更多的电子货币、而不是破坏这个系统使得其自身财富有效性受损

防内存溢出瓶颈机制

    如果最近的交易已被纳入了足够多的区块之中、那么就可以丢弃该交易之前的数据、一挥手硬盘空间、为了确保不损害区块的随机散列值、交易信息被随机散列时、
    被构建成Merkle树(Merkle tree)树  的形态、似的只有根(root)节点 被纳入了区块的随机散列值、

    通过将该树(tree)的分支拔出的方法、老区块就能被压缩、而内部的随机散列是不必须保存的。

技术亮点:

    无中心化技术
    数据广播、透明化、而又保密了用户信息
    支付渠道能够一直关注终点、适用捐款
    破坏性条件高、即使达到了也是符合规则去生产才能利益最大化
    区块链式结构、每一个用户都是一个节点、时间戳服务器将数据随机序列化并加上时间戳、到下一个节点再把这一组数据随机序列化+时间戳、并广播、这样一直增强下去
    工作量证明方式:读到这我想起了一个图形【条形图】 每一个节点维护一个工作条、广播之后每一个节点都给自己的链条加上收到的广播内容、
                    即使有节点离线、也会在在线时候再下载丢失的信息、继续维持数据链条的增长、这种方式也大大提高了安全性、要伪造假信息必须伪造一条链条超越该链条
                    而要有这样的设备去仿造这样一个链条、恰恰又不如遵守规则来的的btc快、高明。

待续

什么起因
解决什么问题
中间遇到什么棘手问题 又是怎么解决的
对于未来应用的启发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值