主页 > 如何下载imtoken钱包 > 以太坊:比特币+所有可能性

以太坊:比特币+所有可能性

如何下载imtoken钱包 2023-01-18 12:44:14

在开始之前,请阅读以太坊白皮书的账户、交易和消息三个部分。 如果需要,您可以阅读其余部分,但如果您阅读了以太坊怎么注册账号,那么您已经涵盖了基本的技术基础知识。 就像你看比特币白皮书一样,第一次看不懂没关系。 我们会慢慢明白的。

现在考虑合同!

智能合约是在区块链上存储和执行的代码。 添加用户界面并使用智能合约作为去中心化应用程序(或 dapp)的后端。 了解了比特币区块链,一个比特币交易可以被认为是一个简单的程序,有三个输入和两个输出(这混淆了比特币实际上有输入和输出的原始概念,但不需要纠结现在)。 输入是要传输的比特币总和、传输的源地址和传输的目标地址。 输出是先前指定的账户,每个账户都有一个代表转账的新余额。 挖掘的交易是一个公共记录,一个简单的程序,它在给定的输入上执行并产生一组输出。 在比特币中,传输程序是唯一存在的程序,给定输入,因此每个节点都知道如何验证输出是否有意义。

以太坊将这些程序的范围从简单的汇款扩展到任何可以在图灵机上编程的程序。 如果你睡上了电脑课,就意味着之前所有的编程内容都可以在以太坊上完成。

以太坊通过在网络的每个节点中构建虚拟机(称为以太坊虚拟机或 EVM)来实现这种复杂性。 EVM 在概念上与任何其他虚拟机没有什么不同。 例如,您可能已经熟悉 Java 虚拟机 (JVM)。 就像 JVM 代码将在任何托管 JVM 的计算机上运行并从同一组输入产生相同的输出一样,EVM 使以太坊区块链代码能够从一组输入产生一致且合理的输出。

比特币区块链上的一个完整节点将存储自区块零以来进行的每一笔交易; 以太坊区块链上的全节点还将存储与给定帐户关联的静态代码(如果有的话)和代码的当前状态。

购买以太坊 需要注册钱包_以太坊离线生成账号_以太坊怎么注册账号

想象一个存储在一个帐户上的简单程序,它接受 1 个数字作为输入,将这个数字添加到一个运行总计中,然后用新的总计覆盖以前的总计。 有两个账户向这个合约账户发送了交易,第一个输入 5,第二个输入 2。存储在以太坊区块链上的是:

以太坊怎么注册账号_以太坊离线生成账号_购买以太坊 需要注册钱包

想象一个类似的程序存储在一个单独的帐户(必需)中,它执行相同的任务,但也存储一个双字段结构的线性数组(结构是数据结构化排列的模板),每个包含一个表示发起者的地址发起人提供的交易和输入。 有两个账户向这个合约账户发送了交易,第一个输入 5,第二个输入 2。存储在以太坊区块链上的是:

现在我们可以很容易地重建这个账户的过去状态,并通过查看哪些账户与之交互来创建这些状态。 但是,应该避免这种模式。 为什么? 在上面给出的示例中,存储在数组中的所有数据都可以由区块链本身重建。 在这一点上,狡猾的人们想出了几种方法来破坏以太坊区块链; 接下来我们将看看以太坊如何防止对节点的硬盘驱动器和 CPU 进行 DoS 攻击,以及这些防御措施如何对开发人员和用户等产生影响。 什么效果。 这意味着开发人员在决定何时写入数据时需要小心。

天然气价格

购买以太坊 需要注册钱包_以太坊离线生成账号_以太坊怎么注册账号

是什么阻止任何人上传包含 10 TB 静态代码的合约并耗尽网络中所有节点的存储空间? 或者阻止他让 CPU 无休止地无效率地旋转? 以太坊交易与比特币交易一样,使用交易费来激励矿工处理交易并确保网络安全,但以太坊交易费以“gas成本”的形式出现。 就像汽车需要这么多加仑才能行驶这么远一样,以太坊交易需要很多以太币来运行这么多 CPU 并存储大量数据。 以太币作为一种稀缺的有价值资源,其简单的优点可以防止 DoS 攻击。 一个区块链亿万富翁试图恶作剧以摧毁他们的命运可能会暂时减慢网络速度,但获得恶意交易块的获胜矿工也会赚到一笔可观的钱!

这对开发人员和用户意味着什么? 虽然从区块链的本地副本读取是免费的,但写入计算则不是。 存储特别昂贵,因为任何写入的数据都需要永久存储。 运行 CPU 相对便宜。 在区块链中更改账户存储状态的操作始终是存储操作,因为历史状态始终被保存,不像一般程序那样被视为对已分配内存的操作。 以太坊是图灵完备的,所以没有什么能阻止你编写视频编码器并将其发布到区块链:但你可能永远没有钱使用它。 假设这样的程序至少有几千行代码,即使存储它也不会很便宜。 关于以太坊合约可以做什么的一个很好的比喻是:“1999 年在智能手机上可以做什么?”

作为开发人员,这意味着您需要认真考虑代码的效率。 尤其是存储效率,但每个 CPU 周期的用户成本更高。 如果两个合同做同样的事情,哪个更有效率就赢得一切。 既然已经知道智能合约的理论可能性和实际限制,那么问题来了:是什么让它们如此酷?

一个真实世界的例子

在开始讨论智能合约支持的小型政府和其他变革性想法之前,让我们通过一个简单的真实世界用例来演示智能合约,以激发您的兴趣并引发您的思考。

购买以太坊 需要注册钱包_以太坊怎么注册账号_以太坊离线生成账号

假设我和我的乐队刚刚完成了一张新专辑并想与我们的粉丝分享。 问题是我们是朋克,我们是自由倡导者,无论是 iTunes 还是 YouTube,都是系统的机制。 我们的方法是在乙烯基上限量发行 100 张专辑,并让每位买家在最好的潜水酒吧报名参加仅限买家的演出。 过去在互联网上,我们可能会使用 PayPal 等服务来接受付款。 PayPal 会对每笔交易收费,我们会寄出专辑的副本并在电子表格中标记,这样当第 101 个人想购买时,我们就可以拒绝。 这个过程非常松散,艺术家和粉丝都必须通过 Ticketmaster 和 Bandcamp 等中间人。 幸运的是,我们的鼓手有一些编写以太坊智能合约的经验,所以我们决定编写一个简单的“注册表”来完成这一切。

购买以太坊 需要注册钱包_以太坊离线生成账号_以太坊怎么注册账号

注册合同很容易。 它由三个方法组成:purchase、provePurchase和claimAlbum。 粉丝通过网页将指定数量的以太币传递给合约的购买方法。 如果发送的金额大于或等于指定价格,计数器将递增,并将发送帐户的以太坊地址记录在数组中。 数组元素是一个包含两个字段的结构:发送者的以太坊地址和初始值为 0 的索赔数量。 如果计数器增加超过100,则交易失败(同时退还粉丝)

购买后,粉丝向我们发送一个(实际)地址,我们将记录邮寄到该地址。 为此,claimAlbum 函数可以从购买时间中找到与发送帐户关联的结构,并将索赔计数加一。 当且仅当该字段等于 1 时,我们的网页才会接受粉丝的地址,并且我们会将黑胶唱片邮寄给他们。 我们要求用户使用与购买方法进行交易时使用的相同帐户向 claimAlbum 功能提交地址提交,从而确保我们只接受来自实际购买专辑的人的地址,并且只发送一份副本。

演出时间到了,怎么保证没有人偷偷溜进来不买我们的专辑呢? 这是我们使用 provePurchase 函数的地方。 门口放着iPad,人们可以使用provePurchase方法通过购买专辑的账号来验证交易。 如果这些帐户存在于合约的存储阵列中,provePurchase 将返回 true,我们知道他们购买了专辑。 保安会让他进来。

以太坊怎么注册账号_以太坊离线生成账号_购买以太坊 需要注册钱包

更重要的是,我们的专辑独家承诺可以在购买前由歌迷确认。 以太坊合约是内容可寻址的,这意味着它们的源代码哈希存储在链上的可寻址位置。 通过开源合约代码,任何人都可以通过散列源代码并查看合约中的最终地址来独立验证代码的功能。

这里描述的是一个简单的实现,省略了一些细节,但足以让你想到智能合约脱媒。 例如,Ujo Music 以更强大和更简单的方式实现了这些想法,允许小额支付流媒体、转售下载资源,并为艺术家提供更多选择自由。 更重要的是,艺术家保留 100% 的收入。 人们向苹果支付 30% 的收入用于安全,而区块链几乎免费提供服务。

欢迎来到区块链世界

现在我们可以编写任意复杂的代码,将其存储在区块链上,使用其内容的哈希查找它以太坊怎么注册账号,并期望网络中的每个节点在其函数被调用时执行。 代码输出的结果可以通过验证其过去的状态在所有节点之间达成共识。 这些复杂的交易就像比特币交易。 我们上传到区块链的代码称为合约,实际上是去中心化应用程序或 dapps 的后端。 “智能合约”的概念在其优点(牢不可破的协议上的不可变公共记录,任何可能的输入都会产生可预测的结果)和局限性(比律师便宜但并非完全免费)方面都很有用。 任何显示代码如何在以太坊上运行的东西都是一个很好的比喻。

让我们携手共创美好未来!

以太坊怎么注册账号_购买以太坊 需要注册钱包_以太坊离线生成账号

更令人兴奋的:

购买以太坊 需要注册钱包_以太坊怎么注册账号_以太坊离线生成账号

java专家

身份证号:drjava

(扫码或长按识别)

购买以太坊 需要注册钱包_以太坊离线生成账号_以太坊怎么注册账号