我的区块链笔记

区块链

中心化的账本,个人节点和中心节点的地位不对等,中心节点说了算。去中心化,个人节点就是公平的,根据一套规则,叫做公比机制。

区块链的本质,就是数据存储方式
区块链使用密码学算法产生的区块,按时间顺序相连,收尾链接,形成链条每个区块包含区块头、交易信息,不可篡改、永不消失,可追溯。

比特币出现于08年全球金融危机之后,中本聪。区块链是比特币的底层技术,比特币是区块链第一个应用。挖矿就是比特币系统掷骰子记账的过程,记账后比特币系统会给奖励。挖矿就是共识算法的一种,pow算法。

区块链的技术:公钥和私钥加密、P2P文件共享、分布式计算、网络模型、匿名、区块链账本、加密数字货币和协议等。

对于所有加密货币,区块链、协议、货币这三个层次是一种通用结构。
有三部分构成:地址、私钥、钱包软件 地址:别人能够把比特币发给你的地方 私钥:是加密学的秘钥,可以把比特币经过私钥加密发送给别人(相当于一个开保险箱的钥匙) 钱包软件:运行在你电脑上的操作私钥管理比特币的软件。

闪电网络是构建在比特币网络上的第二层支付协议,用来解决比特币网络堵塞问题。其理念是,在区块链之外开通一条“绿色通道”,将大量高频的、小额的交易在区块链外进行。使用hash时间锁的原子交换。

钱包

  • meta mask 是以太坊的浏览器插件钱包,目前有谷歌和火狐两个版本
  • jaxx多平台多币种的钱包
  • MyEtherWallet,基于web的钱包
  • imtoken钱包国内用的多

公钥私钥地址

  • 以太坊私钥是256位的随机数,用于发送以太的交易中创建签名来证明自己对资产的所有权
  • 公钥是私钥使用椭圆曲线加密secp256k1算法生产的512位数
  • 地址是公钥的keccak-256单向哈希,取最后20个字节(160位)派生出来的标识符
  • 助记词可以导出私钥

网络

  • 主网 真的ETH network ID 1
  • ropsten test network 公共的测试网络,使用工作证明挖矿,此网络上的ETH没有价值 network ID 3,好处是环境和主网一样,不太稳定。
  • kovan test network 公共的测试网络,使用aura协议进行权威证明POA共识此网络仅由parity支持。network ID 42
  • rinkeby test network 公共的测试网络 ,使用clique协议进行权威证明POA共识,network ID 4
  • localhost 8545
  • custom rpc 允许metamask链接到兼容geth的rpc接口的节点。
  • 新版metamask默认关闭测试网络,需要手动打开。
  • 使用rinkeby测试网络,使用faucet

区块链发展

  • 区块链1.0 比特币 2008
  • 区块链2.0 智能合约 2014
  • 区块链2.5 EOS,区块链1.0和2.0的缺点是性能不行
  • 区块链3.0 超级账本Hyperlerger 万物互联、设备民主的区块链+时代。

应用领域

数字货币、跨境支付、智能合约
Ripple Labs正在使用区块链技术来重塑银行业生态系统,使用Ripple支付网络可以让多国银行直接进行转账和外汇交易,而不需要第三方中介。Ripple也开发了一个智能合约和自己的程序语言Codius。
Paypal在做比特币和传统金融和支付市场对接的解决方案。
BTCjam在做基于区块链的去中心化P2P借贷。
Overstock在做基于区块链的去中心化证券交易所Medici

区块链核心技术

  • P2P网络
  • 分布式存储
  • 加密算法
  • 共识机制
  • 智能合约

公链和私链

公链,比如,Ethereum, Bitcoin, Litecoin,由于没有中心化的一方对其他用户进行管理或控制,公链的特点是高度的去中心化。社区是负责参与治理决策和维护生态系统的人。但由于在向链上添加新区块之前需要所有验证者达成共识,公链的速度和可扩展性不如私链,这是公链的一大缺点。
与此同时,私链比如Facebook Libra,是为适应企业、政府和机构需求而构建的专门解决方

区块链2.0

DAapp 去中心化 app开发

智能资产

智能资产是指所有以区块链为基础的可交易的所有资产类型,包括有形和无形资产,智能资产有可能让我们构建无须信任的去中心化资产管理系统,智能资产的核心是控制所有权,对于在区块链上注册的数字资产,能够通过私钥来随时使用。
众筹: 基于区块链的众筹平台支持初创企业通过创建自己的数字货币来筹集资金,分发自己的“数字股权”给早期支持者,这些数字货币作为支持初创公司应获股份的凭证。
区块链2.0通过智能合约来彻底颠覆了传统货币和支付的概念。

智能合约

智能合约能如此操作是因为具备3个特点:自治、自足、去中心化。自治表示合约一旦启动就自动运行,完全不需要它的发起人进行任何的干预。其次,智能合约能通过提高服务或者发行资产来获取资金,使其获得了自足的能力来获取资源。再次,智能合约是去中心化的,它不依赖于某个中心化的服务器,它是分布式的,且通过网络节点自动运行。
需要新的法律法规来保障智能合约的法律效力。

DAPP

未来随着智能合约的发展,会变得极其复杂和自治,会出现各种形态:Dapp(去中心化应用)、DAO(去中心化自治组织)、DAC(去中心化自治公司)、DAS(去中心化自治社会)。

Dapp三个特征: 一、程序开源,数据加密保存在公开且去中心化的区块链上。 二、应用必须通过标准算法来生产代币,代币根据应用需要使用,提供贡献的用户都应该获得代币奖励。 三、根据市场反馈改进,必须由多数用户一致同意。

区块链3.0

通过信用共识,基于数学的区块链实现了全球货币、支付的全部功能,进入3.0时代,更远远超越了货币、支付和金融这些经济领域,将利用其优势重塑人类社会的方方面面。区块链基于信用共识,使其擅长构建“强去中心化”特性的鉴证类服务。

  • 区块链促进大数据预测任务自动化 区块链可以和大数据连接,大数据预测分析可以和自动执行的智能合约完美结合,
  • Namecoin:去中心化域名系统 Namecoin可以用于替换DNS系统,无法被任何公司或政府控制。它能够让全世界任何人不受限制和审查,自由的在互联网上发布信息
  • 数字艺术还可以针对在线图片、照片或数字艺术作品这些数字资产,通过区块链来保护知识产权。
  • 区块链基因测序:全人类规模的工业化测序解决方案 当前公民获取个人基因数据有2个问题:1、法律法规对于个人获取基因数据的限制;2、基因测序需要大量计算资源,高昂费用限制了产业进程。 区块链测序解决了这2个问题:通过全球分布的计算资源,低成本完成测序服务,并用私钥保存测序数据规避了法律问题。

以太坊

  • 世界计算机,基于交易的状态机
  • p2p网络通讯,通讯接口是30303,运行devp2p协议
  • 交易,包括发送者、接受者、value、payload
  • EVM 以太坊虚拟机
  • 每个节点包含数据库,通常是谷歌的levelDB
  • 客户端 Geth等

以太坊的分布式系统

以太坊有自己的分布式系统:包括文件服务Swarm、信息传输Whisper和信誉担保。Swarm是个去中心化文件服务;Whisper是加密通信传输系统;信用担保提供去信任网络中建立信誉和降低发现的系统,可以由Crypto Schwartz和TrustDavis等第三方提供

图灵完备

如果一个系统可以模拟任何图灵机,那么就是图灵完备。
程序不能判断自己能不能结束

账户

比特币没有账户
包含地址、余额、随机数
普通账户和合约账户(包含存储、代码)

挖矿产出

  • 区块奖励,现在是2个多ETH,比BTC少,因为出块速度快,BTC大约10分钟一个块,ETH大约是10几秒一个块
  • 叔块奖励,有些块被挖出来,但是别人挖出来的更早被确认,这个叫叔块,比特币中会被舍弃,以太坊还可以用,如果后边被用了,就获取 7/8的奖励
  • 叔块引用奖励
  • 以太坊出块时间设计为12秒,实际为14-15秒左右
  • 快速确认带来区块的高作废率,降低链的安全率
  • GHOST协议

gas

  • Gas Price就是你愿意为一个单位的Gas出多少ether,一般用Gwei作单位
  • 无论您执行的命令是成功还是失败,都需要支付计算费用,即使失败,节点也验证并执行了您的交易(计算),因此必须和成功执行支付一样的费用
  • 矿工会优先打包gas price设置高的交易,如果您想加快转账,您可以把gas price设置得更高,这样您就可以插队靠前。
  • 一次转账一般要消耗21000 gas,如果你设置的gas Price = 1000000000wei = 1Gwei,则此次转账的交易手续费为:TxFee = 21000 Gwei = 0.000021 ether。
    A账户欲向B账户转账4 ether,则要求A账户至少要有 4 + 0.000021 = 4. 000021 ethrer

以太坊客户端

以太坊客户端就是实现以太坊规范并使用p2p网络和其他客户端通信的软件程序,黄皮书作为规范。

每种语言,几乎都有以太坊客户端实现,用的多的比如 go-ethereum (geth),官方推荐的
可以 git clone 项目代码,然后 make geth ,安装好后,直接 geth --datadir. --syncmode light就可以运行轻节点模式

同步测试区块
geth --testnet --syncmode light

conf会配置网络 id
geth --datadir. init conf.json
启动网络
geth --datadir. --networkid 16

全节点是整个主链的副本,并随时验证新区块的合法性,全节点成本很大包括硬件和带宽。

远程客户端,不存储副本和节点交易,比如metamask。

轻节点,不保存区块历史数据,只保存当前状态。

一个测试网络,大约十几个G的,一般几个小时可以完全同步。

本地私链,没有数据,没有用户,没有合约,空白的,任意以太,可以做一些基础测试。

Token 代币

也被称为通证,即令牌,代表资产在区块链上的抽象。
可替代性token,就是区块链发行的,互相可以替代,可无限拆分的token,比如ERC20,排第一的是BNB就是币安基于以太坊发行的代币。
非同质通证,non-fungible token,就是区块链发行的、唯一的、不可替代的,大多情况不可拆分的token,如加密猫。
比如ERC721,排名第一的是以太猫。
ERC就是以太坊征求意见,会被实现。

合约

  • 在线合约编辑器
pragma solidity ^0.4.17;
contract Faucet {function withdraw(uint amount) public {// require 封装了判断条件require(amount >= 100000000000000000);// 单位是 wei // 1 个以太币 = 10 的 18 次方 Wei// Gwei(Shannon)= 10 的 9 次方 Weimsg.sender.transfer(amount);}
}
  • 可以自己给自己转币,意义在于可以记录一些东西
  • 合约部署和一笔交易差不多,也需要手续费的
  • 合约一旦部署了,就不能改了,交易发生了,不可撤销
  • 写好合约后,可以在 etherscan查看合约详情
  • 合约也是钱包账户,合约也得payable,就是合约也得有币才行,可以给合约转币,在etherscan可以查看合约的余额
  • 水龙头合约,给账户发币是内部交易

扩展

BSC

BSC 是以太坊的同构链,支持 EVM (以太坊虚拟机),现有的 DeFi 或以太坊的其他 DApp 、工具都可以无缝迁移
币安智能链采取了称之为 PoSA 的 PoS 机制的变体作为共识机制,区块处理时间三秒,参与者需要抵押 BNB 成为验证人/出块人,和 EOS 一样,设置了21个出块节点。出块节点的收益只来自于交易手续费,而并非像许多 PoS 链一样,来自于代币通胀。
在 BSC 上除了原生代币 BNB 之外,使用 BEP-20 的代币标准,对标 ERC20。为了兼容币安链,在 BSC 和币安链之间的代币转账也是支持的。

跨链方式

  • 使用hash时间锁的原子交换 比如闪电网络、cbridge
  • 公证人托管、Interledger network,有个中介的性质
  • 主流跨链技术,分布式私钥

Staking 质押

Staking来源与POS(Proof of stake)共识机制,POS即权益证明机制,是按照持有代币数量占总代币数量的比例,决定获得记账权的大小,持有、质押的代币数量越大,获得记账权的可能性就越大,越有可能获得代币奖励。

DPOS是由POS衍生出的另一种共识机制,通过投票选出超级节点来进行记账。
staking是一种持币生息的商业模式,即代币持有者通过质押、投票、委托和锁定代币等行为获取区块奖励以及分红等收益广泛应用于POS和DPOS的项目中,例如EOS、Tezos、Cosmos等。

这有点类似于将钱存在银行获得利息。在Staking商业模式中,扮演银行角色的我们称之为“节点服务商”。投资者可以将相应代币,质押在节点服务商提供的平台上,服务商用这些代币进行POS、DPOS的挖矿,获得收益之后将利润分给投资者。节点服务商的盈利来自两方面:手续费和挖矿所得。

Staking业务的收益丰厚,所以服务商群雄逐鹿:①交易所,例如抹茶、币安Staking、kucoin;②矿池,例如OKEx矿池、星火矿池;③钱包,例如火币钱包;④海外平台,例如Stake Capital、P2P Validator;⑤国内服务商,例如Cobo、Wetez。
以太坊2.0的Staking会有很大的创新:
首先,只需要32个ETH就可以参与Staking。其次,一定程度上让网络更加分散化。
区块链报告:Staking概念对未来共识机制的意义。

更多

  • 新手学习
  • 【千锋】区块链从入门到精通(小白必看)
  • 尚硅谷区块链全套教程完整版(深入掌握以太坊核心技术)
  • brew安装慢
  • 区块链技术快速入门教程
  • 以太坊官网
  • truffle 以太开发框架
  • thercan
  • 汪晓明博客
  • 全球区块链节点
  • RPC
  • web3.js文档
  • 以太坊Whisper协议

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

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

相关文章

利用AI技术提升乳腺癌诊断准确率

背景: 乳腺癌是全球女性最常见的癌症之一,早期诊断和治疗对提高治愈率和生存率至关重要。传统的乳腺X光检查和病理学诊断方法存在一定的误诊和漏诊率。近年来,人工智能技术在医学领域得到了广泛应用,为提升乳腺癌诊断准确率提供了…

企微SCRM营销平台MarketGo-ChatGPT助力私域运营

一、前言 ChatGPT是由OpenAI(开放人工智能)研发的自然语言处理模型,其全称为"Conversational Generative Pre-trained Transformer",即对话式预训练转换器。它是GPT系列模型的最新版本,GPT全称为"Gene…

指针进阶(一)

指针进阶 1. 字符指针面试题 2. 指针数组3. 数组指针3.1 数组指针的定义3.2 &数组名VS数组名 3.3 数组指针的使用4. 数组传参和指针传参4.1 一维数组传参4.2 二维数组传参4.3 一级指针传参4.4 二级指针传参 前言 指针的主题,我们在初级阶段的《指针》章节已经接…

在Windows下设置将EXE开机自启动

在Windows下设置将EXE开机自启动,有多种方法。以下是两种常用的方法: 方法一:通过注册表 打开“运行”(快捷键:Win R),输入:reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windo…

NLP(2)--Transformer

目录 一、Transformer概述 二、输入和输出 三、Encoder 四、Decoder 五、正则化处理 六、对于结构的改进? 七、AT vs NAT 八、Cross-attention 一、Transformer概述 Transformer模型发表于2017年Google团队的Attention is All you need这篇论文,…

蓝桥杯打卡Day1

文章目录 全排列八皇后 一、全排列IO链接 本题思路:本题是一道经典的全排列问题&#xff0c;深度优先搜索即可解决。 #include <bits/stdc.h>constexpr int N10;std::string s; std::string ans; int n; bool st[N];void dfs(int u) {if(un){std::cout<<ans<…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 29 日论文合集)

文章目录 一、分割|语义相关(20篇)1.1 VideoCutLER: Surprisingly Simple Unsupervised Video Instance Segmentation1.2 Compositional Semantic Mix for Domain Adaptation in Point Cloud Segmentation1.3 Referring Image Segmentation Using Text Supervision1.4 Semi-Sup…

kafka知识小结

1.为什么分区数只能增加,不能减少? 按照Kafka现有的代码逻辑而言,此功能完全可以实现,不过也会使得代码的复杂度急剧增大。 另外实现此功能需要考虑的因素很多,比如删除掉的分区中的消息该作何处理? 如果随着分区一起消失则消息的可靠性得不到保障; 如果需要保留则又需…

前后端数据加密传输基于AES+RSA实现

前后端数据加密传输基于AESRSA实现 什么是AES和RSA AES AES&#xff08;Advanced Encryption Standard&#xff09;是一种对称加密算法&#xff0c;它的加密速度快&#xff0c;安全性也比较高&#xff0c;是目前广泛使用的加密算法之一。AES的密钥长度可以选择128位、192位和…

NetSuite海鲜书 - 知识会汇编 用户篇 2023

NetSuite2021年初夏&#xff0c;NetSuite知识会成立。它由本人&#xff0c;上海德之匠信息技术有限公司的毛岩喆&#xff08;江湖人称Rick&#xff09;发起建立。建立的初衷秉承Rick个人博客“学问思辨&#xff0c;企业信息化路上的行者”的理念&#xff0c;期望能够在NetSuite…

Flink基础

Flink architecture job manager is master task managers are workers task slot is a unit of resource in cluster, number of slot is equal to number of cores(超线程则slot2*cores), slot一组内存一些线程共享CPU when starting a cluster,job manager will allocate a …

docker快速安装-docker一键安装脚本

1.下载/配置安装脚本 touch install-docker.sh #!/bin/bash #mail:ratelcloudqq.com #system:centos7 #integration: docker-latestclear echo "######################################################" echo "# Auto Install Docker …

使用 skopeo 批量同步 helm chart 依赖镜像

skopeo 是什么&#xff1f; skepeo 是一个开源的容器镜像搬运工具&#xff0c;比较通用&#xff0c;各种镜像仓库都支持。 安装 skopeo 参考官方的 安装指引。 导出当前 helm 配置依赖哪些镜像 $ helm template -n monitoring -f kube-prometheus-stack.yaml ./kube-prome…

大数据组件-Flume集群环境搭建

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…

Mybatis对数据加密解密(AES加解密)操作

1&#xff1a;使用mybatis的BaseTypeHandler类&#xff0c;编写需要加密解密处理的类型 package com.example.poi.typeHandlers;import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.symmetric.AES; import org.apache.ibatis.type.BaseTypeHandler; import org.apa…

vue3+vite+ts项目适配各种分辨率解决方案

现在的电脑屏幕和尺寸越来越多样化&#xff0c;对于前端开发来说&#xff0c;适配各种屏幕成了大难题&#xff0c;开发中一个实际例子&#xff1a;开发一个导航栏&#xff0c;ui给的是1920*60的尺寸&#xff0c;前端开发的时候&#xff0c;在自己电脑缩放比例中开发的&#xff…

AOP到底是啥

AOP到底是啥 前言面向切面编程到底是啥意思那么要怎么实现面向切面编程呢&#xff1f;成果 前言 回忆起来&#xff0c;第一次听到这三字母是博主在上大二的时候&#xff0c;那时候看的一脸懵逼&#xff0c;现在马上研二了才想起来回顾下。 只记得当时面向对象编程还没整明白&…

TDengine(2):wsl2+ubuntu20.04+TDengine安装

一、ubuntu系统下提供了三种安装TDengine的方式&#xff1a; 二、通过 apt 指令安装失败 因为是linux初学者&#xff0c;对apt 指令较为熟悉&#xff0c;因此首先使用了该方式进行安装。 wget -qO - http://repos.taosdata.com/tdengine.key | sudo apt-key add -echo "…

【Linux】文件

Linux 文件 什么叫文件C语言视角下文件的操作文件的打开与关闭文件的写操作文件的读操作 & cat命令模拟实现 文件操作的系统接口open & closewriteread 文件描述符进程与文件的关系重定向问题Linux下一切皆文件的认识文件缓冲区缓冲区的刷新策略 stuout & stderr 什…

STM32 硬件IIC 控制OLED I2C卡死问题

#更新通知&#xff1a;2023-09-06 STM32L151 固件库 使用I2C 太难了&#xff0c;又宕机了&#xff0c;建议不要在固件库版本上尝试硬件IIC 了&#xff0c;一般人真用不了&#xff0c;直接使用软件模拟的&#xff0c;或者不要使用固件库了&#xff0c;用HAL 库吧&#xff0c;据说…