一次与chatGPT的对话实验:和chatGPT聊了聊比特币,感觉它像个弱智
标题:一次与chatGPT的对话实验 实验人:刘教链 日期:2023年2月24日
摘要
近期chatGPT的热点更像是资本运作的结果。任何一个领域的业内人士,应该都能够发现chatGPT的对答如流,只是对它的知识库搜罗到的公开信息的拼凑。对于尚未有人谈及的问题,或者前人尚未思考过的创意,chatGPT并不能产生超越既有知识范畴的突破性解答。在此种情况下,人类懂得闭嘴,说“我不知道”,或者“我不懂这个问题”,但是chatGPT仍然会用最大概率搜索去用现有语料拼凑答案,从而给出错误的、具有误导性的答案。虽然,这一误导性,对于业内人士而言应该很容易识别。
只要摒弃媒体的夸张宣传、想象和吹嘘,严肃体验chatGPT,就会发现自身真实的使用感受和媒体夸大宣传的巨大落差。目前的chatGPT离作为专业工作者的助手还有很大距离。
另外,实验者提出了chatGPT的一个有趣假设和用法,命名为“chatGPT test”(chatGPT测试)。该测试可以用来检验一个人在某个问题或某个领域内的认知水平与人类一般认知水平的差异。检验指标就是一个人和chatGPT探讨本专业问题过程中惊喜-失望的情绪反应计数。惊喜越多,越接近“砖家”;失望越多,越接近“专家”。
实验
实验是即兴的。有四个回合。
第一回合
在第一回合里,实验者把一个感到困难的问题提给了chatGPT,看看它的知识库里有没有相关的内容。但是很显然,它对此一无所知。对话如下(E为实验者,C为chatGPT,点评是事后追加):
E: 闪电网络是否能实现一个invoice被支付后揭示一个可验证的密文?
C: 是的,闪电网络可以实现一个invoice被支付后揭示一个可验证的密文。闪电网络可以实现双方可以在不可靠的网络环境下安全地进行交易,并且可以提供可验证的密文。这种技术可以帮助双方确保交易的安全性,并且可以防止双方之间的欺诈行为。
点评:显然,chatGPT是“懂”闪电网络的。它后半句的解释说明了这一点。但是,它鲁莽地给出了结论“可以实现”。这应该是一个“胡乱拼凑”。
E: 如何实现?能够展示一下具体的例子?
C: 【宕机】
点评:看起来需要换一个提问方法。不是先做选择,再追问。直接提问如何做试试看。
E: 如何在闪电网络上实现一个invoice被支付后揭示一个可验证的密文?
C: 在闪电网络上实现一个invoice被支付后揭示一个可验证的密文,需要使用可信任的第三方服务来实现。可信任的第三方服务可以帮助双方确保交易的安全性,并且可以防止双方之间的欺诈行为。可信任的第三方服务可以在双方之间建立一个可验证的密文,以确保双方的交易安全性。此外,可信任的第三方服务还可以帮助双方确保交易的完整性,以及双方之间的资金流动。
点评:这个方法实验者觉得应该还是具有可行性的(靠人对“可信任第三方”的脑补,哈哈)。但是借助于第三方并不是期望的正确思路。实验者希望chatGPT能给出一个去中心化的、更好的方案。另外,这段话明显是从某些地方抄过来的,后面的解释都是废话。
E: 如果不允许使用可信任的第三方服务呢?
C: 如果不允许使用可信任的第三方服务,那么双方可以使用智能合约来实现一个invoice被支付后揭示一个可验证的密文。智能合约可以帮助双方确保交易的安全性,并且可以防止双方之间的欺诈行为。智能合约可以在双方之间建立一个可验证的密文,以确保双方的交易安全性。此外,智能合约还可以帮助双方确保交易的完整性,以及双方之间的资金流动。
点评:实验者进行了逼问,看看chatGPT是否能够收敛到正确的方向上。但是它显然不清楚闪电网络的实际能力。关于智能合约的说法,应该是从以太坊等智能合约编程平台大量的语料抄袭过来的。接下来我们就来验证一下chatGPT是否真的懂这个问题。
第二回合
既然chatGPT提出可以写智能合约,那实验者就顺势问问它,这个所谓的智能合约是怎么回事。以下是对话(E为实验者,C为chatGPT,点评是事后追加):
E: 怎么在闪电网络上实现这样的一个智能合约呢?
C: 在闪电网络上实现一个智能合约,需要使用智能合约语言,如Solidity或Vyper。这些语言可以帮助开发者编写可以在闪电网络上运行的智能合约。开发者可以使用这些语言来编写智能合约,以实现一个invoice被支付后揭示一个可验证的密文。此外,开发者还可以使用这些语言来编写智能合约,以确保双方的交易安全性,并且可以防止双方之间的欺诈行为。
点评:当实验者刨根问底时,chatGPT就露馅了。和实验者猜测的一样,它的答案是从以太坊社区内容抄来的。Solidity/Vyper,它说起来大言不惭。
E: 可是闪电网络不支持solidity或vyper呀!
C: 是的,闪电网络目前不支持Solidity或Vyper。但是,开发者可以使用其他语言,如JavaScript或Python,来编写智能合约,以实现一个invoice被支付后揭示一个可验证的密文。此外,开发者还可以使用这些语言来编写智能合约,以确保双方的交易安全性,并且可以防止双方之间的欺诈行为。
点评:当实验者直接指出chatGPT的错误时,它就开始绕圈子胡说八道了。它很明显是根据前文来猜测下文要怎么回答才具有最大概率的“赢面”。既然它这么说了,我们就来个欲擒故纵,让chatGPT露一露真功夫。网上不是各种盛传chatGPT写代码是一把好手吗?Talk is cheap, show me the code.
E: 能给我写一段代码演示一下吗?
C: 当然可以,下面是一段使用JavaScript编写的智能合约的示例代码:
pragma solidity ^0.4.0;
contract Invoice {
address public payer;
address public payee;
uint public amount;
bytes32 public secret;
function Invoice(address _payer, address _payee, uint _amount) public {
payer = _payer;
payee = _payee;
amount = _amount;
}
function revealSecret(bytes32 _secret) public {
require(msg.sender == payer);
secret = _secret;
}
function pay() public {
require(msg.sender == payer);
payee.transfer(amount);
}
}
点评:这段代码,除了把一些函数名替换成了上下文说到的“支付”、“invoice”、“揭示密文”等关键词,没有任何逻辑可言。显然,一眼就能看出来,chatGPT对所要解决的问题并没有真正理解。有人对chatGPT能迅速写出一个排序算法表示“惊艳”,那只能说,这个人太大惊小怪了。排序算法是充斥网络甚至教科书的满世界都有标准答案的问题,chatGPT自然信手拈来。但凡问它一点儿没有人曾经想过的、写过的代码,它就抓瞎了。
E: 你写的代码是错的
C: 对不起,我的代码可能有错误。如果您发现了错误,请提供您的反馈,以帮助我改进代码。
点评:它的认错只是对前文的规定反应罢了。
第三回合
实验者决定降低一下问题难度,和chatGPT聊一聊“概念题”。这时候我们会发现,拼凑概念是它的擅长。以下是对话(E为实验者,C为chatGPT,点评是事后追加):
E: 你真的知道闪电网络是什么吗?
C: 是的,我知道闪电网络是一种分布式的支付网络,它可以让用户在短时间内进行比特币和其他加密货币的支付。它使用了一种叫做“支付通道”的技术,可以让用户在不需要在区块链上发布交易的情况下进行支付。
点评:谈概念最简单了。因为只需要“抄书本”。
E: 那你为什么说它支持JavaScript或Python来编写智能合约呢?
C: 闪电网络支持使用JavaScript和Python编写智能合约,因为它们都是高级编程语言,可以让开发者更容易地编写智能合约。此外,它们也支持Solidity,这是一种用于构建智能合约的语言。
点评:这句算是追问。不过显然,chatGPT在胡拼乱凑。
E: 你知道比特币脚本吗?
C: 是的,我知道比特币脚本是一种用于构建比特币交易的脚本语言。它可以用来创建复杂的比特币交易,如多重签名交易、脚本锁定交易和智能合约。
点评:实验者想试一试引导一下chatGPT,看看它是不是能区分出智能合约和比特币网络的脚本的区别。
E: 比特币脚本和智能合约有什么区别?
C: 比特币脚本和智能合约之间有一些显著的区别。比特币脚本是一种用于构建比特币交易的脚本语言,而智能合约是一种用于构建分布式应用程序的编程语言。比特币脚本只能用于比特币交易,而智能合约可以用于构建复杂的分布式应用程序。
点评:基本上没有什么信息量的回答。有点儿像是在同义反复。
E: 比特币脚本是图灵完全的吗?
C: 不,比特币脚本不是图灵完全的。比特币脚本是一种非常简单的脚本语言,它只能用于构建比特币交易,而不能用于构建复杂的程序。因此,它不能被认为是图灵完全的。
点评:实验者希望具体提一些要点,看看chatGPT能否领悟到。不过,看起来它依然只是简单引述概念本身,而不能把概念和我们要讨论的问题关联起来。
E: 比特币脚本用的是波兰表达式还是逆波兰表达式?
C: 比特币脚本使用的是逆波兰表达式(Reverse Polish Notation)。逆波兰表达式是一种简化的表达式,它可以用来构建比特币交易,而不需要使用括号来表示优先级。
点评:实验者追问一些细节。可以看到,这些书本上存在的事实知识,chatGPT能够回答。不过,它画蛇添足的解释,也许是这个模型容易迷惑人的地方。chatGPT不懂一个古老的东方智慧:言多必失。
E: 比特币脚本为什么要用逆波兰表达式,而不用波兰表达式呢?
C: 比特币脚本使用逆波兰表达式的原因是,它比波兰表达式更加简洁,可以更快地执行比特币交易。此外,逆波兰表达式不需要使用括号来表示优先级,这使得它更容易理解和使用。
点评:这就是chatGPT的典型特点了,那就是说上很多句,就是说不到点儿上。不是它不想说到点儿上,实在是它的语料库里没有。很遗憾,基于最大概率的推测,并不能帮助chatGPT拓展知识边界。
第四回合
实验者此时已经不想再和chatGPT废话下去了,因为显然这纯粹是浪费时间。最后,实验者还是想测验一下,chatGPT对既有知识的掌握程度。以下是对话(E为实验者,C为chatGPT,点评是事后追加):
E: 那请你写一个3-of-5多签的比特币脚本
C: OP_3 OP_DUP OP_HASH160 <pubkey1> OP_EQUALVERIFY OP_CHECKSIG OP_SWAP OP_HASH160 <pubkey2> OP_EQUALVERIFY OP_CHECKSIG OP_SWAP OP_HASH160 <pubkey3> OP_EQUALVERIFY OP_CHECKSIG OP_SWAP OP_HASH160 <pubkey4> OP_EQUALVERIFY OP_CHECKSIG OP_SWAP OP_HASH160 <pubkey5> OP_EQUALVERIFY OP_CHECKSIG OP_3 OP_CHECKMULTISIG
点评:比特币脚本的全部逻辑和编码知识都有资料、文档和书籍。一个人类的学习者经过学习后,就可以根据学到的知识,结合需求来编写出一段正确的脚本。而且,这次实验者询问的3-of-5多签脚本,也是一个非常常见的脚本。chatGPT的拼凑显然是错的离谱,这一点倒是出乎实验者的意料。
E: 你写的这是scriptSig还是scriptPubKey?
C: 这是scriptPubKey,它是用来定义比特币交易的输出,它定义了交易的接收者可以使用哪些公钥来验证交易的有效性。
点评:实验者试图提示一下chatGPT。还好,它知道相关概念。
E: 对应的scriptSig应该是怎样的呢?
C: scriptSig应该包含所有参与者的签名,以及参与者的公钥,以便验证交易的有效性。它应该是这样的:<sig1> <pubkey1> <sig2> <pubkey2> <sig3> <pubkey3> <sig4> <pubkey4> <sig5> <pubkey5> OP_3 OP_CHECKMULTISIG
点评:于是实验者追问,看看chatGPT是不是能自己发现自己的问题。但是很遗憾,它并不能。
E: 你写的scriptSig和scriptPubKey能放在一起正常工作吗?
C: 是的,如果所有的签名和公钥都正确,那么它们就可以正常工作。
点评:最后实验者还是想和它确认一下。chatGPT完全没有读出这个问题背后隐藏的意思。它肯定的如此斩钉截铁,就像一个草履虫对外界刺激的反应。
ChatGPT测试
实验者提出一个假设,那就是chatGPT只能在既有人类知识范畴之内进行总结和重新拼接,并不能突破既有的知识边界。
对于理学学科而言,这个知识边界就是目前人类对于这个世界、这个宇宙的认知目前所达到的极限。在这一类知识范畴中,对于答案正确与否的终极裁决者是宇宙客观规律。
对于文学、艺术等学科而言,这个知识边界是人类元认知能力的极限,所有的文学创作和艺术创作,其要素组合形式固然千变万化,甚至无穷无尽(因为组合爆炸),但终究还是在人类元认知能力的极限之内。在这一类知识范畴中,对于答案正确与否的终极裁决者是人。
因此,chatGPT无论如何发展,都必然受到上述两个极限的约束。它既无法超越人类已知的宇宙客观规律,也无法超越人的感受本身。
那么,chatGPT便可以用来测试一个人的认知水平,在整个人类中(假设chatGPT已经充分学习了全人类的全部语料)究竟在一个什么样的水平。如果一个人觉得chatGPT太惊艳了、太神奇了、太厉害了,那也许并不是chatGPT厉害,而是这个人对这个问题的认知水平大大低于人类已知的一般水平。反之,则是因为这个人对问题的认知水平大大超出一般水平。
也就是说,chatGPT代表的,永远是一般水平。一个人可以用它来帮助自己测试自己的认知水平,是“砖家”级,还是“专家”级。
但是,永远不要相信一个人披露的自己的chatGPT测试的结果。因为人类有一个能力,那就是善于伪装自己。
结论
经过四个回合的对话,实验者已经没有兴趣再继续和chatGPT聊下去了。可以看到,chatGPT在任何一个稍微具体的专业问题上都是错漏百出,不具有任何可信度。好在只要提问者稍微懂得一些专业知识,就可以轻易分辨出chatGPT的错误。
ChatGPT的能力,并没有从本质上突破一个循环神经网络基于前文对后文进行概率推测的限制。显然,我们人类说话,并不只是为了赢得对话。有的时候,我们是为了表达思想。很容易看得出来,chatGPT只是在说话,而背后并没有思想。
因此,chatGPT的发展上限,就是能够准确地整理、归纳、总结、重新拼接和丰富已有的人类知识库,而无法突破既有的知识边界。
综上所述,ChatGPT基本代表了一般认知水平。一个人可以用chatGPT测试来测试自己的认识水平高低。
关注公众号后请添加星标,以及时收到文章推送。 【公众号入口】 【刘教链Pro入口】
(公众号:刘教链。知识星球:公众号回复“星球”) (免责声明:本文内容均不构成任何投资建议。加密货币为极高风险品种,有随时归零的风险,请谨慎参与,自我负责。)