首页
学习
活动
专区
圈层
工具
发布

自动化推理与差分测试构建Cedar语言

使用Dafny内置的自动化推理能力,已经证明了代码满足各种安全和安全属性。其次,使用差分随机测试(DRT)来确认Cedar的生产实现(用Rust编写)与Dafny模型的行为匹配。...证明Cedar授权属性Cedar的授权算法被设计为默认安全,以下两个属性为例:显式许可——权限仅由单独的许可策略授予,不会因错误或默认获得;禁止覆盖许可——任何适用的禁止策略总是拒绝访问,即使有允许它的许可策略...将授权引擎建模为Dafny函数,并使用Dafny的自动化推理能力来陈述和证明显式许可和禁止覆盖许可属性。...谓词是接受参数并返回逻辑条件的函数,而Dafny引理是要证明的属性。...通过此更改,Dafny自动证明AllowedIfExplicitlyPermitted。它还证明了禁止覆盖许可(未显示)。已经使用Cedar Dafny模型证明了各种属性。

11710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    自动化推理与差分测试构建Cedar语言的技术实践

    确保Cedar的可信度为确保Cedar授权引擎做出正确决策,采用了名为“验证引导开发”的两阶段流程:使用Dafny验证感知编程语言对Cedar组件进行建模,通过自动化推理证明安全属性通过差分随机测试验证...Rust实现与Dafny模型的一致性Cedar授权属性证明Cedar授权算法默认具备以下安全属性:显式许可:权限仅通过许可策略授予,不会因错误或默认获得禁止优先:任何适用的禁止策略都会拒绝访问,即使存在允许策略通过...Dafny函数建模授权引擎,使用谓词和引理形式化这些属性。...例如,在纠正错误的实现后,Dafny成功证明了“显式许可”属性:function method isAuthorized(): Response { var f := forbids();...技术成果该开发流程发现了多个关键问题:IP地址解析库的bug策略解析器的细微错误应用数据处理和命名空间解析问题Dafny模型仅占生产代码1/6的代码量,为开发者和工具实现者提供了更清晰的技术参考。

    15110

    共识算法探讨:权益证明算法及其应用

    引言 权益证明(Proof of Stake,PoS)算法是区块链领域的一种重要共识机制,与工作量证明(Proof of Work,PoW)相比,PoS以其能源效率高和运行成本低的优势受到广泛关注。...本文将深入探讨权益证明算法的原理、其在区块链中的应用以及其优缺点。 权益证明算法的原理 权益证明通过持有和锁定加密货币来参与区块链网络的共识过程,而不依赖于计算能力。...验证者的选择:网络通过随机算法从持币者中选择验证者,这些验证者负责生成新的区块并验证交易。常用的随机算法包括随机选择和基于加密签名的选择。 质押和惩罚机制:验证者需要质押一定数量的加密货币作为保证金。...未来,随着PoS算法的不断优化和改进,其在安全性、去中心化和公平性方面将进一步提升,推动区块链技术的广泛应用。...结论 权益证明算法作为一种重要的区块链共识机制,通过质押和随机选择验证者的方式,确保了网络的安全性和去中心化。尽管面临一些挑战,PoS在能源效率和经济激励方面具有显著优势。

    46310

    共识算法探讨:委托权益证明算法及其应用

    本文将深入探讨委托权益证明算法的原理、其在区块链中的应用以及其优缺点。...委托权益证明算法的原理 委托权益证明(DPoS)通过持币者选举代表(验证者)来负责区块生成和网络维护,从而实现高效且去中心化的共识过程。...以下是一个简单的UML模型来表示DPoS的流程: 委托权益证明的应用 EOS EOS是最早采用DPoS机制的大型区块链平台之一。...未来,随着DPoS算法的不断优化和改进,其在安全性、去中心化和公平性方面将进一步提升,推动区块链技术的广泛应用。...结论 委托权益证明算法作为一种重要的区块链共识机制,通过持币投票选举代表的方式,确保了网络的高效运行和去中心化治理。尽管面临一些挑战,DPoS在能效和经济激励方面具有显著优势。

    47410

    用零知识证明解决投票安全

    用零知识证明解决投票安全 背景 我们经常会遇到需要给别人投票的情况,比如有些公司会组织员工给领导做反向打分,但是往往员工都不敢“真心实意”的打分,为什么呢?...但是,假如小明不想把D提供给小花,他仅仅想证明他知道D而已,他可以用零知识证明的体系解决他的问题。...hash值 2、 所有的父节点P是两个子节点L,R的hash值也就是P=hash(L,F) 3、 如果子节点只有L没有R那么P=hash(L,L) 4、 所有的叶子节点都是用户ID 5、这棵树的根我们用R...假如投票结果用VR(vote result)表示,用私钥sk对VR做约束: C3:VRH(vote result hash)= hash(sk, VR) 这样如果有人想投票就必须知道sk,否则不能构造出合法的...小花从后台取出来数据(π,VRH,VR)用函数V进行验证如下 V(vk,(R,VRH,VR), π) 如果V返回为true就把VR当作正确的投票结果记录,如果为false,说明投票不合法不记录。

    2.3K190

    【2023新书】程序证明,Program Proofs

    来源:专知本文为书籍介绍,建议阅读5分钟这本全面和高度可读的教科书教学生如何使用增量方法和验证感知的编程语言Dafny来形式化地推理计算机程序。...《程序证明》一书向大家展示了程序编写规范的意义,以及如何编写连接规范和程序的证明。...程序证明向学生展示了为程序编写规范意味着什么,程序满足这些规范意味着什么,以及如何编写将规范和程序联系起来的证明。K. Rustan M....为了强调程序证明的实用性,所有材料和例子都使用验证感知的程序证明语言Dafny,但不需要事先知道Dafny。...以易于阅读和学生友好的风格撰写逐步构建复杂的概念 全面涵盖如何编写证明以及如何指定和验证函数式程序和命令式程序 使用来自真实编程语言的真实程序文本,而不是伪代码 特色引人入胜的插图和动手学习练习 https

    45520

    共识算法探讨:工作量证明算法及其应用

    本文将深入探讨工作量证明算法的原理、其在区块链中的应用以及其优缺点。...工作量证明算法的原理 工作量证明是一种通过计算来证明工作的机制,具体实现方式为: 计算难题:节点需要解决一个计算难题,这个难题通常涉及找到一个满足特定条件的哈希值。...以太坊 以太坊最初也采用了工作量证明机制(Ethash算法),以确保网络的安全性和去中心化。...工作量证明的优缺点 优点 安全性高:PoW算法通过计算难度确保了攻击成本高,使得网络具有较高的安全性。 去中心化:由于任何人都可以参与挖矿,PoW算法促进了网络的去中心化。...结论 工作量证明算法作为区块链技术的重要组成部分,通过计算难题的方式确保了网络的安全性和去中心化。尽管面临能源消耗和效率低下的问题,PoW算法在许多区块链项目中仍然扮演着关键角色。

    57510

    Paxos算法的数学归纳法证明

    本文是对Paxos算法的证明,如有错误请指正。 预备知识 表面上看,Paxos像是一个Quorum算法再加上二阶段提交(2PC)。但并非是的二者相加。...相关笔记 Quorum算法学习笔记 数学归纳法 使用坐标系分析Paxos算法 证明步骤 Paxos算法需要证明,如果存在已经达成的共识,在节点的任意一个多数派中,ProposalID最大的那个决议必然存有当前共识内容...算法流程请参照Paxos算法学习笔记 数学表达 存在已达成的共识是{n0,v0},在节点的任意一个多数派中,一定存在ProposalID最大的决议{nx,vx}符合nx>=n0 && vx=v0。...递推 需证明 假设,命题A成立。 可推理出未来无论什么时间点,命题A都会成立。 证明 假设新的提案是为{n1,v1},n1=n0+1,根据Paxos流程: Preapre阶段 1....可得出结论,Paxos算法成立。 总结 Prepare达成多数派Promise是非常关键的节点,它将会拦截所有早的提案。

    66530

    Kosaraju算法、Tarjan算法分析及证明--强连通分量的线性算法

    为什么这个算法可以获得强连通分量呢?网上的证明很少,所以下面给出我的逻辑证明。...三、Kosaraju算法证明 我们按照算法描述的步骤往下走: 按照算法的结论,假设我们已经获得了一个逆后序排列,我们从中找两个元素,分别是V,W,W先出栈并且通过DFS找到了V。...证明完毕。 四、算法源码  因为代码很长,放在github上了。代码是在Idea中编译运行通过的,实现了一个基本的Graph数据结构,在此基础上实现了Kosaraju类,供参考。...源文件 ---- 五、更加迅速的tarjan算法 部分内容转自https://www.byvoid.com/blog/scc-tarjan 1.Tarjan算法 Tarjan算法是基于对图深度优先搜索的算法...在实际的测试中,Tarjan算法的运行效率也比Kosaraju算法高30%左右。此外,该Tarjan算法与求无向图的双连通分量(割点、桥)的Tarjan算法也有着很深的联系。

    2.9K60

    每周以太坊进展 20221119

    Permissionless)交易 EIP5988[24]:添加预编译 Poseidon 哈希函数 EIP5994[25] : Token Pods 扩展 (ERC20/ERC721) 开发者资料 Solplot[26]:用...基于签名的转账和批量授权、转账和撤销授权 通用路由器:在单个 swap 路由中的进行 ERC20 和 NFT 兑换 匿名 Vickrey 拍卖[29]:向未初始化的 CREATE2 地址发送竞标,概念证明...Scotia[36]:使用 Circom 电路和微软 Nova 验证器的中间件 安全 Zellic 的审计覆盖率跟踪器[37]:跟踪某些 DeFi 协议的合约审计覆盖率,链上代码与审计代码之间存在差异 evm-dafny...[38] : Dafny 中 EVM 的函数规范,允许对合约字节码进行验证 ---- (编者注:本翻译不代表登链社区的立场,也不代表我们(有能力并且已经)核实所有的事实并把他的观点分离开来。)...: https://github.com/ConsenSys/evm-dafny#readme

    80410
    领券