如何在比特币系统内创造人工生命

news2024/11/28 19:30:27

请添加图片描述
信息来源:coingeek.com


自2015年以来,关于比特币能否进行复杂计算以及比特币是否“图灵完备”的争论一直在持续。不幸的是,现在存在着一种流传甚广的谬论,有人说比特币并非图灵完备的,它不能像以太坊区块链那样进行复杂的计算。在本文中,我们将对比特币图灵完备性的历史进行考察,然后我们将创造出可在比特币系统内永生的人工生命。

 

比特币图灵完备性的历史

2015年,Craig S. Wright博士首次被比特币世界所了解,当时他参加了一场圆桌讨论,身份是“前学者”,从事着“无人知晓的商业研究”。他在自我介绍时说他自己是“很久以前”就挖过比特币的人,对于一个当时还不为业内人士所熟知的人来说,这是一段非常神秘的登场介绍。与他一起参加圆桌讨论的嘉宾可以说是星光熠熠,其中有美国铸币局前局长Ed Moy、新自由美元项目创始人Joseph Vaughn Perling、比特币早期投资者Trace Meyer以及Bit Gold创始人Nick Szabo。

对于任何有兴趣回顾比特币发展史的人来说,这是一场不可错过的圆桌讨论。在讨论开始后不久,Wright博士就针对比特币提出了一个令人惊讶的说法,让与会专家都感到困惑不已。他声称,比特币和比特币脚本,即由中本聪创建的编程语言,能够进行复杂的计算,并且是图灵完备的。

计算系统的图灵完备性是指该系统能够解决任何计算层面的问题。用计算机科学中更简单的术语来说,如果一个系统可以“循环”,那么它就是图灵完备的。由于比特币脚本是否能够进行循环并非一眼就能看出来,因此大众普遍认为比特币不是一个图灵完备的系统。为了理解Wright博士当时的大胆主张,我们必须回顾“区块链”“加密货币”的现代历史。

2013年,Vitalik Buterin发布了题为《以太坊:下一代智能合约和去中心化应用平台》的白皮书,世界首次了解到了以太坊。Buterin提到了以太坊的必要性,因为“在比特币中的脚本语言实施方案面临多项重大限制”,首当其冲的便是“缺乏图灵完备性”。此后不久,在以太坊白皮书中,以太坊被称为“一种内置了图灵完备编程语言的区块链,允许任何人编写智能合约和去中心化应用。”

到2015年展开上述圆桌讨论时,比特币仍被视为功能严重受限的区块链,以太坊则被视为可用于复杂智能合约的区块链。“比特币具有局限性”这种观念导致了“第二代”和“第三代”区块链这类更加荒谬的构想的诞生。这种做法暗示着,虽然比特币是一个很好的起点,但在创造一个可以处理所有交易的全球级区块链的道路上,比特币只是迈出了第一步。

Nick Szabo显然对Craig的说法感到困惑,他立即对Wright博士的说法做出了回应。他表示,Wright所说的东西“略为深奥”了,如果比特币“不是图灵完备的,那么无论它能否处理部分的循环,它也不是像以太坊那样的通用编程语言。”详情请见后附的视频。

圆桌讨论没有再就这一话题进行更深入的交流,我们在接下来的几年里都没听说过比特币有能力进行复杂计算。碰巧的是,我们又一次从Wright博士本人那里听到了这种说法。

到2017年7月,比特币处于大分叉的前夜。有一部分人正确认识到了的比特币规模是被人为限制了,这些人聚集在阿纳姆(Arnhem),召开了“The Future of Bitcoin”大会,就比特币的前进之路进行着讨论。Wright博士原本未被安排在这次会议上发言,但幸运的是,比特币基金会的前董事Jon Matonis放弃了自己的发言时间,选择了让一位他认为是中本聪的人代替他发言。在被认为是比特币的创造者之后,这算得上是Wright博士的首次公开露面。他发表了一场充满激情的演讲,讲述了他对比特币未来几十年的展望。

演讲第26分钟,一张标题为“图灵完备性”的幻灯片弹了出来。他叹了口气说:“关于这个问题,我真是不想再说了。你们猜怎么着?你们都错了,它是(图灵完备的)”。

 

当他在讨论比特币的脚本系统如何构成了一种名为“判定机(decider)”的特殊图灵机的基础时,他翻到了一张幻灯片,上面展示了一个有趣的图案,数学家们马上就能认出这就是Wolfram 110元胞自动机:

元胞自动机是由Stanislaw Ulam和John Von Nuemann发现的,这是一个引人入胜的研究领域,与数学家Stephen Wolfram的关系最大,他所从事的是一维元胞自动机的系统研究。我鼓励你去了解一下这个迷人的研究领域,但对于元胞自动机,我们有一种简单的思考方式:给定一个初始状态和一个简单的规则集,元胞自动机可以进化出复杂的系统。在20世纪70年代,二维元胞自动机康威《生命游戏(Conway’s Game of Life)》吸引了学术领域之外人士的兴趣,从这时开始,元胞自动机开始普及开来。我们还会再次谈到康威《生命游戏》,但需要注意的是,Wolfram在20世纪80年代开始了元胞自动机的研究,并在这些一维元胞自动机,或者说初级元胞自动机中发现了复杂的行为。

由Wolfram发现的“规则110(Rule 110)”是一种初级元胞自动机,它展现出了非常有趣的行为,并且观察者很难定义这些行为是稳定的还是混沌的。“规则110”已被认为是图灵完备的,这意味着任何计算或计算机程序都可以用这种自动机来模拟。

Wright博士称“规则110”为“最简单的图灵完备系统”,并在阿纳姆的演讲中揭示了一项令人震惊的事实。“这是在比特币上运行的……我们在比特币上运行了粒子群优化(PSO)。”他非常遗憾地表示,当时比特币高昂的手续费扼杀了这个研究项目。“我们在比特币上运行了第一段可自我演化的代码,持续了两年。”他接着说道,随后再次提到BTC链的高昂费用扼杀了这个项目。

这本应该是一条更加劲爆的新闻,因为这个项目证明了,在比特币中,图灵完备计算是可能的。然而,出于某种原因,所谓的区块链行业对这种观点置之不理。在2017年的加密货币热潮中,大众媒体市场反复强调以太坊是“可编程版”的比特币。

2018年3月,Clemens Ley第一个站出来公开支持Wright博士的说法,并在东京中本聪愿景大会上做了题为“为什么比特币是图灵完备”的演讲。Clemens的专业是自动机理论,他独立撰写了一篇与这一论点相关的证明,并给出了证明的相关解释。他在演讲开始时指出,“许多人认为在比特币中不可能实现的事情实际上是可以做到的。”随后他进行了实际的演示,展示了如何将区块链用作图灵完备计算所需的纸带。在撰写本文时,他的演讲仅获得了3479次观看。对于任何怀疑比特币能否实现图灵完备计算的人而言,这段演讲都值得仔细研究。同样是在2017年,Wright博士的说法得到了另一位独立研究者Konstantinos Sgantzos的验证,他发表了一篇论文,题为《在区块链上实现丘奇-图灵-多伊奇原理机器》。

比特币的创造者在试图向世界宣传自己的发明时竟然被视为了异教徒,这真是讽刺。虽然我曾公开对此表示过不解,但我承认,在Wright博士所创造的这个领域中,他确实颇具争议。尽管我个人非常感谢他花了无数时间在公共论坛上向我和其他人传授与比特币本质相关的知识,但很少有人去愿意验证他的说法。虽然我们可以坐等更多学者来验证Wright博士的说法,但也有一些人愿意亲自进行验证。

《生命游戏》

我有幸在2019年旧金山的BSV聚会活动上见到了刘晓晖。我们寒暄了几句,简单地探讨了一下我们希望用比特币来解决的、硅谷公司内在的诸多问题。

我回到家后,收到了晓晖给我发的一条消息,其中是他的sCrypt项目的链接。他说他已经用C++构建了一个功能完整的比特币脚本编译器,就好像这个项目对他来说根本不费吹灰之力一样。晓晖是我在比特币领域中最喜欢的创新者之一,他一直在使用普通的C++语言向其他程序员展示比特币脚本的可能性。

想要验证Wright博士的观点说来也简单,那就是使用比特币脚本来复制一个图灵完备系统,比如说前面提到的规则110或者康威生命游戏。晓晖用C++发布了康威《生命游戏》的代码模板,这让我们的工作轻松了许多。生命游戏是一种在二维网格上进行的元胞自动机。

生命游戏相对来说是比较简单的,由四条规则组成。前三条规则适用于黄色活细胞,最后一条规则适用于灰色死细胞:

1.周围只有一个邻居或没有邻居的活细胞都会死亡,就像是孤独而终一样。

 2.周围有四个或更多邻居的活细胞都会死亡,就如同人口过剩一样。

3.周围有两到三个邻居的细胞可以继续存活。

 4.周围恰好有三个邻居的死细胞可以复活。

 你可以用这个小程序玩一玩《生命游戏》。生命游戏对于学者和普通观察者来说都很有趣,因为只需基于这个简单的规则集进行初始配置,就可以创建出各种复杂的模式和“生命形式”。“积木”、“蜂箱”、“独木舟”等等都是可以在《生命游戏》中存在的静态物体。我们甚至也能看到像“滑翔机枪”一样的动态“生命”的出现这个元胞自动机中的世界非常奇特,你越深入了解,就会越觉得它越奇特。

通过在区块链上创建一个初始配置,我们就可以观察它的演变方式。由于康威《生命游戏》是图灵完备的,如果我们可以在比特币区块链上复制这款游戏,那么我们就可以切实证明,比特币实际上在所有方面都是图灵完备的。如果你想知道为何比特币上未曾有过这样的项目,你只需快速看一下比特币脚本中的代码,就会恍然大悟了。这是一个体积相当大的脚本,在BTC链上是不可能实现的。因为BSV是唯一一个实现了中本聪原始设计的区块链,这个项目只有在BSV上才有实现的可能。

我们决定对此进行测试。我们能让康威《生命游戏》存在于区块链之上吗?

是的,我们可以!在这里,我们公布了4×4棋盘上康威《生命游戏》的初始配置。我们的起始配置是3个细胞:

看过上述链接中交易脚本的人会发现,我们使用了一个看起来像这样的游戏棋盘:

00000000

00000100

00010100

00000000

你可以查看这个脚本的脚本哈希,了解一下游戏二次迭代的情况。根据《生命游戏》的规则,在这笔交易中,我们最终会得到一种名为方块的“静态物体

或者你也只可以使用下面这种棋盘:

00000000

00010100

00010100

00000000

在游戏中迭代5次以上,便可在《生命游戏》中保存所见到的这种稳态静物。我们在区块链上创造了永恒的生命!阻止我们创造更复杂系统的唯一原因是所涉及到的经济因素。中本聪的天才之处在于将经济学纳入了这个系统!只要有资金支持,我们的游戏就能持续进行下去。

我们可以看到,比特币内部是能够运行一个图灵完备的系统的,这证明了比特币本身就是图灵完备的。只要再多做一点工作,我们就可以创建一个互动生命游戏棋盘,玩家可以与之互动,并为其注资以维持其生命活力。

这些有什么意义呢?首先,这完全否定了试图贬低比特币的复杂计算能力的人的观点。在BTC上,他们删除了必需的操作码、限制了交易和脚本的规模以及区块的大小,进而故意削弱了比特币的计算能力。因为BTC支持者的误导性言论,将他们的区块链称为比特币,所以人们普遍认为比特币不能进行复杂的计算。但对于BSV生态中的许多人来说,这并非什么出乎意料的事情,这也证明了Craig Wright博士的正确性。

Wright博士是比特币的创造者,这一点不容否认。他曾多次对比特币的本质做出过令人难以置信的断言,而这些断言后来都被证明是正确的。无论是比特币网络拓扑结构的小世界网络的性质、保护网络安全的经济激励因素,还是系统本身的图灵完备性,Wright博士一再证明,对于自己所发明的技术,他是不折不扣的专家。

一方面,以太坊无法实施任何真正有意义的扩容举措;而在另一方面,BSV却正在快速向TB级、甚至更大体积的区块扩容。比特币具备以太坊的所有功能,但比特币同时还拥有中本聪设想中的大规模可扩容性。

Craig Wright在比特币的图灵完备性问题上的正确性得到了证明这件事对我们Britevue来说并不奇怪。我们在基于比特币构建未来的线上评论应用时,这个复杂的系统就需要比特币的智能合约和通证化功能,但这两项都是之前被认为在比特币中不可能实现的功能。

我要向刘晓晖表示感谢,感谢他在部署《生命游戏》合约方面提供的帮助,同时也要大力感谢Dylan Murray为比特币注入生命。


目前,全球已有超过400个项目构建于BSV区块链之上。凭借坚如磐石的协议及超高的网络性能,BSV生态系统迅猛发展,我们期待未来出现更多前所未有的商业应用。

  • 对BSV区块链开发感兴趣的朋友,可以前往我们的中文开发者专区:BSV区块链

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/470728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Node.JS 数据库篇】Sequelize 的用法与mysql的关系

文章目录 一、Sequlize是Node.JS中ORM实现二、Sequelize 执行基础的CRUD三、Sequelize 执行复杂的CRUD1. 指定字段attributes2. 触发数据库事务3. LEFT JOIN 联表关系4. INNER JOIN 联表关系5. 嵌套查询 四、Sequlize常用方法和参数1. findAll2. count3. findByPk4. findOne5. …

【策略设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 策略模式(Strategy Pattern)属于行为型设计模式。将每一个算法封装到具有共同接口的独立类中,根据需要来绑定策略,使得具体实现和策略解耦。 当你想使用对象中各种不同的算法变体,使用if...else 所带来的复杂和…

增强型PID-自适应-前馈-神经网络控制研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【Linux】入门介绍

🌱博客主页:大寄一场. 🌱系列专栏:Linux 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注​ 目录 前言 Linux背景介绍 1.发展史 UNIX发展的历史 Linux发展历史 2. 开源 3. 官网 4. 企业应用现状 5. 发行版…

装饰者模式

采用组合而非继承的手法,Decorator模式实现了在运行时动态扩展对象功能的能力,可以根据需要扩展功能。 Decorator类在接口上表现为is-a Component的继承关系,即Decorator类继承了Component类的所有接口。但在实现上又表现为has-a Component的…

打印流~~

文章目录 打印流PrintStreamPrintWriter追加操作输出语句的重定向 Properties使用properties把键值对信息存入到属性文件中去使用properties在文件中取键值对信息 IO框架(了解) 打印流 作用:打印流可以实现方便、高效的打印数据到文件中去。打印流一般是指&#xff…

【Linux】2.1 环境基础开发工具使用——yum

什么是yum Linux 软件包管理器——yum yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上. yum 的使用 卸载: yum -y(直接卸载) remove [xxx] 查找: yum list | grep [xxx] 软件包名称:…

这才是 SpringBoot 统一登录鉴权、异常处理、数据格式 的正确姿势

本篇将要学习 Spring Boot 统一功能处理模块,这也是 AOP 的实战环节 用户登录权限的校验实现接口 HandlerInterceptor WebMvcConfigurer 异常处理使用注解 RestControllerAdvice ExceptionHandler 数据格式返回使用注解 ControllerAdvice 并且实现接口 Response…

Hive拉链表实现

拉链表 定义:用来记录历史变化,相比每天存储全量数据,可大幅减少数据冗余,可以基于历史变化,统计分析历史变化信息使用场景: 用于记录维度变化场景,记录维度变化,根据维度变化记录,统计聚合,加成生成不同时期历史指标 Hive 拉链表实现 实现原理 首次(T1: 2023-04-01) 同步业…

MATLAB-Lingo求解线性规划问题-奶制品2

奶制品的生产销售计划,给定条件不变 为了增加工厂的获利,开发了奶制品的深加工技术:用2小时和3元加工费,可将1kgA1加工成0.8kg高级奶制品B1,也可将1kgA2加工成0.75kg高级奶制品B2,每千克B1能获利44元&#…

ABI Research产业研究:ZiFiSense如何革新物流货物及运输包装追踪

“文章源自前沿科技研究机构ABI Research产业研究,重点介绍了ZETA LPWA协议开发公司纵行科技在业务发展、M-FSK调制技术以及ZETag云标签系列产品在物流货物追踪与包装管理等方面的应用分析,还分享了纵行科技ZETA技术在商业市场和生态系统方面的发展情况。…

用扩展方法来实现EventTrigger中事件的异步等待

一、什么是扩展方法? 扩展方法是一种C#语言提供的功能,允许我们向现有类型添加新的方法,而无需修改类型的源代码。扩展方法的优缺点如下: 二、它有什么优点? 1、不需要修改源类型的代码:使用扩展方法可以…

工具-Snipaste与ScreenToGif 生产力工具,对截图进行勾画操作,并可将截图贴至电脑任意界面;快捷动态截图成gif

文章目录 1、演示1.1 snipaste1.2 ScreenToGif 2、操作2.1 snipaste2.2 ScreenToGif 1、演示 1.1 snipaste 1.2 ScreenToGif 2、操作 2.1 snipaste 进入官网,可根据系统进行下载 https://zh.snipaste.com/ 傻瓜式安装成功后,电脑的右下角有个小图标&a…

兰林:科技赋能健康产业 助力乡村振兴建设

万民健康创始人 万民智养中医创始人 万民星农CEO兰林 党建引领谋发展 , 旗帜下乡促振兴 。 乡村振兴,健康先行。自党的十八大以来,国家卫健委贯彻落实“以基层为重点”的党的卫生与健康工作方针,推动医疗卫生工作重心下移、资源下…

Springboot +Flowable,通过代码绘制流程图并设置高亮

一.简介 通过代码绘制一张流程图,并设置成高亮。 首先先来看一下绘制出来的效果图,截图如下: 已经执行的节点和连线用红色标记出来,大致上就是这么一个效果。 二.怎么实现 将一个流程图绘制成图片,相关的 API 在…

倾斜摄影超大场景的三维模型的顶层合并的轻量化处理技术

倾斜摄影超大场景的三维模型的顶层合并的轻量化处理技术 倾斜摄影超大场景的三维模型的顶层合并需要进行轻量化处理,以减小数据量和提高数据的传输和展示性能。以下是几种常用的轻量化处理技术: 1、网格简化:对三角面片数量过多的模型进行网…

10个常用的软件测试工具,你不容错过

在现代软件开发中,软件测试是不可或缺的一部分。为了确保软件产品的质量和稳定性,软件测试工具成为了测试团队的得力助手。 有许多优秀的软件测试工具可以帮助测试人员在各种测试活动中提高效率和准确性。 本文将介绍10个常用的软件测试工具,…

LeetCode第141题——环形链表(Java)

题目描述: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链…

多线程|基于阻塞队列和环形队列的生产者消费者模型架构

前言 那么这里博主先安利一下一些干货满满的专栏啦! Linux专栏https://blog.csdn.net/yu_cblog/category_11786077.html?spm1001.2014.3001.5482操作系统专栏https://blog.csdn.net/yu_cblog/category_12165502.html?spm1001.2014.3001.5482手撕数据结构https:/…

办公软件中可以使用chatGPT吗?

随着ONLYOFFICE新品协作空间的发布,有很多朋友已经开始在工作区或桌面版用上chatGPT的朋友担心,在协作空间是否也可以正常使用chatGPT,我可以很负责的告诉大家,完全可以正常使用。 什么是ONLYOFFICE协作空间? 简言之&…