Alice

EthWorks:零知识证明与区块链扩展

折月煮酒 提交于 2020-07-28 13:56:43
本文为 EthWorks 撰写的一份关于零知识证明和区块链扩展方案关系的报告;对可扩展性问题、零知识证明和 ZK rollup 扩展方案都做了简洁的介绍。本译稿的校对得到了安比实验室的大力支持,他们对原报告解释不足及有所疏漏的地方做了相当多的说明(后文括号以 “安比按” 开头的文段即他们补充的内容)。在此对他们致以诚挚的谢意。 1. 引言 1.1 可扩展性问题 你可能已经很了解区块链的历史了(但我还是多废话一下)。2017 年,比特币开始登上主流媒体的头版头条,激起了前所未有的关注,全球人民都看到了该技术所面临的挑战。随着比特币日趋流行,比特币交易亦大量发生,网络拥堵达到了前所未有的程度。交易手续费的暴涨使得比特币转账变得脱离实际。最近,以太坊也显露出了同样的问题。相比低峰时期,以太坊上的矿工费(Gas Fee)已经增长了 30 至 50 倍。 所有这些现象反映出的问题是整个社区早就心知肚明的:比特币区块链的初始设计并不适合大规模普及。由于比特币每秒的最大交易处理量只有数笔,远远比不上 Visa 或 PayPal 等主流支付网络。我们通常将这个局限性称为区块链可扩展性问题。 以太坊的目的是比比特币更快地确认交易,但是远不足以解决这个问题。以太坊的交易吞吐量 —— 高于比特币,但是每秒交易处理量只有十数笔 —— 还不足以让该网络实现大规模采用。以太坊也会出现拥堵情况

最短路问题

二次信任 提交于 2020-07-28 10:05:23
* 加载本页面时,公式可能未渲染(显示乱码)请刷新该页面重试 单源最短路 Dijkstra算法(不带负权,单源最短路) (这里干讲不好说,所以直接上模板题来分析一下) 时间复杂度 \(O(N^2)\) (朴素) \(O((M+N)logN)\) (优化后) 空间复杂度 \(O(M)\) 模板题 [1] POJ-2387 Til the Cows Come Home Description Bessie is out in the field and wants to get back to the barn to get as much sleep as possible before Farmer John wakes her for the morning milking. Bessie needs her beauty sleep, so she wants to get back as quickly as possible. Farmer John's field has N (2 <= N <= 1000) landmarks in it, uniquely numbered 1..N. Landmark 1 is the barn; the apple tree grove in which Bessie stands all day is landmark N.

第十节:IdentityServer4隐式模式介绍和代码实操演练

左心房为你撑大大i 提交于 2020-07-27 08:40:29
一. 前言 1.简介   简化模式(implicit grant type)不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,步骤在浏览器中完成,令牌对访问者是可见的,且客户端不需要认证。 注:该模式也有很大的弊端,就是请求令牌在浏览器中能被看到。 2. 流程图 流程 (A)客户端将用户导向认证服务器。 (B)用户决定是否给于客户端授权。 (C)假设用户给予授权,认证服务器将用户导向客户端指定的"重定向URI",并在URI的Hash部分包含了访问令牌。 (D)浏览器向资源服务器发出请求,其中不包括上一步收到的Hash值(#号的部分)。 (E)资源服务器返回一个网页,其中包含的代码可以获取Hash值中的令牌。 (F)浏览器执行上一步获得的脚本,提取出令牌。 (G)浏览器将令牌发给客户端。 (H)客户端拿到令牌以后,就可以去请求资源服务器获取资源了。 3. 流程剖析 步骤A: 导向认证服务器,如下请求,进而再导向认证服务器的登录页面。 GET /authorize?response_type=token&client_id=s6BhdRkqt3&state=xyz&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb 参数包括:   response_type:表示授权类型,此处的值固定为"token",必选项。

第五节:IdentityServer4的Pkce机制、令牌刷新机制、混合授权模式

独自空忆成欢 提交于 2020-07-26 23:59:31
一. PKCE机制 1. 准备 (1). IDS4_Server1:认证授权服务器 (2). MvcClient1:web客户端  然后将上述两个项目配置成授权码模式(如何配置见上一节 IdentityServer4授权码模式介绍和代码实操演练 ) PS: PKCE机制是在授权码模式的基础上,增加了几个验证参数,使其更加安全。 2. 代码配置 (1).IDS4_Server1中的Config1,新增 RequirePkce = true, 开启Pkce授权校验。 (2).MvcClient1中的ConfigureServices中, 新增options.UsePkce = true;开启Pkce. (默认就是true,所以可以省略) PS:实际上在上一节的授权码模式中已经开启了pkce,只是没有单独点明增加的参数的含义。 3. 剖析测试 (1).在导向认证服务器的请求和确认授权页面的请求中,新增两个参数:code_challenge 和 code_challenge_method. (2).客户端携带授权码请求认证服务器的时候,携带的参数中新增: code_verifier 二. 令牌刷新机制 1. 准备 (1). IDS4_Server1:认证授权服务器 (2). MvcClient1:web客户端  然后将上述两个项目配置成授权码模式(如何配置见上一节

TypeScript类型检查机制

会有一股神秘感。 提交于 2020-07-24 03:35:25
类型检查机制:TypeScript编译器在做类型检查时,所秉承的一些原则。 作用:辅助开发,提高开发效率。 一、类型推断 不需要指定变量的类型(函数的返回值类型),TypeScript可以根据某些规则自动地为其推断出一个类型。 1,基础类型推断 let a // let a: any let b = 1 // let b: number let c = [] // let c: any[] let c2 = [1] // let c2: number[] // 设置函数默认参数 // 确定函数返回值的时候 // let function1: (x?: number) => number let function1 =(x=1)=> x+1 // x=>number //function1返回number类型 2,最佳通用类型推断 // 最佳通用类型推断 // 从多个类型推断出一个类型的时候,尽可能的兼容类型 let arr = [1, null ] // let arr: (number | null)[] 3,上下文类型推断 上面两种类型推断都是从右向左的推断,也就是根据表达式右侧的值推断表达式左边变量的类型。还有一种类型推断是从左到右。这就是上下文类型推断。 上下文类型推断通常发生在事件处理中。 window.onkeydown = (event)=> { console

WebRTC中的信令和内网穿透技术 STUN / TURN

霸气de小男生 提交于 2020-05-08 15:27:37
转自:https://blog.csdn.net/shaosunrise/article/details/83627828 Translated from WebRTC in the real world: STUN, TURN and signaling. 最近刚接触到WebRTC,网上看到这篇介绍WebRTC的文章不错,仔细读了读还算有用,分享出来能帮到一些刚入门的人也挺好的,翻译不好的地方可以直接看原文。 WebRTC可以进行P2P点对点通信,但是WebRTC仍然需要服务器: 客户端需要服务器交换一些数据来协调通信,这称之为信令。 使用服务器来应对NAT网络地址转换和防火墙。 在本文中,将介绍如何构建信令服务,以及如何使用STUN和TURN服务器来处理WebRTC在实际使用过程中的连接问题。本文还将解释WebRTC应用程序如何处理多方通话,并与诸如VoIP和PSTN(AKA电话)之类的服务进行交互。 如果您不熟悉WebRTC的基本知识,我们强烈建议您在阅读本文之前先看一下如何开始使用WebRTC。 什么是信令? 信令用于协调通信,WebRTC应用开始通话之前,客户端需要交换一些信息(信令): 用于打开或关闭通信的会话控制消息。 错误信息。 媒体元数据,例如编解码器和编解码器设置,带宽和媒体类型。 用于建立安全连接的的秘钥信息。 主机的IP和端口等网络信息。

SDNU 1110.The Little Girl who Picks Mushrooms(思维)

浪子不回头ぞ 提交于 2020-05-08 08:22:54
Description It's yet another festival season in Gensokyo. Little girl Alice planned to pick mushrooms in five mountains. She brought five bags with her and used different bags to collect mushrooms from different mountains. Each bag has a capacity of 2012 grams. Alice has finished picking mushrooms in 0 ≤ n ≤ 5 mountains. In the i-th mountain, she picked 0 ≤ wi ≤ 2012 grams of mushrooms. Now she is moving forward to the remained mountains. After finishing picking mushrooms in all the five mountains, she want to bring as much mushrooms as possible home to cook a delicious soup. Alice lives in

Python学习笔记---Day 1

最后都变了- 提交于 2020-05-07 19:34:15
#缘由  因为想读 算法图解 这本书,入门了解下算法,但又因为这本书的示例代码是用 Python 写的,所以就找了个实验室的小姐姐借了本 Python编程——从入门到实践 ,学一下 Python 的基础语法。  那么就开始吧。 #第一章 起步 ##1.1 搭建编程环境 官网下载 Python 3 +文本编辑器 Geany #第二章 变量和简单数据类型 ##2.1 变量  在程序中可随时修改变量的值,而 Python 将始终记录变量的最新值。 message=“Hello World!” print(message) 关于变量的命名和使用,应遵循: 变量名只包含字母、数字、下划线。数字不能打头! 变量名不能包含空格,但可用下划线来分割其中的单词 不要将 python 关键字和函数名用作变量名 变量名应既简短又具有描述性 慎用小写字母l和大写字母O。 使用小写的 python 变量名 ##2.2 字符串  字符串就是一系列字符。在 python 中,用引号(单双都行)括起的都是字母串。 ‘I told my friend:"python is my favorite language!"’ "one of python's strengths is its diverse and supportive community." 下面来看一些使用字符串的方式 修改大小写 name="ada

使用域账号统一管理cisco网络设备

给你一囗甜甜゛ 提交于 2020-05-06 02:49:15
1、思科设备和微软系统整合的背景: 公司内部有一定数量的客户端,为了实现统一化,在管理内部部署了域架构,这样可以通过组策略对客户端进行批量化管理,提高了管理的效率。 同样公司内部有一定数量的网络设备(交换机,路由器,防火墙等),在远程管理的时候是通过Telnet方式。 在本案例中,希望用户远程管理网络设备的时候通过到微软的DC(域控制器)上进行身份验证,这样实现了身份验证的单一化,避免维护多套身份验证的架构,大大的简化了公司IT的管理。 2、搭建模拟环境: 如图:搭建的环境核心就为上图所示,一台DC域控制器(对网络进行域管理)、一台RADIUS服务器(提供cisco设备认证和微软环境兼容整合)、一台交换机、一台路由器、一台PC客户机。 (此实验涉及到 cisco模拟器GNS3和虚拟机VMware的整合 中的环境搭建步骤) 1) 首先在GNS3模拟器中搭建下图环境:交换机的位置我们用云来替代,按照系列之一的方式把云与我们的虚拟机网卡VMnet1桥接起来。 (具体步骤见 cisco 模拟器GNS3 和虚拟机VMware 的整合 ) 1) 再在VMware中开启三台虚拟机:a)03Server1;b)03Server2;c)XP1,分别依次模拟a)DC域控制器;b)RADIUS服务器;c)Alice客户机。把三台网卡桥接到VMnet1上,使他们与GNS3中的云连接起来

【信息安全作业5】散列函数的应用及其安全性

馋奶兔 提交于 2020-05-06 00:17:52
目录 散列函数的具体应用。 结合生日攻击、以及2004、2005年王晓云教授有关MD5安全性和2017年google公司SHA-1的安全性,说明散列函数的安全性以及目前安全散列函数的发展。 结合md5算法中的选择前缀碰撞以及第二个链接中的helloworld.exe和goodbyworld.exe两个可执行文件的md5消息摘要值和两个文件的执行结果说明md5算法来验证软件完整性时可能出现的问题。 链接1: https://www.win.tue.nl/hashclash/ 链接2: http://www.win.tue.nl/hashclash/SoftIntCodeSign/ 1.散列函数的具体应用 1、承诺方案   一个承诺方案或一个位承诺方案允许一个用户承诺一个值而不揭示该值,同时允许用户在某个时刻揭示他所承诺的值。   实例:发送者Alice将她所承诺的值锁在一个箱子里面,将箱子给接收者Bob,当Bob执行了特定操作后,Alice将钥匙给Bob以打开箱子。这样既保证了Alice承诺的值不被改变,又保证了Bob在特定的操作结束前不能知道Alice所承诺的值。由此可见,比特承诺可以适用于双方互不信任的环境。 2、口令认证    通常口令认证不是以明文形式存储的,而是以摘要形式存储的。为了认证一个用户,将用户提供的口令的Hash值与存储的Hash值相比较,相同则认证通过