JAVA开发(神乎其神的区块链技术之数据上链)

news2024/11/17 21:39:23

        这是我第二遍写关于区块链的博文,前一篇文章《神乎其神的区块链概念和技术》主要介绍区块链的由来和基本概念。因为博主最近在做一个区块链项目,所以有时候也遇到一些概念性的知识需要去理解,比如数据的上链。谈到数据上链,我们先了解一下现在都有什么链。

一、区块链的分类:

根据不同的条件划分大致可以分为:

公链、私链,联盟链、主链,测试链、单链、侧链、互联链、基础链、行业链。

  • 根据网络范围可分为公链,私链,联盟链
  • 根据部署环境可分为主链,测试链
  • 根据对接类型可分为单链,侧链,互联链
  • 根据应用范围可分为基础链,行业链

博主认为一个分布式的数据库与去中心化存在一定的矛盾,所以上面的链的去中心化都是相对而言。除了所说的公链代表的是整个互联网,其他的链都是小范围的数据存储,严谨的说还是有中心,有专门人管理。

公链:

  • 公有链是指任何人都可读取,发送交易,且交易能获得有效确认的,任何人都能参与其共识过程的区块链
  • 公有链是完全去中心化的,整个系统的运作规则和数据公开透明,没有人或者机构可以控制,篡改其中的数据,具有保护用户免受开发者影响的作用
  • 公有链中程序开发者无权干涉用户,访问门槛低,也就是说,一台能够联网的计算机就能够满足访问的条件,目前市场上比较知名的公有链包括比特币【BTC】,以太坊【ETH】,波卡【DOT】,EOS,币安,索拉纳等等。

私链:

  • 私有链是与公有链相对的概念,就是不对外开放,仅在组织内部使用的系统,参与的节点是有限和可控的,因此私有链具有交易速度快,隐私保护强,交易成本更低,不容易被恶意攻击等优势。
  • 尤其适合比如企业的票据管理,财务审计,供应链管理等,或者一些政务管理系统等
  • 私有链基本是中心化的,严格来讲不算区块链。

联盟链:

  • 联盟链是部分去中心化的,介于公有链和私有链之间,其参与者是被提前筛选出来或者直接指定的
  • 数据库的读取权限可能是公开的,也可能像写入权限一样仅限于系统的参与者,通常是在多个成员角色的环境中使用,比如银行之间的支付结算,企业之间的物流等
  • 联盟链并不一定要完全管控,比如政务系统,有些数据是可以对外公开的。

侧链:

  • 侧链是平行于主链的一条区块链,可以理解为是区块链的一种扩展协议,早期“侧链”是为了解决比特币以太坊的限制问题,比如2017年,牛市来袭,链上交易量大幅提升,超出了网络自身的吞吐能力,造成链上大面积的拥堵和延迟,所以就出现了加密猫游戏的火爆使整个以太坊网络瘫痪的事情;
  • 现在可以将主链上小额零散的交易全部转移到侧链上进行,大大减缓了主链的交易压力;
  • 这样做还有一个好处,就是可以保证一定的安全性,如果你的交易地址中有大量的比特币或者以太坊,相信你也不愿意让其他人知道你是拥有者,侧链也可进行简单支付验证,不需要将所有交易都过一遍比特币的原生区块链系统,所以在交易的处理速度上侧链也具有相当的优势。

测试链:

  • 测试链这个很好理解,就是开发者为了方便大家学习和使用,而提供的测试用途的区块链网络,比如比特币,以太坊的测试链等
  • 最后部署在生产环境的真正的区块链系统就是主链
  • 不管是公链,私链,联盟链,侧链,都没有绝对意义上的优势和劣势,根据不同的应用场景,最合适的才是最好的。

二、区块链的上链:

数据上链是指用户将自己的数据加密上传到基于ipfs的公网侧链,并在公信链形成数据索引的过程。数据一旦上链,除了你本人的Data_key授权解密外,任何个人或组织都没有能力获取到你的数据,从而保证数据的绝对安全。

上链前三步走:

第一步,根据企业所在的上下游产业,设计一条链的起点和终点。理论上讲,所有产业链的起点都是大自然,终点都是消费者。但在设计一条具体的链时,不一定要覆盖到大自然,终点也未必一定要延伸到消费者。要根据每一条不同的链的特点灵活设定链的长短、起点与终点。

第二步,起点终点确定后,在每一个环节或者行业选择哪些企业上链?选择的标准又是什么?一条产业链的设计,不一定是每个环节都要选最好的企业上链,链就是最好的。这和球队选球员的逻辑类似,一个球队如果前锋、中锋、后卫都是最好的,这个球队就是最好的吗?未必!

第三步,Token的设计,包括Token的价值支撑、应用场景。股票的价值来自单个公司全部利润的分红,Token的价值则来自链上的各个环节、各个企业的贡献。比如,有的公司按照销售额,有的按利润,有的按贡献产品或服务,各种方式都可以。贡献即挖矿,都可以获得Token。

业务数据上链前需要将业务数据处理,并且对信息进行签名。这些过程可以通过对应的工具,比如序列化工具和各种椭圆曲线的签名工具来完成,不过更多的时候是通过将各种工具集成的SDK来完成,以太坊的web3就是比较典型的上链前处理的开发工具。

数据层的一大功能是存储,存储系统的选择原则是性能和易用性。一个网络系统的整体性能,主要取决于网络或本地数据存储系统的I/O性能,比如比特币用的是谷歌的LevelDB,据说这个数据库读写性能很好,但是很多功能需要开发者自己实现。

一笔交易从产生到上链完成的流程:

验证——在比特币区块链中,当一笔交易经由某个节点或钱包产生时,这笔交易需要被传送给其它节点来作验证。验证的做法是将交易资料经由数位签章加密并经由Hash函数得出一串代表此交易的唯一Hash值后,再将这个Hash值广播(Broadcast)给比特币区块链网络中的其它参与节点进行验证。

产生一笔新交易—— 一笔新交易产生时,会先被广播到区块链网络中的其它参与节点,各节点将数笔新交易放进区块,每个节点会将数笔未验证的交易Hash值收集到区块中,每个区块可以包含数百笔或上千笔交易。

决定由谁来验证这些交易?——各节点进行工作量证明的计算来决定谁可以验证交易,由最快算出结果的节点来验证交易,这就是取得共识的做法。

广播-——取得验证权的节点将区块广播给所有节点,最快完成POW的节点,会将自己的区块广播给其他节点,各节点验证并接上新区块,其他节点会确认这个区块所包含的交易是否有效,确认没被重复花费且具有效数位签章后,接受该区块,此时区块才正式接上区块链,无法再窜改资料。

交易验证完成——所有节点一旦接受该区块后,先前没算完POW工作的区块会失效,各节点会重新建立一个区块,继续下一回POW计算工作。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/611644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】Nginx 优化与防盗链

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Nginx 优化与防盗链 一、隐藏版本号方法一:修改配置文件方式方法二:修改源码文件,重新编译安装 二、修改用户与组三、缓存时间四、日志切割…

前端自动化测试基础概念与方案

测试的类型 常见的测试类型主要有以下几种: 单元测试:验证独立单元是否能正常工作集成测试:验证多个单元协同工作端到端测试:从用户角度以机器的方式在真实浏览器环境验证应用交互快照测试:验证程序的UI变化 单元测…

Bert+FGSM中文文本分类

我上一篇博客已经分别用BertFGSM和BertPGD实现了中文文本分类,这篇文章与我上一篇文章BertFGSM/PGD实现中文文本分类(Loss0.5L10.5L2)_Dr.sky_的博客-CSDN博客的不同之处在于主要在对抗训练函数和embedding添加扰动部分、模型定义部分、Loss函数传到部分…

消费全返系统开发模式,是一种怎样的营销工具?

消费返利其实就是通过将消费者的部分或全部消费金额折返的方式,来刺激消费者二次乃至多次购买,返利形式则多种多样,包括现金、礼品卡和奖励积分等。这种模式已经在市场上广泛应用,几乎所有行业包括零售、旅游和餐饮等都在用这种模…

第十三届山东省ICPC D题负重越野(贪心)

题目: Problem D. 负重越野 您正在参加一场团体越野比赛。您的队伍共有 n 名队员,其中第 i 名队员的速度为 vi,体重为 wi。 比赛允许每名队员独立行动,也允许一名队员背着另一名队员一起行动。当队员 i 背着队员 j 时&#xff0c…

【Java】一文搞懂生产者和消费者模型

阻塞队列的概念生产者消费者模式消息队列消息队列的作用 JDK中的阻塞队列实现阻塞队列实现生产者消费者模型 阻塞队列的概念 之前介绍过队列,是一种数据结构,先进先出FIFO。阻塞队列也满足队列的特性,不过有特殊之处: 入队元素时…

用好ChatGPT,还得加点“料”

前言 关于ChatGPT或者类似的产品,相信绝大数的小伙伴已经有自己资源进行使用了,虽然可以通过简单的对话方式能获取到相关的信息,但其实里面还是有一些讲究的,毕竟AI始终不是人类,要让它更好的理解我们组织的语言&…

使用Transformer模型进行计算机视觉任务的端对端对象检测

Transformer模型是google团队在2017在论文attention is all you need中提出的一个用于NLP领域的模型,但是随着VIT模型与Swin Transformer模型的发布,把Transformer模型成功应用到计算机视觉任务中。 上期图文,我们使用hugging face的transformers模型进行了VIT模型的对象分…

Nginx:Rewrite

Nginx:Rewrite 一、常用的Nginx 正则表达式二、location2.1 location 大致可以分为三类2.2 location 常用的匹配规则2.3 location 优先级2.4 实际网站使用中,至少有三个匹配规则定义 三、rewrite3.1 rewrite功能3.2 rewrite跳转实现3.3 rewrite 执行顺序…

【大作业之爬虫实战+数据分析与可视化处理上】——案例——如桃花来

目的任务: 目的任务 爬取租房网对应元素: 租房名 每月的价格 室内规格构造 房间大小 交通信息 保存数据到excel表格中 做数据清洗 数据可视化呈现 设计要求: 设计要求: 以类的方式书写,简洁明了。能够促进学生…

技术分享 | App常见bug解析

【摘要】 功能Bug内容显示错误前端页面展示的内容有误。这种错误的产生有两种可能1、前端代码写的文案错误2、接口返回值错误功能错误功能错误是在测试过程中最常见的类型之一,也就是产品的功能没有实现。比如图中的公众号登录不成功的问题。界面展示错乱产品界面上…

海睿思分享 | 摆脱数据质量低下困扰,这个方法简单有效!

2019年五月,某企业数据服务平台推送了运营花呗的蚂蚁小微小额贷款有限公司进入清算程序。 究其原因,该数据服务平台抓取了不真实且不完整的数据,导致生成的数据质量低,信息不真实、存在法律合规风险等情况。 由于支付宝和花呗的…

飞浆AI studio人工智能课程学习(4)-优质Prompt分享

文章目录 最具商业价值Prompt分享与颁奖02最具商业价值Prompt分享与颁奖-Top102最具商业价值Prompt分享与颁奖-Top202最具商业价值Prompt分享与颁奖-Top302最具商业价值Prompt分享与颁奖-Top402最具商业价值Prompt分享与颁奖-Top502最具商业价值Prompt分享与颁奖-Top602最具商业…

数字化艺术时代的新趋势:虚拟数字展厅的崛起

引言: 艺术与技术的融合正带领我们进入一个全新的数字化艺术时代。在这个时代中,虚拟数字展厅正在以惊人的速度崛起,并引领着展览的新趋势。 一.虚拟数字展厅的定义和特点 虚拟数字展厅是一种基于虚拟现实和全景技术的数字化艺术…

经典的设计模式——UML类图的一些规范

文章目录 一、类的表示二、接口的表示三、继承的表示四、接口实现的表示五、关联关系六、聚合关系七、合成关系八、依赖关系 一、类的表示 矩形框第一层表示名称,如果是抽象类,则用斜 体表示 第二层是属性 第三层是方法 号表示公有,-表示私有…

dll修复都有哪些方法?详细解析各种dll修复方法

DLL(动态链接库)是 Windows 操作系统中的一种重要文件,它包含了许多程序所需的函数和资源。因此,当 DLL 文件出现问题时,可能会导致程序无法正常运行,甚至整个系统崩溃。这时候需要使用 DLL 修复工具进行修…

Excel集成GPT,惊呆我了

Excel&GPT 从最开始的GPT对话,到后面的Office集成GPT进行内测,用GPT实现写Word、做Excel、做PPT(别着急,后面我会分享AIPPT)已经不再是设想,而在逐步演变成真的! 当然,目前国内…

Vivado下时序逻辑模块的仿真

文章目录 D触发器两级D触发器带异步复位的D触发器带异步复位和同步置数的D触发器移位寄存器单口RAM伪双口RAM真双口RAM单口ROM 组合逻辑电路在逻辑功能上特点是任意时刻的输出仅仅取决于当前时刻的输入,与电路原来的状态无关。 时序逻辑在逻辑功能上的特点是任意时刻…

从0到1:如何建立一个大规模多语言代码生成预训练模型

国产AI辅助编程工具CodeGeeX是一个使用AI大模型为基座的辅助编程工具,帮助开发人员更快的编写代码。可以自动完成整个函数的编写,只需要根据注释或Tab按键即可。它已经在Java、JavaScript和Python等二十多种语言上进行了训练,并基于大量公开的…

【Python】打包与发布(Packaging and distributing projects)

以Unix/macOS系统为例。 前提准备:确保pip为最新版本,可使用以下命令来更新pip: python3 -m pip install --upgrade pip一、创建一个简单的项目 我们在目录packaging_tutorial下进行操作。 项目名称为:example_package_wayne。 …