(The Idea of Smart Contracts)智能合约

2023-10-07 22:32

本文主要是介绍(The Idea of Smart Contracts)智能合约,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智能合约

Copyright(c)1997 by Nick Szabo

未经许可,严禁转载


“安全”的意义和概念是什么?它和我们的关系有什么相关?我认为我们之间的关系——尤其是合约——为理想安全提供了蓝图。

许多合同条款(例如担保,绑定,产权划分等等)都可以嵌入到我们身边的硬件和软件里,这也导致了违约者违反合约的代价是很昂贵的(如果如愿的话,有时会高到令人发指)。一个真实的案例,这个案例可以被认为是最早的智能合约的祖先,就是微不足道的自动售货机。在有限的潜在的损失里(贩卖机里的钱少于违反机制的钱),机器接收硬币,并通过一个简单的机制,which makes a freshman computer science problem in design with finite automata, dispense change and product according to the displayed price。自动贩卖机和持币人之间产生合约:任何持有硬币的人都可以参与到和贩卖机交换的过程中。上锁的箱子和其他安全机制保护存储的硬币和内容不受攻击者的攻击,有效地保证了贩卖机在广大领域的发展。

智能契约超越了自动售货机的范畴,提出将契约嵌入到各种有价值的、由数字手段控制的财产中。Smart contracts reference that property in a dynamic, often proactively enforced form, and provide much better observation and verification where proactive measures must fall short。

另外一个一个例子,假设一个汽车数字安全系统。智能合约设计策略建议我们依次细化安全协议,使其更充分地嵌入到处理它的契约条款中。这些协议将根据合同条款,将操作该财产的加密密钥的控制权交给合法拥有该财产的人。在最直接的实现中,除非与合法的所有者一起完成质询-响应协议,这可以防止汽车被盗,否则汽车将无法被使用。

如果汽车被用来贷款,以这种传统措施实施的强力安全措施会让债权人头疼——回收的人将不能没收赖账的汽车。为了解决这个问题,我们可以创建一个智能留置权协议:如果所有者不付款,智能合同将调用留置权协议,该协议将汽车钥匙的控制权返还给银行。这比回收的人更加便宜并且更加有有效。进一步的物质化可以证明,当贷款还清时,留置权将被取消,同时也可以说明困难和操作异常。例如,当汽车在高速公路上行驶75英里时,取消对它的操作是不礼貌的。

在这个过程中,我们已经从一个逐次改进原油安全系统具体化的合同:

(1)一种有选择地让所有人进入,并驱逐第三方的锁;

(2)一个后门让债权人进来;

(3a)债权人后门只有在一段时间内不付款时才会开启;

(3b)最后的电子支付永远关闭了后门。

成熟的安全系统会对不同的合同承担不同的行为。继续我们的例子,如果汽车合同是一个租赁合同,最终的付款将关闭承租人的访问;对于赊购,它将关闭债权人的使用权。一个安全系统,通过不断的重新设计,越来越接近合同的逻辑,合同管理的权利和义务,包括对象,信息,或被保护的计算。质量上不同的合同条款以及财产上的技术差异导致需要不同的协议。

(摘自Nick Szabo的《公共网络关系的正规化和安全》)(Derived from "Formalizing and Securing Relationships on Public Networks" , by Nick Szabo)相关文章讨论了用于分析合同和指定智能合同的正式语言。


http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html

这篇关于(The Idea of Smart Contracts)智能合约的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/160873

相关文章

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

在idea中使用mysql数据库超详细教程

《在idea中使用mysql数据库超详细教程》:本文主要介绍如何在IntelliJIDEA中连接MySQL数据库,并使用控制台执行SQL语句,还详细讲解了如何使用MyBatisGenerator快... 目录一、连接mysql二、使用mysql三、快速生成实体、接口、sql文件总结一、连接mysql在ID

IDEA如何让控制台自动换行

《IDEA如何让控制台自动换行》本文介绍了如何在IDEA中设置控制台自动换行,具体步骤为:File-Settings-Editor-General-Console,然后勾选Usesoftwrapsin... 目录IDEA如何让控制台自http://www.chinasem.cn动换行操作流http://www

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

Idea调用WebService的关键步骤和注意事项

《Idea调用WebService的关键步骤和注意事项》:本文主要介绍如何在Idea中调用WebService,包括理解WebService的基本概念、获取WSDL文件、阅读和理解WSDL文件、选... 目录前言一、理解WebService的基本概念二、获取WSDL文件三、阅读和理解WSDL文件四、选择对接

idea如何开启菜单栏

《idea如何开启菜单栏》文章介绍了如何通过修改IntelliJIDEA的样式文件`ui.lnf.xml`来重新显示被关闭的菜单栏,并分享了解决问题的步骤... 目录ijsdea开启菜单栏第一步第二步总结idea开启菜单栏手贱关闭了idea的js菜单栏,花费了半个小时终于解决,记录并分享一下第一步找