JAVA开发(神乎其神的区块链概念和技术)

这篇具有很好参考价值的文章主要介绍了JAVA开发(神乎其神的区块链概念和技术)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        由于我最近需要做一个关于区块链的项目,所以想写篇博文记录一下自己的一些疑惑。区块链技术最火爆的时间应该是2016年和2017年。它产生的背景是B特币兴起,一时间说虚拟货币将取代所有实物货币炒的沸沸扬扬。它的主要思想思想是去中心化。网络上给了很多概念,但是我一直看的迷迷糊糊。主要是说什么的都有,没有一种统一的说辞和定义,也许可能说得大家都不懂,才显得有点技术含量似的,也是方便资本市场炒作。所以有时候,资本市场真的是万恶之源。

   看一下百度百科定义:

     区块链,就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持。如果要修改区块链中的信息,必须征得半数以上节点的同意并修改所有节点中的信息,而这些节点通常掌握在不同的主体手中,因此篡改区块链中的信息是一件极其困难的事。相比于传统的网络,区块链具有两大核心特点:一是数据难以篡改、二是去中心化。基于这两个特点,区块链所记录的信息更加真实可靠,可以帮助解决人们互不信任的问题。

从百度百科给出的定义我们可以看出,区块链是是一种数据结构,分为区块和链,基本单元是区块,区块间使用链条联系。它存储在很多服务器上,具有去中心化的特征。

再看一下其他地方的定义(摘自腾讯云):

区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。该技术方案让参与系统中的任意多个节点,把一段时间系统内全部信息交流的数据,通过密码学算法计算和记录到一个数据块(block),并且生成该数据块的指纹用于链接(chain)下个数据块和校验,系统所有参与节点来共同认定记录是否为真。

区块链是一种类似于NoSQL(非关系型数据库)这样的技术解决方案统称,并不是某种特定技术,能够通过很多编程语言和架构来实现区块链技术。并且实现区块链的方式种类也有很多,目前常见的包括POW(Proof of Work,工作量证明),POS(Proof of Stake,权益证明),DPOS(Delegate Proof of Stake,股份授权证明机制)等。

区块链的概念首次在论文《比特币:一种点对点的电子现金系统(Bitcoin: A Peer-to-Peer Electronic Cash System)》中提出,作者为自称中本聪(Satoshi Nakamoto)的个人(或团体)。因此可以把比特币看成区块链的首个在金融支付领域中的应用。

无论多大的系统或者多小的网站,一般在它背后都有数据库。那么这个数据库由谁来维护?在一般情况下,谁负责运营这个网络或者系统,那么就由谁来进行维护。如果是微信数据库肯定是腾讯团队维护,淘宝的数据库就是阿里的团队在维护。大家一定认为这种方式是天经地义的,但是区块链技术却不是这样。

如果我们把数据库想象成是一个账本:比如支付宝就是很典型的账本,任何数据的改变就是记账型的。数据库的维护我们可以认为是很简单的记账方式。在区块链的世界也是这样,区块链系统中的每一个人都有机会参与记账。系统会在一段时间内,可能选择十秒钟内,也可能十分钟,选出这段时间记账最快最好的人,由这个人来记账,他会把这段时间数据库的变化和账本的变化记在一个区块(block)中,我们可以把这个区块想象成一页纸上,系统在确认记录正确后,会把过去账本的数据指纹链接(chain)这张纸上,然后把这张纸发给整个系统里面其他的所有人。然后周而复始,系统会寻找下一个记账又快又好的人,而系统中的其他所有人都会获得整个账本的副本。这也就意味着这个系统每一个人都有一模一样的账本,这种技术,我们就称之为区块链技术(Blockchain),也称为分布式账本技术。

定义解析:

这个就说的很狭隘了,说的云里雾里的。这个说的是一种数据库,每个块是一个节点,NOSQL数据库?一个账本? 真是艰涩难懂。我这里真想一万个 CCCXXX。

我们继续看其他地方定义:

1.1.什么是区块链

区块链(Block chain)是一种分布式共享数据库(数据分布式储存和记录),利用去中心化和去信任方式集体维护一本数据薄的可靠性的技术方案。

如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。

1.2.区块链的特点

区块结构有两个非常重要的特点:

l每个区块的块头包含了前一区块的交易信息的压缩值,因此从创始块到当前区块形成了链条。

l每个区块主体上的交易记录是前一区块创建后、该区块创建前发生的所有价值交换活动

1.3.区块链节点(以比特币网路为例)

任何机器都可以运行一个完整的比特币节点,一个完整的比特币节点包括如下功能:

•比特币钱包:允许用户在比特币网络上进行交易;

•完整区块链:记录了比特币历史上的所有交易,通过特殊的结构保证历史交易的安全性,并且用来验证新交易的合法性;

•矿工:通过记录交易及解密数学题来生成新区块,如果成功可以赚取奖励;

•路由功能:把其它节点传送过来的交易数据等信息再传送给更多的节点。

在比特币网络中的节点,除了路由功能以外,其它的功能都不是必须的,有的节点只有钱包功能,有的节点只负责挖矿。

JAVA开发(神乎其神的区块链概念和技术)

定义解析:

是个分布式共享数据库?钱包?矿山?挖矿? NIMA!什么乱七八糟的。就是不愿意说清楚点。

继续看:

区块链是什么?

区块链是一种新型去中心化协议,通过分布式账本(或者叫数据库)这个载体,能安全地存储比特币交易或其它数据,通过分布在全球的网络确保信息不可伪造和篡改,可以自动执行智能合约,无需任何中心化机构的审核。交易既可以是比特币这样的数字货币,也可以是股权、知识产权这样的数字资产。大大降低了经济运行的信任和会计成本。

区块链有2个核心概念:交易/事务和区块

什么是交易/事务?

区块链是一个全局共享的,事务性的数据库。这个网络的每一个人都可以读取其中的记录。如果你想修改这个数据库中的东西,就必须创建一个事务,并得到其他所有人的确认。事务意味着你要做一个修改,要么被完全执行要么一点都没有执行。当你的事务被应用到这个数据库的时候,其他事务不能修改该数据库。

举个例子,想象一张表,里面列出了比特币所有账号的余额。当从账户A到账户B的转账请求发生时,这个数据库的事务特性确保从账户A中减掉的金额会被加到账户B上。如果因为某种原因,往账户B增加金额无法进行,那么账户A的金额也不会发生任何变化。

此外,一个事务会被发送者(事务的创建者)进行密码学签名。这项措施为数据库的修改增加了访问保护。在上面的比特币例子中,可以确保只有持有账户A密钥的人,才能从该账户向外转账。

什么是区块?

区块链要解决的一个主要难题,在比特币中被称为“双花攻击”。当网络上出现了两笔交易,都要从一个账户中转出余额时,会发生什么?一个冲突?

简单的回答是你不需要关心这个问题。这些交易会被排序并打包成“区块”,然后被所有参与的节点执行和分发。如果两笔交易相互冲突,排序靠后的交易会被拒绝并剔除出区块。

这些区块按时间排成一个线性序列。这也正是“区块链”这个词的由来。区块以一个相当规律的时间间隔加入到链上。对于比特币,这个间隔大致是10分钟。而对于以太坊,这个间隔大致是17秒,以太坊对比特币做了改进,相信未来可以做到接近实时转账,就可以运用到实时性要求比较高的商业领域。

作为“顺序选择机制”(通常称为“挖矿”)的一部分,一段区块链可能会时不时被回滚。但这种情况只会发生在整条链的末端。回滚涉及的区块越多,其发生的概率越小。所以你的交易可能会被回滚,甚至会被从区块链中删除。但是你等待的越久,这种情况发生的概率就越小。

未来展望

了解了区块链的一些基本原理,聪明的你也许已经发现了其中的价值。传统互联网完成了信息全球化的传递,但不能传递信任和价值,而区块链的特性可以传递信任和价值。相信区块链将引领信息互联网往价值互联网进化。未来10年人类社会将进入更加公开透明的世界。

      定义解析:总结就是不愿意说清楚。总体来说,还是百度百科说的清楚一点。文章来源地址https://www.toymoban.com/news/detail-418918.html

到了这里,关于JAVA开发(神乎其神的区块链概念和技术)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链 技术 基本概念

    1.区块链 区块链(Blockchain) 最早在 2008 年被提出,本质上是一 个去中心化的分布式账本(Distributed Ledger)技术。 交易(Transaction) :指使区块链分布式账本状态改变的一次操作,如添加一条记录或者是一笔在两个账户之间的转账操 作。 区块(Block) :用于记录一段时间内

    2024年01月17日
    浏览(46)
  • 《区块链原理与技术》学习笔记(一)——区块链概念和区块链共识机制

    《区块链原理与技术》专业课学习笔记 第一部分 一、概论 1.什么是区块链 2.区块链与比特币的关系 2.1 区块链是比特币的底层技术,是比特币的核心基础与架构 2.2 区块链不止是比特币 3 区块链的特点 3.1去中心化 3.2 透明性 3.3 不可篡改性 3.4 多方共识 4 区块链的分类 二、区

    2024年02月04日
    浏览(49)
  • 区块链相关技术、概念以及技术实现过程中的一些关键问题 Smart Contracts and Blockchains

    作者:禅与计算机程序设计艺术 2017年底,区块链已经成为众多投资人和技术人员最关注的话题之一。随着现实世界的不断复杂化、数字货币的流行以及IoT设备的普及,加密数字货币市场正变得越来越活跃。由于区块链具有去中心化、不可篡改、透明性、高并发等特点,使其

    2024年02月09日
    浏览(52)
  • 【区块链实战】什么是DAPP,区块链开发如何进行技术选型

    目录 一、简介 二、知识点 DAPP 公链 联盟链 区块链开发涉及的角色 Solidity 三、技术选型 1、DApp 架构分析 2、公链与联盟链 区块链技术现在已经进入一个高速发展时期,作为企业来说一般有两个选择:做底层链技术,或者做区块链应用。 对绝大多数企业或个人来说,无论是技

    2024年02月12日
    浏览(52)
  • 用Java代码实现区块链技术

    比特币很热门——这是多么轻描淡写的说法啊。虽然加密货币的未来有些不确定,但用于驱动比特币的区块链技术也非常流行。 区块链的应用范围几乎无穷无尽。可以说,它还有可能破坏企业自动化。关于区块链是如何运作的,有很多信息。我们有一份免费白皮书,介绍区块

    2024年01月15日
    浏览(63)
  • 区块链技术在软件开发中的应用

    如果你是一名软件开发者或者IT从业者,你一定已经听说过区块链技术。区块链是一种基于密码学的分布式账本技术,被广泛应用于数字货币、金融、物联网等领域。但是,除了这些领域之外,区块链技术还可以在软件开发中发挥重要作用。本文将介绍区块链技术在软件开发

    2023年04月27日
    浏览(78)
  • 【区块链技术开发】 关于Windows10平台Solidity语言开发环境配置

    在 Windows 上配置 Solidity 语言开发环境需要进行以下步骤:

    2023年04月20日
    浏览(67)
  • 【区块链技术开发】十个比较流行的以太坊智能合约开发框架

    专栏:【区块链技术开发】 前期文章: 【区块链技术开发】剖析区块链Ganache模拟器工具及其智能合约部署区块链的查询方式 【区块链技术开发】基于Web3.js以太坊网络上的智能合约的交互及其应用 【区块链技术开发】OpenZeppelin智能合约库:提高智能合约的安全性和可靠性,

    2024年02月02日
    浏览(69)
  • 33复杂美区块链核心技术Chain33开发平台系统特点

    简单易上手 联盟让开发者一学就会用,一用就能开发部署,是Chain33的首要愿望。Chain33开发者平台部署快捷简单,一个可执行文件,数个配置参数,一行启动命令便可以快速部署一个区块链主链网络及平行链网络。 高效 联盟区块链中,交易在主链上共识并存储。多条平行链

    2024年02月12日
    浏览(54)
  • 解密Java容器技术:10个关键概念和用途

    引入容器技术的背景:容器技术作为软件开发和部署的一种重要工具,已经在过去几年中迅速发展,并得到了广泛应用。它解决了传统软件部署和管理中的许多挑战,并为开发人员和运维人员带来了巨大的便利和效率提升。 容器技术的定义:容器技术是一种虚拟化技术,通过

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包