
区块链
文章平均质量分 86
Camina hacia ti
这个作者很懒,什么都没留下…
展开
-
【论文阅读】Smart Contract Vulnerability Detection Using Graph Neural Networks
的调用,这些函数对于检测特定漏洞非常重要。例如,对于重入漏洞,主节点对传递函数或内置。原创 2024-04-09 19:58:18 · 1891 阅读 · 0 评论 -
【源码阅读】EVMⅢ
参考[link](https://blog.youkuaiyun.com/weixin_43563956/article/details/127725385大致流程如下:编写合约 > 生成abi > 解析abi得出指令集 > 指令通过opcode来映射成操作码集 > 生成一个operation以太坊虚拟机的工作流程:由solidity语言编写的智能合约,通过编译器编译成bytecode,之后发到以太坊上,以太坊底层通过evm模块支持合约的执行和调用,调用时根据合约获取代码,即合约的字节码,生成环境后载入到 EVM原创 2024-03-19 18:26:46 · 1149 阅读 · 0 评论 -
【源码阅读】evmⅡ
参数介绍:input:caller是调用者地址addr是被调用的合约的地址input是数据gas是执行调用的初始gas费用value是转账金额output:ret是返回数据leftOverGas是执行结束之后剩余的gas值err是过程中出现的错误所以在调用合约的时候,一个文件里面可以有多个合约。做过一个部署智能合约的实验,在编写一个文件1.sol之后编译运行,会生成合约1的地址和字节。如果在此基础上对其修改,仍然保存为1.sol,再编译运行会生成合约2的地址和字节。原创 2024-03-19 16:40:40 · 1113 阅读 · 0 评论 -
【源码阅读】evmⅠ
代码位置如下:参考以太坊中有一个很重要的用途是智能合约,而其中evm模块是实现了执行智能合约的虚拟机。evm可以逐条解析执行智能合约的指令。evm中的核心对象是EVM,代表一个以太坊虚拟机。其内部主要依赖:解释器Interoreter(循环解释执行给定的合约指令,直接遇到退出指令)、配置和状态数据库StateDB(用来提供数据的永久存储和查询)原创 2024-03-18 22:12:04 · 1437 阅读 · 2 评论 -
【论文阅读】Ethereum Blockchain Smart Contract Vulnerability Detection Using Deep Learning
静态分析器用于在开发过程中发现智能联系人中的漏洞,但非常耗时。文章提出了一种基于机器学习的方法来检测智能合约中的重入漏洞,系统由三个组件组成:数据准备、Op2Vec 和 LSTM 模型。(1)收集了 30,000 个智能合约,将它们分成两组,每组 15,000 个,分别用于 Op2Vec 生成和 LSTM 训练。(2)使用 Skip-Gram 算法将操作码关键字映射到向量表示,Op2Vec。(3)使用 Slither 静态分析器进行标记。(4)双向LSTM模型。link。原创 2024-03-18 20:17:40 · 1036 阅读 · 2 评论 -
【论文阅读】A Performance Measurement and Optimization Mechanism for Blockchain Mining Pool System
区块链矿池系统的性能测度与优化机制矿池机制可以提高获得正确区块的概率,并稳定矿工的奖励,但是目前由于节点之间的算例差异较大、共识算法等因素,面临着越来越多的性能挑战。在对矿池架构分析的基础上,提出了一种数值模型MENM(Miner Efficiency Numerical Model)来衡量矿机的计算效率,并提出了一种性能调优机制DDCT(动态难度计算和调优),用于根据MENM值调整矿池中单个矿工的难度,以提高矿池的效率。所提出的调优机制还针对一个小型实验性PoW矿池进行了测试,以验证其效果。原创 2024-03-18 19:49:46 · 1135 阅读 · 2 评论 -
【论文阅读】ReChecker
近十年来,智能合约安全问题导致的巨大损失引起了工业界和学术界越来越多的关注。为了在智能合约漏洞检测任务中取得令人鼓舞的效果,研究人员开始尝试使用逻辑规则、符号分析和形式分析等方法。然而,现有的检测工具远不能令人满意。在本文中,我们尝试使用基于深度学习的方法,即带有注意力机制的双向长短期记忆( BLSTM-ATT ),旨在精确地检测重入错误。此外,我们提出了面向智能合约的合约片段表示,这有助于捕获必要的语义信息和控制流依赖。原创 2024-03-05 15:12:44 · 162 阅读 · 3 评论 -
【论文阅读】关于智能合约的漏洞检测
两篇论文,都是关于智能合约漏洞检测的综述文章[1]崔展齐,杨慧文,陈翔等.智能合约安全漏洞检测研究进展[J/OL].软件学报:1-33[2024-03-05].https://doi.org/10.13328/j.cnki.jos.007046.[2]王丹,黄松,王兴亚.以太坊智能合约测试研究综述[J].信息技术与信息化,2023(10):52-58.两篇文章中主要内容都是总结了13种常见的漏洞类型并进行简单介绍、几类测试方法以及未来的工作和展望。原创 2024-03-05 14:04:14 · 2092 阅读 · 2 评论 -
【源码阅读】blockchain Ⅲ
writeKnownBlock使用已知块更新头块标志并在必要时引入链式重组。原创 2024-01-18 16:06:38 · 1020 阅读 · 0 评论 -
【源码阅读】blockchainⅡ
该函数是对新的区块的数据处理,payload是一个字节切片,表示新块的数据;peer是一个peer.ID类型的变量,表示发送新块数据的对等节点。原创 2024-01-18 14:27:46 · 1050 阅读 · 0 评论 -
【源码阅读】blockchainⅠ
这是一个名为BlockChain的结构体,它包含了区块链的各种属性和方法。原创 2024-01-16 21:13:20 · 616 阅读 · 0 评论 -
【源码阅读】事件订阅包v2
Feed 实现一对多订阅,其中事件的载体是通道。发送到 Feed 的值会同时传送到所有订阅的通道。与Typemux的对比链接:TypeMux是一个同步的事件框架,当有一个被订阅的事件发生的时候,会遍历该事件对应的订阅者通道,通知其中的订阅者,但是当订阅者1没有接受该消息的时候,发送进程会被阻塞,会影响对订阅者2的发送。所以Feed作为流式事件框架,是否是异步的取决于是否有缓存通道,当设计有缓存通道的时候是异步的,否则就是同步的。字段是用来确保init只会执行一次sendLock。原创 2024-01-12 17:00:13 · 928 阅读 · 0 评论 -
【源码阅读】交易池txs_fetcher&txs_noncer
txs_noncer。原创 2024-01-10 18:24:08 · 926 阅读 · 0 评论 -
【源码阅读】交易池txs_list
accountSet 只是一组用于检查是否存在的地址,以及一个能够从交易中派生地址的签名者。原创 2024-01-10 17:41:05 · 1376 阅读 · 0 评论 -
【源码阅读】交易池txs_pool
重要接口:ITxsPool的实现:1、Has根据输入的hash值判断交易池中是否有该交易,返回bool值input:hashoutput:bool函数遍历所有当前可处理的交易,按原始帐户分组并按随机数排序。input:enforceTips 参数可用于对挂起的交易进行额外的过滤,只返回那些在下一个挂起的执行环境中有效提示足够大的交易。return pending;返回的交易集是一个副本,可以通过调用代码自由修改。input:enforceTipsoutput:pending(账户+交易原创 2024-01-10 11:26:33 · 1033 阅读 · 0 评论 -
【RPC】基础
RPC是一个计算机通信协议,允许运行在一台计算机的程序调用另一台计算机的子程序,允许调用远程服务,是一个C/S模式。下图是百度百科的信息,可以看到,它的作用就是我想用到的。普通参数的传递是简单的,但是如果是引用参数,比如指针,由于不同的存储,可能引用会失效,这样就需要将参数的副本也传送过去,传递一个指向服务器函数的指针,然后将对象发送回客户端,复制它的引用。:类似客户进程,客户端是无法区分的,将参数打包成消息,然后调用本地操作系统,来将消息发送给服务器操作系统。:也就是所说的调用方,发起调用。原创 2023-12-01 13:43:23 · 336 阅读 · 0 评论 -
【RPC】前传
服务器里面的代码是放在gotest文件夹里面的,而每一次运行都需要cd gotest,没有办法记录,每次执行一条命令都会创建一条session,而一条session默认只能执行一条命令,并且两条命令不可以分开写。test.py里面只有一个变量a,并且数值是固定的,只是需要输出而已,里面的username和pwd还有Ip是自己的信息。1、主要是使用ssh依赖进行连接,但是大概率是需要手动添加的,自动添加一直在报错。但是可以看到仅仅是一个加法,花费的时间是很长的,数据来回的传输是很耗时的。原创 2023-11-09 16:04:07 · 610 阅读 · 0 评论 -
【区块链】复习十二之权益证明
权益证明1、工作量证明缺点2、权益证明3、股份权益证明1、工作量证明缺点浪费资源(如电费消耗、能源消耗)挖矿中心化(比特币网络中大部分算力集中于少数几个矿池中)51%攻击2、权益证明权益证明使用伪随机数的方式指定持有货币的人为交易的验证者,并创造新的区块。思想:从算力投票变为权益投票。参与者只需要投资系统的代币并在特定时间内验证自己是否为下移区块创建者,就可以完成下一区块的创建。验证者被选中为下一区块创造者的概率与其所拥有的系统中代币的数量成正比。权益证明要求证明人提供一定数量加密原创 2022-04-23 19:47:24 · 5568 阅读 · 0 评论 -
【区块链】复习之十一以太坊&智能合约
以太坊挖矿1、背景知识2、以太坊挖矿算法3、以太坊挖矿难度3.1难度调整3.2自适应难度调整3.3自适应难度调整系数3.4难度炸弹4、智能合约1、背景知识比特币中,收益和算力是相关的,矿工的挖矿设备不断更新,门槛越来越高,导致矿工数量的下降,大多数的收益集中于少部分矿工,这种节点的集中和区块链的去中心化是相违背的。Ethash的计算过程中增加的对内存的要求而抵抗ASIC矿机的优势。所以以太坊的共识算法,期望达到两个目的:抗ASIC性:为算法创建专用硬件的优势也尽可能小。轻节点可验证性:一个区块链原创 2022-04-23 19:29:33 · 130 阅读 · 0 评论 -
【区块链】复习十之GHOST协议
GHOST协议1、以太坊出块时间2、GHOST协议2.1叔父区块奖励2.2GHOST协议分析1、以太坊出块时间平均时间是15s.出块时间短的好处:①交易更快捷,更快被写进区块链②系统响应时间更快缺点:①分叉情况更频繁,不利于区块链的安全(算力分散了)②加剧对个体矿工的不公平,造成挖矿集中化现象2、GHOST协议为了解决出块时间短带来的挑战,以太坊采用修正后的GHOST协议(贪婪最重可见子树协议、最重合法链)一个被区块B包含的叔父区块必须包含:①是区块B的k代祖先区块的直接子类,其原创 2022-04-23 18:51:42 · 897 阅读 · 0 评论 -
【区块链】复习九之以太坊数据结构
以太坊数据结构1、账户1.1账户分类1.1.1外部账户1.1.2合约账户2、MPT树2.1Trie树2.2Patricia Trie2.3MPT树3、消息和交易4、状态转换函数5、以太坊区块5.1区块头5.2区块体1、账户比特币是采用基于交易的账本模式,优点有:隐私保护比较好;缺点有:没有显示地记录账户余额,交易不方便(要一次性花出去)以太坊是基于账户的账本模式。优点:显示地记录账户余额交易更加方便对双花攻击(支付方不诚实)有着天然的防御缺点:易遭受重放攻击(收款方不诚实)。1.1账户分类原创 2022-04-20 11:53:53 · 5905 阅读 · 0 评论 -
【区块链】复习八之以太坊概述
以太坊概述1、以太坊历史2、以太坊基本概念2.1以太币2.2智能合约2.3汽油2.4以太坊虚拟机2.5Solidity语言2.6去中心化应用3、以太坊关键技术4、以太坊与比特币1、以太坊历史2013年启动了以太坊项目。以太坊创始人:维塔利克·布特以太坊四个阶段:边境、家园、都会、宁静①边境只有命令行,没有图形界面,主要功能是让用户有时间加入以太链②家园具有图像界面。在2016年以太坊进行了第一次硬分叉,分叉后产生两条链,以太坊ETH和以太坊经典ETC③都会加入了浏览器功能,还拥有应用商原创 2022-04-20 11:04:12 · 4788 阅读 · 0 评论 -
【区块链】复习七之比特币分叉
比特币分叉1、分叉2、硬分叉3、软分叉4、比特币系统4.1比特币网络4.2比特币隐私1、分叉分叉是指区块链从一条链变成两条或者多条链。分叉分为:状态分叉和协议分叉。状态分叉:由于对比特币当前的状态产生分歧而导致的分叉协议分叉:由于对比特币协议产生分歧而导致的分叉根据对协议修改的内容不同,协议可以分为硬分叉和软分叉2、硬分叉如果区块链软件的共识规则被改变,并且这种规则改变无法向前兼容,旧节点无法认可新节点产生的区块,区块链发生永久性分歧,即为硬分叉如区块大小的改变。假设新规则从1M变成4M,原创 2022-04-19 22:32:16 · 1925 阅读 · 0 评论 -
【区块链】复习五之比特币共识协议
比特币的共识协议1、概述2、工作量证明3、最长合法连4、51%攻击5、比特币安全1、概述共识协议,即区块链中各个节点达成共识的协议维护系统的运作顺序与公平性,统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者。2、工作量证明3、最长合法连4、51%攻击5、比特币安全...原创 2022-04-18 21:24:03 · 346 阅读 · 0 评论 -
【区块链】复习Ⅳ
比特币数据结构1、哈希指针2、默克尔树3、默克尔证明4、双花问题5、UTXO模型6、比特币区块1、哈希指针普通指针:存储结构体在内容中的起始位置,无法检测内容是否被篡改哈希指针:存储结构体的哈希值,从而可以检测结构体内容是否被篡改区块链是由哈希值真相连的链表篡改证明记录,只需要保存最后一个区块的哈希值,就可以检测前面的区块是否被篡改。也可以用哈希值进行验证其他节点提供的信息是否是正确的。·哈希指针可以用于链结构、树结构,但是不可以用于环结构。哈希指针只可以应用于无环结构2、默克尔树二叉树原创 2022-04-18 20:03:25 · 969 阅读 · 0 评论 -
【区块链】复习三之密码学基础
密码学基础1、哈希函数1.1哈希函数性质1.2典型哈希函数1.3哈希函数在区块链中的使用1.3.1数据加密1.3.2挖矿2、加密算法2.1对称加密算法2.2非对称加密算法2.2.1椭圆曲线加密算法ECC2.3公私钥2.3.1私钥2.3.2公钥2.3.3地址1、哈希函数什么是哈希函数?哈希函数性质?典型哈希函数?区块链中的哈希函数?哈希函数又称散列函数、散列算法,是一种从任何一种数据中创建小的数字“指纹”的方法(维基百科)H(M):M任意长度,输出固定长度1.1哈希函数性质1)正向快速给定明文,原创 2022-04-17 21:34:06 · 897 阅读 · 0 评论 -
【区块链】复习二之区块链概述
区块链1、概念2、发展历史2.1密码朋克2.2哈希现金2.3比特币诞生2.4比特币与世界产生联系2.5比特币与法币2.6比特币与区块链3、区块链技术的三个阶段3.1技术起源3.2区块链1.03.3区块链2.04、区块链的技术结构&体系结构4.1区块链1.0运行过程4.2区块链类型5、区块链特征6、区块链关键技术6.1密码学6.1.1非对称加密算法6.1.2哈希算法6.2共识算法6.2.1POW工作量证明6.2.2POS权益证明6.2.3DPOS委托权益证明6.2.4PBTF实用拜占庭容错算法6.3智原创 2022-04-17 20:55:54 · 1823 阅读 · 0 评论 -
【区块链】复习一之概述
复习一1、一些疑问2、用途2.1金融领域2.2医疗健康2.3供应链溯源3、学习目录区块链2008年创立1、一些疑问1.区块链是比特币吗?它们之间是什么关系?区块链不是比特币,区块链实质上是一个分布式账本,而比特币是一种加密数字货币,人们把比特币的底层技术称为区块链。2.比特币是什么?是谁发行的货币?在哪领?比特币是一种加密数字货币,最早是由中本聪提出的这一概念。当拥有了自己的加密钱包之后,可以通过挖矿或者交易来获得比特币。3.为什么比特币现在价格这么高?区块链本身的一些特性、比特币原创 2022-04-17 19:16:33 · 76 阅读 · 0 评论