自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

转载 paillier密码

paillier密码加密过程  在进行加解密之前,必须先产生可以用来加密的公钥n和g。n是两个大小相近的两个大素数的乘积:n=p·q。g是Zn2中的半随机数,同时g的阶必须在Z∗n2中并且能被n整除。由于g必须符合一些特殊性质(我们将在解密部分提出)所以Z∗n2中会有很少一部分元素不能用作g,意味着g是一个半随机数。为了简单计算,我们先选取两个小素数p=7,q=11计算得到n=p·q=77。从Z∗n2中选择g(g的阶必须是Z∗n2中元素并且是n的倍数。除此之外,g需要满足的另一个性质将会在解密时详细描述

2021-01-08 19:00:56 1022

原创 消息认证码

消息认证码最近在看MPC部分可能会涉及到,先记下来做个笔记消息认证码目前应该是三类MAC消息认证码基于DES的消息认证码(CBC-MAC)基于hash的消息认证码(HMAC)MAC定义:将通信双方共享的密钥K和消息m作为输入,生成一个关于K和m的函数值MAC,将其作为认证标记(Tag)。发送时,将消息和认证码同时发送给接收方,若接收方用消息和共享密钥生成相同的消息认证码,则认证通过具体过程看下图单纯的mac不能保证安全性,消息在传输过程中会泄露还有几个改进方案a.中是消

2020-12-30 10:51:17 458

原创 solidity_入门6

solidity函数部分pragma solidity ^0.4.16;//这部分要理解清楚 memory 和 storage 的不同/* storage 函数外部的变量默认存储在storage memory 函数内部的变量默认存储为memory中 详情见如下表中 storage memory 存储的变量 函数外部声明的变量,全局变量 函数内部声明的变量

2020-12-23 16:34:16 119 1

原创 solidity_入门5

solidity函数部分pragma solidity ^0.4.16;contract functiontest{ // 函数重载 //当函数名字相同,要么1.传入的参数类型不同;2.传入的参数数量不同; // address的存储类型为uint160; uint public test= 0; function fun1(uint num1,uint num2) { test = 10; } function fu

2020-12-23 16:33:07 111

原创 solidity_入门4

solidity_4全局变量和mappingpragma solidity ^0.4.16;contract maptest{ //定义映射mapping(类型1 => 类型2) 映射名称 mapping(address => uint) mapone; mapping(uint => string) maptwo; uint sum = 0; function test(string name) public {

2020-12-23 16:32:04 91

原创 solidity_入门3

地址和交易部分pragma solidity ^0.4.16;contract addressTest{ //以太坊的地址uint160 address 可以相互转换 address account1; address account2 = 0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db; function returnaddress1() public view returns(address){

2020-12-23 16:27:44 99

原创 solidity_入门2

solidity的数组操作pragma solidity ^0.4.16;contract byteschange{ // 固定长度的数组变换,如bytes1-bytes128 bytes10 testword = 0x68656c6c6f776f726c64; //helloworld function tantest1() public view returns (bytes1){ return bytes1(testword);

2020-12-23 16:25:05 97

原创 solidity_入门1

solidity学习1入门操作pragma solidity ^0.4.16;contract HelloWorld { string myName = "xujialu,helloworld"; bytes1 num1 = 0x12; bytes2 num2 = 0x1212; bytes3 public num3=0x123456; bool flag = false;

2020-12-23 16:22:57 122

原创 ETH_22

北京大学肖臻老师《区块链技术与应用》智能合约背景智能合约:运行在区块链系统上的一段代码,代码逻辑定义了合约内容。智能合约的账户保存了合约当前的运行状态:balance:当前余额nonce:交易次数code:合约代码storage:存储,数据结构为一棵MPT智能合约编写代码为Solidity,其语法与JavaScript很接近(一点也不像)。下图显示了智能合约的代码结构账户调用只有外部账户才能调用合约账户,合约账户不能主动发起交易合约之间 调用方式直接调用错误处理:直接

2020-12-02 20:51:10 313

原创 ETH_20

北京大学肖臻老师《区块链技术与应用》比特币难度调整是每隔2016个区块调整难度,从而达到维持出块时间10min的目标。而以太坊则与之不同,每个区块都有可能会进行难度调整。以太坊难度调整较为复杂以太坊难度调整难度炸弹为什么要设置难度炸弹?根据以上以太坊难度调整算法可以看到,该算法可以很好地动态调整挖矿难度,从而保障系统整体出块时间维持在15s左右。但之前在挖矿算法的文章中有介绍到,以太坊在设计之初就计划要逐步从POW(工作量证明)转向POS(权益证明),而权益证明不需要挖矿。从旁观者角度来

2020-11-28 10:52:08 127

原创 ETH_18

北京大学肖臻老师《区块链技术与应用》ETH_18GHOST协议背景BTC系统中出块时间为10min,而以太坊中出块时间被降低到15s左右,虽然有效提高了系统反应时间和吞吐率,却也导致系统临时性分叉变成常态,且分叉数目更多。这对于共识协议来说,就存在很大挑战。在BTC系统中,不在最长合法链上的节点最后都是作废的,但如果在以太坊系统中,如果这样处理,由于系统中经常性会出现分叉,则矿工挖到矿很大可能会被废弃,这会大大降低矿工挖矿积极性。而对于个人矿工来说,和大型矿池相比更是存在天然劣势。对此,以太坊设计了

2020-11-24 19:00:46 420

原创 ETH_16

北大肖臻老师《区块链技术与应用》ETH_16比特币和以太坊模式不同比特币:BTC系统是基于交易的账本,系统中并未显示记录账户有多少钱,只能通过UTXO进行推算。但实际中,使用起来较为别扭。A转给B钱的时候,需要说明币的来源。实际中只需要存钱说明来源,花钱则不用。此外,账户中的钱在花的时候,必须一次性全部花出去。以太坊:以太坊系统则采用了基于账户的模型,与现实中银行账户相似。系统中显示记录每个账户以太币的数量,转账是否合法只需要查看转账者账户中以太币是否足够即可,同时也不需要每次全部转账。同

2020-11-23 16:02:45 241

原创 ChainAchor 相关学习

链接:https://www.8btc.com/article/87463

2020-10-30 21:17:29 90

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除