区块链研发,做一个区块链开发成本有多少

"区块链应用app的开发成本费用估算是按照app的功能复杂性来看的区块链研发,按启动科技预估的大概开发费用在十几万到几十万。一般来说,功能复杂的app所需的开发时间就越长,从而成本较高,功能简单的就比较快,费用也就低了。开发费用主要是算人工成本和硬件消耗,功能越复杂的app需要的时间越长,相应的费用就会较高。像如果有现成源码能满足功能要求的情况下,那么就可以通过修改和增加功能快速的实现开发,这样价格就很低。 "

首先我们需要了解区块链的概念:

区块链研发,做一个区块链开发成本有多少

区块链是由包含交易信息的区块从后向前有序链接起来的数据结构。它可以被存储为flat file(⼀种包含没有相对关系记录的 ⽂件),或是存储在⼀个简单数据库中。⽐特币核⼼客⼾端使⽤Google的LevelDB数据库存储区块链元数据。区块被从后向 前有序地链接在这个链条⾥,每个区块都指向前⼀个区块。区块链经常被视为⼀个垂直的栈,第⼀个区块作为栈底的⾸区 块,随后每个区块都被放置在其他区块之上。⽤栈来形象化表⽰区块依次堆叠这⼀概念后,我们便可以使⽤⼀些术语,例 如:“⾼度”来表⽰区块与⾸区块之间的距离;以及“顶部”或“顶端”来表⽰最新添加的区块。

在这推荐下面这本《精通比特币》:

智能合约:

智能合约是以太坊重要组成部分,以太坊有两种账户类型:一是普通转账的账户,利用密钥控制账户上的代币。另一种账户类型是合约类型账户。该类型账户可以部署逻辑代码,这样你可以在区块链上开发自己的应用。一般该类型应用成为Dapp,去中心化应用。

Solidity:

Solidity是一种语法类似JavaScript的高级语言。它被设计成以编译的方式生成以太坊虚拟机代码。在后续内容中你将会发现,使用它很容易创建用于投票、众筹、封闭拍卖、多重签名钱包等等的合约。目前所有智能合约都是由Solidity进行编写。

了解这三块基本可以编写区块链应用了。

我建议你在深入研究之前,先加强对基本原理的理解。区块链建立在计算机科学、密码学和经济学数十年研究的基础上。中本聪是一个“反叛者”,但他也很清楚之前的历史。为了理解区块链的工作原理,您需要了解先于区块链产生的区块,以及为什么他们不起作用。

以下是一些需要熟悉的预备知识,按重要性排序。(注意,以下内容里的链接只是一个学习起点,您可能会想深入了解更多。)

计算机科学

数据结构

您需要熟悉主要数据结构的特性和复杂性保证:linked lists, binary search trees, hash maps, 以及 graphs (特别是在区块链中具有显著特征的有向非循环图)。从头开始构建它们有助于更好地理解它们的工作方式和属性。

密码学

密码学是加密货币的代名词和基础。所有加密货币都使用公钥/私钥加密(public/private key cryptography)作为身份和身份验证的基础。我建议学习 RSA( RSA)(它很容易学习,不需要很强的数学背景),然后看看 ecdsa( ECDSA)。椭圆曲线密码需要更抽象的数学——理解所有细节并不重要,但要知道,这是大多数加密货币(包括比特币)使用的密码。

另一个重要的密码原语是密码散列函数(哈希函数)。这些可用于承诺机制,并且是 merkle 树的构建块。Merkle trees 支持 Merkle proofs,这是区块链用于可扩展性的关键优化之一。

分布式系统

关于分布式系统有一些很好的教科书,但这是一个庞大而困难的研究领域。分布式系统对于区块链的论证是绝对必要的,因此在处理区块链编程之前必须在此建立基础。

一旦你的系统不再运行在一台机器上,就必须开始论证一致性和共识。您需要了解可线性化和最终一致性模型之间的区别。您还需要了解容错一致性算法的保证,例如 Paxos 和 RAFT。了解在分布式系统中论证时间的困难,理解安全与活性之间的权衡。

有了这样的背景,你将能够理解拜占庭容错共识的难点,这是公共区块链的主要安全要求。您将需要了解 PBFT,这是首个提供拜占庭容错共识的可扩展算法之一。PBFT 是许多非工作证明区块链一致性算法的基础。再次提醒,你不需要了解 PBFT 太多的细节,而是总体的思路及其安全性保障机制。

理解传统的分布式数据库也是非常有用的(其核心思想是,区块链本质上是数据库)。了解分片(例如通过一致性哈希),主从复制(leader-follower replication),分布式哈希表 (DHTs),例如 Chord 或 Kademlia。

网络

区块链的分布式在很大程度上源于其点对点网络拓扑结构。因此,区块链是过去 p2p 网络的直接产物。

要了解区块链通信模型,您需要了解计算机网络的基础知识:如 TCP 与 UDP、数据包模型、IP数据包,以及大致的网络路由工作方式。

公共区块链倾向于通过 gossip protocols 和 flooding 来传播信息。学习p2p网络设计的历史,包括 Napster to Gnutella, BitTorrent,Tor,都具有一定的指导意义。区块链有自己的特点,但它们借鉴了这些网络的经验教训以及它们是如何设计的。

经济学

加密货币本质上是多学科的 - 这是使它们如此迷人和激进的主要原因。除了计算机科学,密码学和网络,它们还与经济学密切相关。加密货币可以通过其经济结构获得许多安全属性,这通常被称为加密经济学。因此,经济学对于理解加密货币至关重要。

博弈论

对加密货币最重要的经济学分支是博弈论,即研究多个主体之间的收益和激励。你不需要深入到很细节,但你需要了解博弈论分析的基本工具,以及如何使用它们来分析一次性和持续性游戏中的激励因素。

你需要掌握两个关键的概念:纳什均衡点和谢林点,因为它们在密码学分析中具有突出的特点。

宏观经济学

加密货币不仅是协议,也是货币的形式。因此,它们响应宏观经济规律(如果它们可以被称为规律的话)。加密货币受制于不同的货币政策,并对通货膨胀和通货紧缩作出可预见的反应。你应该了解这些过程以及它们对支出、储蓄等的影响。

另一个有价值的经济概念是货币的流通速度,特别是当它与货币的价值相对应时。

微观经济学

加密货币也深深地与市场交织在一起,这需要了解微观经济学。你需要对供求曲线有很强的直觉。你应该能够解释竞争和机会成本(它们将经常应用于挖矿领域)。在许多硬币发行和密码经济系统中,拍卖理论具有突出的特点。

我希望你已经熟悉了其中的一些话题。如果是的话,请随意浏览或跳过它们。

好吧,到现在为止,你已经完成并巩固了你的基础知识,现在您已经掌握了以上的理论,让我们来开始区块链开发吧。

2022-06-11

2022-06-11