2022年5月9日
摘要: 总结:BN256是一种基于素数域Fp的曲线。 大多的密码学配对都来源于椭圆曲线上的Tate Pairing,自从Miller[28,29]设计出计算椭圆曲线上配对的算法后,一系列的基于Tate Pairing的研究相继出现,通过构建合适的椭圆曲线、通过选取特定的有限群参数,旨在实现最高效的、不同安全 阅读全文
posted @ 2022-05-09 19:13 尽管我们手中空无一物 阅读(1470) 评论(0) 推荐(0) 编辑
  2022年5月7日
摘要: 1、Receive Ether Function 以太币收发函数 声明方式如下: receive() external payable { } 功能:通过合约接收和转发以太币 特点: (1) 一个合约至多含有一个receive()函数 (2) 没有function关键字 (3) 必须含有payabl 阅读全文
posted @ 2022-05-07 22:31 尽管我们手中空无一物 阅读(1939) 评论(0) 推荐(0) 编辑
  2022年4月9日
摘要: 编写一个简单的支付通道: Alice是发件人,Bob是收件人,若Alice和Bob之间含有多笔交易,每次都通过以太坊钱包转账,矿工不仅会扣取手续费,且以太坊的出块速度约为10-15s,因此存在交易延迟。 在存在多笔交易时,构建一个简单但完整的支付通道,使用椭圆曲线加密签名以实现安全、即时且无交易费用 阅读全文
posted @ 2022-04-09 21:02 尽管我们手中空无一物 阅读(617) 评论(0) 推荐(0) 编辑
摘要: 在Solidity中恢复消息签名者地址: 一般来说,ECDSA签名由r和s两个参数组成。以太坊中的签名包括名为v的第三个参数,可以使用它来验证哪个帐户的私钥用于对消息进行签名,以及交易的发送者。Solidity提供了一个内置函数ecrecover,它接受消息message以及r、s和v参数,并返回用 阅读全文
posted @ 2022-04-09 11:40 尽管我们手中空无一物 阅读(638) 评论(0) 推荐(0) 编辑
  2022年4月7日
摘要: 远程购买商品需买家和卖家相互信任,在下面的例子中,买家和卖家必须将商品价值(1*value)的两倍(2*value作为定金)放入合约中作为代管。由于没有办法确定货物是否到达买方,一旦发生这种情况,这笔钱就会被锁在合同中,直到买家确认收到了物品。交易成功后,买家得到的是价值(1*value)和物品,而 阅读全文
posted @ 2022-04-07 10:58 尽管我们手中空无一物 阅读(223) 评论(0) 推荐(0) 编辑
  2022年3月30日
摘要: 盲拍: 盲拍分为竞价阶段和最终竞价比较阶段,在竞价期间,竞价者并不发送他们的真实竞价,而是一个哈希数据(bytes32 blindedBid)。 竞价期结束后,竞价者必须出示他们的竞价,即多个真假竞价信息数组组合,哈希数据用于帮助合约检查哈希值是否与竞价期提供的哈希值相同。 此外,为防止竞价者在赢得 阅读全文
posted @ 2022-03-30 09:40 尽管我们手中空无一物 阅读(210) 评论(0) 推荐(0) 编辑
  2022年3月29日
摘要: solidity中数据位置分为:memory,storage,calldata 目前,引用类型包括struct(结构体)、array(数组)和mapping(映射),使用引用类型必须明确地提供存储该类型的数据位置(memory、storage或calldata): memory(生存期存在于func 阅读全文
posted @ 2022-03-29 19:53 尽管我们手中空无一物 阅读(615) 评论(0) 推荐(0) 编辑
  2022年3月28日
摘要: 简单公开拍卖基本思想:在竞价期间每个节点都可以调用function bid()参与竞价,若最高出价被抬高,之前的最高出价节点可以调用function withdraw()拿回竞价金额,最终调用function auctionEnd()获取竞价结果。 pragma solidity ^0.8.4; / 阅读全文
posted @ 2022-03-28 20:34 尽管我们手中空无一物 阅读(291) 评论(0) 推荐(0) 编辑
摘要: Solidity中的error用于解释操作失败的原因,可以继承,参数列表可以只定义数据类型或为空,不能重载,不能作为控制流的一种手段,合约内部和外部均可定义。 调用时必须用revert修饰,revert用于回退error中数据给调用者并回退当前调用中所有更改。 pragma ^0.8.4; erro 阅读全文
posted @ 2022-03-28 19:40 尽管我们手中空无一物 阅读(545) 评论(0) 推荐(0) 编辑
摘要: pragma solidity >=0.7.0 <0.9.0; //投票实验 contract Ballot{ struct Voter{ uint weight;//投票(单票)权重 bool voted;//是否投过票,true为投过票,bool类型默认值为false address deleg 阅读全文
posted @ 2022-03-28 10:58 尽管我们手中空无一物 阅读(418) 评论(0) 推荐(0) 编辑