区块链技术与应用
文章平均质量分 79
主要介绍区块链相关的技术和概率,搭建相关环境的步骤以及遇到相关问题的解决方案,记录的是学习的一个过程,适合从零到一的同学阅读,也欢迎大家订阅和联系我共同学习
FAFU_kyp
区块链技术学习中
展开
-
Solidity基础面试题
为了克服这些挑战,通常需要使用各种密码学技术和算法来生成"足够随机"的数字,比如通过组合多个可能的熵源、使用延迟性随机函数、引入可信的外部预言机等。在区块链上生成真正的随机数存在一些固有的挑战,主要原因是区块链是一个确定性的系统,而真正的随机性需要引入不可预测的外部元素。由于地址是确定的,因此连续两次使用相同的4个参数部署同一个字节码,得到的合约地址将完全相同。则是对内部错误的最后保护。用于部署一个新合约,新合约的地址是由创建者的地址、创建者的nonce值以及部署合约的字节码通过一个确定性的计算得到的。原创 2024-04-17 15:22:51 · 1204 阅读 · 0 评论 -
可信通信(TLS/SSL协议)
比特币,以太坊,超级账本在建立网络连接保证节点间可靠通信的时,都直接采用了传输层安全性协议(Transport Layer Security),TLS协议自从1999年发布以来已经广泛的应用在浏览器,电子邮件等应用中了,经过了大规模的验证,已经成为了互联网上保密通信的工业标准,可以说是目前构建区块链网络间通信的最佳选择。原创 2024-04-17 10:27:41 · 455 阅读 · 0 评论 -
区块链基础概念
消息摘要就是采用单向哈希(Hash)函数将需要加密的明文“提取摘要”生成一串固定长度的密文,这一串密文又称为数字指纹,它有固定的长度,而且不同的明文提取摘要生成的密文其结果总是不同的,但是同样的明文产生的摘要是一致的。由于生成摘要的明文是没有任何限制的,但是得到的摘要却是定长的,必然就会导致有一些明文会产生相同的摘要,这种现象被称为”碰撞“。为了避免这种情况的产生哈希函数必须具备很好的抗碰撞性,意味着在现有的计算资源(包括时间、空间、资金等)下,找到一个碰撞是不可行的。消息摘要如下的四个特点;原创 2024-04-17 09:54:49 · 1191 阅读 · 0 评论 -
Web3面试最常见的10个问题
智能合约是运行在区块链上的自动化合约程序,它具有以下特征1. 智能合约包含了合约参与各方的权利和义务,代码形式实现。2. 智能合约存储和运行在区块链网络上,依赖区块链的分布式节点共识来执行。3. 智能合约的执行是自动化和自主化的,当满足了预设条件时即会自动触发执行。4. 智能合约代码和执行过程是透明可验证的。5. 智能合约可以处理各类业务逻辑,实现点对点价值转移,并可设置复杂条件。6. 智能合约可以让多方在缺乏信任基础上实现合作。原创 2023-09-05 12:56:46 · 1301 阅读 · 0 评论 -
区块链系统:出块原理
工作量证明是指,证明自己做了一定的工作量。例如,在驾校学习了50个小时。而其他人可以简单地验证该工作量。例如,出示驾照,表示自己确实在驾校学习了一段时间:比特币的工作量证明需要归结为计算机计算,也就是数学问题。如何构造一个数学问题来实现工作量证明?我们来看一个简单的例子。假设某个学校的一个班里,只有一个女生叫小红,其他都是男生。每个男生都想约小红看电影,但是,能实现愿望的只能有一个男生。到底选哪个男生呢?原创 2023-03-23 17:55:49 · 4260 阅读 · 2 评论 -
区块链系统:签名
签名算法是使用私钥签名,公钥验证的方法,对一个消息的真伪进行确认。如果一个人持有私钥,他就可以使用私钥对任意的消息进行签名,即通过私钥sk对消息message进行签名,得到signature签名的目的是为了证明,该消息确实是由持有私钥sk的人发出的,任何其他人都可以对签名进行验证。验证方法是,由私钥持有人公开对应的公钥pk,其他人用公钥pk对消息message和签名signature。原创 2023-03-24 06:00:00 · 1270 阅读 · 0 评论 -
区块链系统:签名
签名算法是使用私钥签名,公钥验证的方法,对一个消息的真伪进行确认。如果一个人持有私钥,他就可以使用私钥对任意的消息进行签名,即通过私钥sk对消息message进行签名,得到signatureskpkpkmessagesignature如果验证通过,则可以证明该消息确实是由持有私钥sk的人发出的,并且未经过篡改。。对消息进行签名,实际上是对消息的哈希进行签名,。对哈希进行签名相当于保证了原始消息的不可伪造性。我们来看看使用ECDSA如何通过私钥对消息进行签名。关键代码是通过sign()原创 2023-03-20 09:37:52 · 1314 阅读 · 0 评论 -
区块链系统:公钥和地址
以压缩格式的公钥为例,从公钥计算地址的方法是,首先对1+32=33字节的公钥数据进行Hash160(即先计算SHA256,再计算RipeMD160),得到20字节的哈希。要特别注意,比特币的地址并不是公钥,而是公钥的哈希,即从公钥能推导出地址,但从地址不能反推公钥,因为哈希函数是单向函数。开头的,因此,从地址本身并无法区分出使用的是压缩格式还是非压缩格式的公钥。要注意,对非压缩格式的公钥和压缩格式的公钥进行哈希编码得到的地址,都是以。,这样,得到一个1+32=33字节的压缩格式的公钥数据,记作。原创 2023-03-19 15:25:57 · 1566 阅读 · 0 评论 -
区块链系统:什么是私钥?
在比特币中,私钥本质上就是一个256位的随机整数。我们以JavaScript为例,演示如何创建比特币私钥。在JavaScript中,内置的Number类型使用56位表示整数和浮点数,最大可表示的整数最大只有。其他语言如Java一般也仅提供64位的整数类型。要表示一个256位的整数,只能使用数组来模拟。使用这个库来表示任意大小的整数。下面的代码演示了通过ECPair创建一个新的私钥后,d我们把它打印出来:注意:每次运行上述程序,都会生成一个随机的ECPair,即每次生成的私钥都是不同的。原创 2023-03-19 15:13:07 · 1984 阅读 · 0 评论 -
区块链系统:点对点交易原理
传统的电子交易,交易双方必须通过银行这样的信任机构作为中介,这样可以保证交易的安全性,因为银行记录了交易双方的账户资金,能保证在一笔交易中,要么保证成功,要么交易无效,不存在一方到账而另一方没有付款的情况:但是在比特币这种去中心化的P2P网络中,并没有一个类似银行这样的信任机构存在,要想在两个节点之间达成交易,就必须实现一种在零信任的情况下安全交易的机制。原创 2023-03-19 14:58:37 · 1731 阅读 · 0 评论 -
区块链中的:哈希算法
哈希算法,又称散列算法,它是一个单向函数,可以把任意长度的输入数据转化为固定长度的输出:例如,对morning和bitcoin我们通常用十六进制表示哈希输出。因为哈希算法是一个想要根据上述结果反推输入,只能由计算机暴力穷举。原创 2023-03-19 14:26:24 · 3253 阅读 · 0 评论 -
《区块链技术与应用》(六)——BTC分叉篇
BTC分叉篇。原创 2022-11-27 17:21:39 · 1109 阅读 · 0 评论 -
《区块链技术与应用》课堂笔记(五):实现
区块链的具体实现原创 2022-11-23 20:53:22 · 964 阅读 · 0 评论 -
《区块链技术与应用》课堂笔记(五):比特币系统的实现原理
区块链是一个的账本原创 2022-11-05 14:19:59 · 868 阅读 · 0 评论 -
基于实用拜占庭共识算法(PBFT)的区块链模型的评估
近年来,区块链成为了互联网金融领域的研宄热点。作为一种分布式的账本技术,区块链具有去中心化,不可篡改,安全可信等诸多优势,但同时面临耗能过高,吞吐量低等问题。共识算法作为区块链的核心,决定了区块链达成共识以及产生区块的方式。实用拜占庭共识算法(PBFT)作为目前联盟区块链使用较多的共识算法,具有耗能小,吞吐量高等优点,但存在对带宽要求较高,节点数量固定等缺陷。原创 2022-11-04 16:48:47 · 1958 阅读 · 0 评论 -
《区块链技术与应用》课堂笔记(四):BTC协议
央行要发行数字货币,如果直接为货币的面额等信息,用央行的私钥签名,然后使用的时候,用户直接拿央行的公钥验证签名,就这样用是行不通的,因为完全可以用这个数字货币再去买东西了,这叫双花攻击(double spending attack)。签名保证了面额等信息不能修改,但这个数字文件可以复制很多份。如果是纸质货币,花出去自己手里就没有了,这是数字货币和纸质货币的区别。原创 2022-10-07 17:09:06 · 2795 阅读 · 1 评论 -
《区块链技术与应用》课堂笔记(三):区块链的数据结构
存储的是某个结构体在内存中的地址。假如P是指向一结构体的指针,那么P里面存放的就是该结构体在内存中的起始位置。而除了要存地址之外,还要保存该结构体的哈希值H()。原创 2022-09-28 17:16:02 · 2033 阅读 · 0 评论 -
《区块链技术与应用》课堂笔记(二):密码学原理
①collision(这里指哈希碰撞) resistance : 例如x≠y H(x)=H(y) 两个不同的输入,输出却是相等的,这就称哈希碰撞。它是不可避免的,因为输入空间总大于输出空间。给出x,很难找到y,除非蛮力求解(brute-force)。该性质的作用:对一个message求digest比如message取m , m的哈希值是H(m)=digest 如果有人想篡改m值而H(m)不变,则无法做到。哈希碰撞无法人为制造,无法验证,是根据实践经验得来的。原创 2022-09-27 20:13:14 · 1923 阅读 · 0 评论