死磕以太坊源码分析之Ethash共识算法

死磕以太坊源码分析之Ethash共识算法 代码分支:https://github.com/ethereum/go-ethereum/tree/v1.9.9文章合集:https://github.com/blockchainGuide 引言 目前以太坊中有两个共识算法的实现:clique和ethash。而ethash是目前以太坊主网(Homestead版本)的POW共识算法。 目录结构 ethash模块位于以太坊项目目录下的consensus/ethash目录下。 algorithm.go实现了Dagge

  • 0
  • 0
  • 发布于 2021-06-14 09:40
  • 阅读 ( 79 )

区块链中的密码学之非对称密码RSA算法(十)

1.前言 RSA密码是1978年美国麻省理工学院三位密码学者R.L.Rivest、A.Shamir和L.Adleman提出的一种基于大合数因子分解困难性的公开密钥密码。由于RSA密码既可用于加密,又可用于数字签名,通俗易懂,因此RSA密码已成为目前应用最广泛的公开密钥密码。 2.RSA的密钥生成过程 1.随机地选择两个大素数p和q,而且保密; 2.计算n=pq,将n公开; 3.计算φ(n)=(p-1)(q-1),对φ(n)保密; 4.随机地选取

  • 0
  • 0
  • 发布于 2021-06-14 02:07
  • 阅读 ( 52 )

区块链中的密码学系列之对称加密算法DES(六)

1.前言 DES是一种数据加密标准(DataEncryptionStandard),有30多年历史,是一种对称密码算法,是第一个得到广泛应用的密码算法,是一种分组加密算法,输入的明文为64位,密钥为64位(实际上只有56位,原因是每隔7个比特设置一个奇偶校验位),生成的密文分组长度为64位。但是现在已经不再安全。 课件来自我们老师上课的PPT。 2.Feistel网络 我们可以参考这里,Feistel讲解 下面简

  • 0
  • 0
  • 发布于 2021-06-14 02:07
  • 阅读 ( 44 )

区块链中的密码学系列之对称加密算法AES(七)

1.前言 高级数据加密标准(AdvancedEncryptionStandard),简称AES,由美国政府于1997年开始公开征集的新的数据加密标准算法。经过三轮筛选,美国政府最终于2000年10月2日正式宣布选中密码学家JoanDaemen和VincentRijmen提出的RINJDAEL算法作为AES。 RINJDAEL算法之所以能够最终被选为AES的原因是其安全、性能好、效率高、实用、灵活。 RINJDAEL算法是一个数据块长度和密钥长度都可变的分组加密

  • 0
  • 0
  • 发布于 2021-06-14 02:07
  • 阅读 ( 44 )

区块链技术之密码学技术之加密算法

现代加密算法的典型组件包括:加解密算法、加密密钥、解密密钥。其中,加解密算法自身是固定不变的,一般是公开可见的;密钥则往往每次不同,并且需要保护起来,一般来说,对同一种算法,密钥长度越长,则加密强度越大。 加密过程中,通过加密算法和加密密钥,对明文进行加密,获得密文。解密过程中,通过解密算法和解密密钥,对密文进行解密,获得明文。根据

  • 0
  • 0
  • 发布于 2021-06-14 02:06
  • 阅读 ( 67 )

用Python实现一个Dual Thrust数字货币量化交易策略

DualThrust交易算法介绍 DualThrust交易算法是由MichaelChalek开发的著名量化交易策略。它通常用于期货,外汇和股票市场。DualThrust的概念属于典型的突破交易系统,其运用“双推力”系统根据历史价格构建更新的回溯期,这在理论上使其在任何给定时期内更加稳定。 在这篇文章中,我们给出了此策略的详细逻辑细节,并展示了如何在发明者量化平台上实现此算法。首先,我们要选

  • 0
  • 0
  • 发布于 2021-06-13 22:49
  • 阅读 ( 46 )

以太坊Ethash算法源码分析

Ethash是以太坊目前使用的共识算法,其前身是Dagger-Hashimoto算法,但是进行了很大的改动。 1.Dagger-Hashimoto Dagger-Hashimoto算法想要达到以下几个目标: 抵制ASIC矿机轻客户端验证全链数据存储实际上Dagger-Hashimoto是由两种不同的算法Dagger和Hashimoto融合而成的: Hashimoto Hashimoto算法由ThaddeusDryja发明,旨在通过“内存读取”瓶颈来抵制ASIC矿机。ASIC矿机可以通过设计专用电路来提升

  • 0
  • 0
  • 发布于 2021-06-13 20:21
  • 阅读 ( 118 )

从小白到区块链工程师:第一阶段:Go语言的控制台输入和输出(3)

    六,Print系列的函数输出 1:Println打印换行。Print控制台打印,lnline一行,打印数据后自动换一行显示。下面显示在控制台打印出不同的类型。   打印输出结果后,会自动换一行。打印结果如下所示。 2:Print打印出的内容,不换行。 在一行显示打印结果。   3:Printf格式化输出打印结果,拥有占位符。   整型(int): fmt.Printf("%dn",10) %d是一个占位符,后面的输出值来替换

  • 0
  • 0
  • 发布于 2021-06-13 20:14
  • 阅读 ( 100 )

15个区块链共识算法的开源实现【BFT/Raft/Paxos/Pow/PoS】

共识算法是实现自主产权区块链的必不可少的关键环节,本文列出社区中相对成熟的区块链共识算法开源实现,包括BFT共识、Raft共识、Paxos共识、PoW共识等,可供希望开发自主产权区块链的团队参考学习。 相关推荐:区块链开发系列教程 1、BFT共识开发库 BFT共识算法可以应对分布式系统中的拜占庭故障(Byzantinefailures),也就是可以在集群中部分节点存在恶意行为时依然保证

  • 0
  • 0
  • 发布于 2021-06-13 17:56
  • 阅读 ( 58 )

区块链共识算法之BFT(4)

 (1)PBFT    最常用的BFT共识机制是实用拜占庭容错算法PBFT(PracticalByzantineFaultTolerance)。该算法是MiguelCastro和BarbaraLiskov在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由节点数的指数级降低到节点数的平方级,使得拜占庭容错算法在实际系统应用中变得可行。    PBFT是针对状态机副本复制为主的分布式系统执行环境开发的算法,旨在让系统中大

  • 0
  • 0
  • 发布于 2021-06-13 17:55
  • 阅读 ( 59 )

京东区块链开源项目——JD Chain介绍及区块链白皮书发布

导言 近日,京东区块链底层引擎JDChain正式对外开源并同步上线开源社区,旨在为企业级用户和开发者提供开源服务,帮助他们提高研发效率,加速技术创新。3月30日,国家互联网信息办公室公布了第一批区块链信息服务名称及备案编号,其中京东区块链BaaS平台、京东区块链防伪追溯通用平台等榜上有名。4月9日,京东发布《京东区块链技术实践白皮书(2019)》,总结了京东区块

  • 0
  • 0
  • 发布于 2021-06-13 00:59
  • 阅读 ( 53 )

新人必读:区块链实用型技能树 | Linux 中国

随着新一波的区块链热潮,许多同学怀着巨大的热情进入了这个领域,同时也会遇到不少疑惑,区块链开发需要哪些知识?怎么学习?从哪里学习?遇到问题怎么办?本文将试图给区块链领域新人一个快速实用的指引。 --张开翔 作者:FISCOBCOS/张开翔 随着新一波的区块链热潮,许多同学怀着巨大的热情进入了这个领域,同时也会遇到不少疑惑,区块链开发需要哪些知识?怎么

  • 0
  • 0
  • 发布于 2021-06-12 22:57
  • 阅读 ( 134 )

如何用python生成自己的比特币私钥!

在加密货币中,私钥允许用户访问其钱包。持有私钥的人完全控制该钱包中数字货币。出于这个原因,你应该保守秘密。如果你真的想自己生成密钥,那么以安全的方式生成密钥是有意义的。在这里,我将介绍私钥,并向你展示如何使用各种加密函数生成自己的密钥。我将在Python中提供算法和代码的描述。 我需要生成私钥吗? 大多数时候你没有。例如,如果你使用Coinbase或Bloc

  • 0
  • 0
  • 发布于 2021-06-12 19:34
  • 阅读 ( 57 )

如何用python生成自己的比特币私钥

在加密货币中,私钥允许用户访问其钱包。持有私钥的人完全控制该钱包中数字货币。出于这个原因,你应该保守秘密。如果你真的想自己生成密钥,那么以安全的方式生成密钥是有意义的。在这里,我将介绍私钥,并向你展示如何使用各种加密函数生成自己的密钥。我将在Python中提供算法和代码的描述。 我需要生成私钥吗? 大多数时候你没有。例如,如果你使用Coinbase或Bloc

  • 0
  • 0
  • 发布于 2021-06-12 19:33
  • 阅读 ( 96 )

比特币 java_使用Java生成比特币钱包地址的过程

比特币钱包地址的生成过程 通过OpenSSL命令随机生成密钥对 生成椭圆曲线的私钥 opensslecparam-namesecp256k1-genkey-outec-priv.pem 执行上述命令会生成ec-prive.pem文件,将其快速解码为可读的16进制形式。 opensslec-inec-priv.pem-text-noout 将上述密钥对中的公钥部分取出,存储到一个叫做ec-pub.pem的外部文件中: opensslec-inec-priv.pem-pubout-outec-pub.pem

  • 0
  • 0
  • 发布于 2021-06-12 19:33
  • 阅读 ( 102 )

如何用python生成自己的比特币私钥

在加密货币中,私钥允许用户访问其钱包。持有私钥的人完全控制该钱包中数字货币。出于这个原因,你应该保守秘密。如果你真的想自己生成密钥,那么以安全的方式生成密钥是有意义的。在这里,我将介绍私钥,并向你展示如何使用各种加密函数生成自己的密钥。我将在Python中提供算法和代码的描述。 我需要生成私钥吗? 大多数时候你没有。例如,如果你使用Coinbase或Bloc

  • 0
  • 0
  • 发布于 2021-06-12 19:33
  • 阅读 ( 88 )

使用Java生成比特币钱包地址的过程

比特币钱包地址的生成过程 第一步,通过OpenSSL命令随机生成密钥对 生成椭圆曲线的私钥 opensslecparam-namesecp256k1-genkey-outec-priv.pem执行上述命令会生成ec-prive.pem文件,将其快速解码为可读的16进制形式。 opensslec-inec-priv.pem-text-noout将上述密钥对中的公钥部分取出,存储到一个叫做ec-pub.pem的外部文件中: opensslec-inec-priv.pem-pubout-outec-p

  • 0
  • 0
  • 发布于 2021-06-12 19:32
  • 阅读 ( 79 )

[以太坊源代码分析] IV. 椭圆曲线密码学和以太坊中的椭圆曲线数字签名算法应用

数字签名算法在Ethereum中的应用不少,目前已知至少有两处:一是在生成每个交易(Transaction,tx)对象时,对整个tx对象进行数字签名;二是在共识算法的Clique算法实现中,在针对新区块进行授权/封印的Seal()函数里,对新创建区块做了数字签名。这两处应用的签名算法都是椭圆曲线数字签名加密算法(EllipticCurveDigitalSignatureAlgorithm,ECDSA)。Ethereum在采用ECDSA进行数字签名的基础上,基

  • 0
  • 0
  • 发布于 2021-05-30 18:09
  • 阅读 ( 146 )

用基于 Python 的开发框架 Brownie 部署以太坊智能合约

在本文中,我们将使用Python部署智能合约。这篇文章可能是您走向智能合约和区块链开发的桥梁!

  • 0
  • 0
  • 发布于 2021-05-28 21:48
  • 阅读 ( 130 )

助记词创建以太坊钱包源码_基于Vue开发的以太坊开源HD钱包Vuethwallet源码分析...

前言 随着区块链越来越火热,数字货币钱包也随之被人重视。数字钱包的发展历程是从最初比特币的非确定性钱包,到确定性钱包,一直到我们现在最广为使用HD分层确定性钱包,而今天要分析的钱包就是现在最为流行的HD分层确定性钱包。 HD钱包的英文全称是:HierarchicalDeterministic之所以叫分层确定性钱包是因为私钥的衍生结构是树状结构,父密钥可以衍生一系列子密钥,每

  • 0
  • 0
  • 发布于 2021-05-28 21:36
  • 阅读 ( 190 )

今天,有什么经验需要分享呢?

立即撰写

热议话题 »