1. 链一财经首页
  2. 资讯

洞察以太坊智能合约开发

洞察以太坊智能合约开发

你们许多人可能已经质疑了区块链的总体有效性,特别是以太坊的有效性。你们一些人可能在好奇心中走得更远,遇到了许多奇特的特性,例如分散、透明、没有中介的信任和黑客抵抗。这很了不起,不是吗?的确如此,但是……

在目前的状态下,区块链完全适合于完成范围狭窄的任务,除非您考虑将“添加一些纳米技术以达到wow效果”——实际上,您可以调整几乎任何东西来与此目标保持一致。当然,首先需要做一些事情,通过各种各样的实验来帮助理解潜在的需求,并显示需求可能在哪里,一个意想不到的死胡同在哪里,以及缺陷在哪里。但是,您确实需要了解这些边界,以便做出明智的决定,并在特定场景中尝试并跳过它们是否合理。

顺便说一句,以太坊不是有史以来最好的选项。也许,区块链是实现目标的正确工具,尽管它是一种不同类型的区块链。然而,我们将在本文中进一步提到“区块链”时联系“以太坊”。

让我们尝试概述一下区块链和智能合约的特性,它们使解决表面上有希望的任务的过程变得无效或完全不可能。我想从一开始就指出,下面的特性是一般化的,因此对于特定的用例,仍然有相当可行的解决方案。因此,您应该将此列表视为在开始项目之前需要考虑的以太坊弱点的一个集合。

1、高进入壁垒

如果你的受众是普通用户而不是区块链的狂热者,那么很少有人会费心给你的解决方案一个机会。想想看,他们不仅需要安装带有节点的MetaMaskor Mist,而且还需要购买以太币,这对初学者来说是一个很重要的过程。因此,如果你想要覆盖最多的受众,那么目前为止以太坊不是一个正确的选择。例如,仅仅基于智能合约创建在线商店可能不是一个好主意。

措施:

• 提供的优势要超过劣势。

• 目标受众在该主题上具有一定的专业知识。

• 通过将区块链逻辑移到后端,混淆用户的区块链逻辑是有意义的。

2、分散集中

无论你如何划分,区块链都是非常棒的,因为即使参与者彼此不信任,它也能工作。然而,只有当用户是其私钥的唯一所有者时,这个标志才成立。这是签署事务和从它们的地址做其他事情的主要先决条件。如果区块链逻辑位于后端会发生什么?密钥以集中的方式使用,并且没有机制来避免用户不认可的事务。因此,剩下要做的就是希望服务器足够安全并得到适当的维护。

措施:

• 了解是否需要透明性和不可变性,或者是否需要操纵加密货币。如果不这样做,那么使用常规数据库会更经济、更方便。

• 详细说明您的操作机制,以便技术保证到位。

3、所有数据都是公开的

不管智能合约是如何编写的,如果需要,相关方可以检索其中任何数据字段的值。事务历史也是如此。因此,如果您记录并保留关于用户的任何个人身份信息,比如他们的电子邮件地址和姓名,那么这些用户所做的一切都是公开可访问的。因此,您可能不得不在此基础上进行某种类型的加密。如果是这样,它的密钥必须存储在接收者的终端,这意味着用户必须再次信任第三方提供他们的个人数据。使用普通的私有存储来保存或多或少有些敏感的信息可能是一个更好的主意。如果你打算签订基于区块链的合约,那么你的损失可能大于收益。

措施:

• 了解您的智能合约逻辑是否需要用户的个人数据。如果有,考虑使用散列而不是适当的数据。

4、区块链不是一台超级计算机

有些人可能会认为,矿工利用巨大的处理能力可以进行良性计算,但这是一种误解。恕我直言:以太坊的生产力类似于嵌入式系统的生产力,因为它涉及有限的资源、有限的内存和有限的“固件”(合约字节码)大小。因此,应该将最大限度的非临界计算移出链。这就是为什么在智能合约或加密货币之类的东西中执行复杂数据分析很难实现的原因。

措施:

• 任何类型的计算都不要使用区块链。

• 如果需要进行与区块链相关的计算,请考虑利用Oraclize的计算特性

5、区块链不是一个通用存储

一些人认为区块链可以用来存储信息或文档。在这方面需要注意的是:首先,以这种方式存储数据是昂贵的;其次,区块链不适合像搜索这样的东西——您要么需要有键值映射,这会给每个条目增加额外的成本,或者您必须手动查找感兴趣的信息。但是,没有权限管理。因此,用区块链替换传统的数据库没有多大意义,除非您确切地知道为什么需要它。当涉及到存储特定文件时,请记住公共可访问性方面:例如,如果您存储一个IPFS链接,每个人都会看到它,并可以下载您保存在那里的所有内容。长话短说,如果你打算在区块链上存储个人照片,请三思。

措施:

• 您最好简单地存储一个哈希值,以验证所有存储在链外的内容。

• 只存储智能合约工作逻辑所需的数据。

6、将区块链与现实世界绑定

区块链本身可以很容易地发送代币,但如何发送你为他们购买的东西?即使它是一个文件,您如何验证发送它而不涉及第三方的事实?这里有一个快速的答案:这并不容易,因为我们假设双方都想欺骗对方,所以我们需要一些验证以及加密和解密的实例。如果有争议,你就不能没有非链式计算或裁判。

很明显,对于实物商品或服务来说,整个过程将变得更加复杂,因为需要输入一些信息,粗略地说,这些商品已经被接收了。这个人不能是利益相关方,这意味着他或她是我们应该信任的第三方。在这种情况下,我们的区块链解决方案在这个裁判的形式下有一个薄弱环节。而且,假设我们相信那个人,为什么不把其他的事情都托付给他或她呢,例如,托管一个常规的数据库并进行支付?这是你在开始区块链计划之前应该问自己的一个基本问题。举个例子,我真的不明白在线下商店里,你提供一个代币来换取折扣有什么用。

措施:

• 给自己一个明确的答案,为什么集中式逻辑不适合。如果你做不到,那就放弃你的区块链想法。

7、总有人为失误的时候

如果你不小心把钱转错了人,或者你的银行账户被黑了,你可以提交一个技术支持票,然后有一段时间取消或回滚交易。有了智能合约,您就不能手工做代码中没有涉及到的事情。这再次让我们意识到,有必要聘请一名裁判,他将拥有巨大的特权,使整个解决方案几乎集中起来。

措施:

在适当的情况下,智能合约可以延迟资金转移。

8、交易需要时间

如果您有一个动态系统,其特性是永久地改变状态和逻辑,那么等待时间很可能会让您不满意。例如,在以太坊中,正常的事务验证时间是半分钟甚至更长。即使您的解决方案不需要额外的几秒钟,您仍然应该考虑不确定事务超时的可能性,并定义足够的时间间隔。因此,到目前为止,像扑克这样的游戏要么完全不可能在以太坊智能合约的基础上进行创造,要么它们非常原始,需要强调离线逻辑。

措施:

• 如果您打算频繁地查询区块链,那么以太坊可能不适合您,并且您可能不应该将您的愿景仅限于区块链。

• 如果可能,将多个事务合并为一个事务,执行逻辑链外的部分。

• 在最坏的情况下,你可以在适当的时候提高费用 (执行一个操作的费用)。

• 如果一个事务需要很长时间才能完成,您可以指定更高的价格并重新提交它。

• 到目前为止,审查规避还不完美

如果您打算使用区块链来抵制政府或类似的东西,请记住web服务仍然是一个集中的实体,即使它是基于区块链的。换句话说,域名或IP地址仍然很容易阻塞,用户必须知道镜像地址或找到VPN服务。这样做的好处是您不必进行数据库备份,而且通过了解以太坊网络中的地址,您可以通过不太用户友好的技术获得访问权限,比如mist、MyEtherWallet、Etherscan等。然而,审查制度仍是一个问题。

措施:

• 抗阻塞能力无疑是一个好处,但是您不应该仅仅基于这个事实就决定使用区块链。

有什么替代方案?

有很多。其他区块链和非区块链解决方案可以牺牲其分散性、开放性或无限制的用户受众,以换取更高的事务速度、可靠的隐私保护等。这些例子包括EOS、Hyperledger、Exonum、Hashgraph、Corda等的解决方案。不过,一个流行的品牌名称仍然是一个重要因素。它意味着拥有庞大的用户群,大量的应用程序,数据管理和开发工具,以及严谨的测试机制。

有那么糟糕吗?

贯穿上述所有观点的根本问题是,除了区块链,什么都不选。这项技术应该能解决这个问题。将区块链集成到已经解决的任务中不太可能使解决方案更加有效。例如,如果你是赌博业的新玩家,想要开一家赌场,那么你最关心的就是赢得声誉,展示正直,吸引用户群。通过提供一个基于区块链的解决方案,你至少可以在理论上保证客户的透明度,尽管很少有人会在他们开始玩之前审计你的聪明合约。通过这种方式,您还可以吸引那些手头有备用加密货币资产和大量使用该资产的人。在某种程度上,你的目标实现了。

另一方面,如果您打算在信使r的架构中添加区块链,那么您可能无法解决任何问题,比如审查和隐私风险。相反,你会得到新的问题。

当用户数量增长,购买加密货币变得比现在更容易的时候,找到更好的用例可能是不久的事情。但是,一般来说,考虑以下应用程序域是有意义的:

• 官僚主义的和耗时的过程,如汇款到国外和繁琐的文书工作。

• 基于平台信任的流程,包括慈善基金和赌场。

• 管理在不同领域或不相关的公司使用的数据:旅游经营者,贷款历史,和各种黑名单。

• 控制本质上不可信的过程,比如投票和筹款。

这不一定意味着区块链能够完美地融入其中。您应该始终掌握其他更优化的技术。你的思路应该集中在解决一个特定的问题上,而不是就简单将区块链嵌入到你的活动中。

根据国家《关于防范代币发行融资风险的公告》,大家应警惕代币发行融资与交易的风险隐患。

本文来自LIANYI转载,不代表链一财经立场,转载请联系原作者。

发表评论

登录后才能评论

联系我们

微信:kkyves

邮件:kefu@lianyi.com

时间:7x24,节假日bu休息

QR code