区块链 - 我为什么选择区块链技术?

2019-09-10 10:39 栏目:经验之谈 来源: 查看()
我最近做了两件事:编写代码和招募人员。代码写起来不容易,很难招人。代码是可以及时完成的。招募人才和招募合适的人才更加困难。在区块链中招募合适的人才更加困难。最近,我和我的同事和朋友谈了区块链。很多人都知道区块链是猜测,金字塔计划。与他们交谈,区块链也是技术性的,很多人都很可疑。一点情绪,认知上有差异。跨越行业并走出舒适区需要很大的勇气。以前的同事和朋友都非常擅长技术,但在创业方面,实际压力很大,抵押贷款,稳定的收入让每个人都徘徊。当然,这不是为了鼓励创业。并非所有人都适合创业。并不是每个人都需要创业,做他们喜欢做的事情,并且幸福地生活。就我而言,我选择了创业。 我一直想写一篇关于我对区块链的理解和对区块链技术的理解的文章。许多优秀的技术人员对区块链技术感到好奇和担忧。区块链非常接近金钱,经常与金融事物混在一起。许多人只是认为区块链是投机硬币,区块链是金字塔方案。

区块链 - 我为什么选择区块链技术?

1.什么是区块链? 区块链是一个综合的跨学科学科,由三个主要组成部分组成:P2P网络通信,加密理论和博弈论。 P2P网络通信是区块链的基础。加密理论确保帐户安全性,事务安全性和块安全性。博弈论有助于在多个节点之间达成共识。有许多共识的算法:POW,POS,DPOS,BFT,PBFT,LBFT等。基于共识机制的经济模型从经济激励的角度进一步设计了一个稳定和持久的模型。代币是经济模型的一种表达形式。比特币代币是为转账支付的,并支付给矿工。矿工有利可图,从而维持稳定的比特币网络。以太坊作为全球的计算机,增加了智能合约并提出了GAS模型。转移资金或执行智能合约计算需要消耗GAS,这是以太币代币的消耗。由于参与者的游戏,这些代币自然是一种目标,即“商品”。因此,令牌有价格。 建议大家查看比特币的源代码,至少看一下《精通比特币》。可以对比特币或区块链技术有一个大致的了解。 2.区块链有什么价值吗? 很多人(了解区块链,不了解区块链)会问同样的问题。不同的人有不同的答案。有人说区块链的价值是分散的,提高了效率。有人说区块链的价值在于共识,并且有共识的价值。有人说区块链没有价值,这是一个骗局。 从技术人员的角度来看,区块链的价值在于区块链是一种新的“媒体”。区块链作为一种媒介,允许信息透明而不是伪造。麦克卢汉的《理解媒介》告诉我们,媒体可能会改变人们和人们一起工作的方式。最初,它被区块链技术所吸引,因为区块链是一种“工具”,可以让更多人相互信任。至于这种新的协同作用方式,具体的发展形式将不得而知。权力下放只是一种新的协同作用方式。 区块链的价值和代币的价格是两个不同的东西。区块链技术很有价值。代币的价格现在更像是一个标准。在没有监管的情况下,区块链的价值几乎没有任何联系。 区块链,然后是牛,只是一种媒介。你不需要妖魔化它,你不能低估它。没有技术是一步到位,允许它慢慢地发展和演变。但是没有技术是最后一种形式。 3.区块链的未来是什么? 区块链的未来应该是什么,现在没有人能说清楚。未来需要逐步探索,区块链本身也在不断发展。权力下放,它能完全颠覆集权吗?我不确定。集中服务可提供更高的效率和用户体验。权力下放强调数据的透明度和安全性。未来可能是集中化和分散化的结合。 4.货币和货币价格 在过去几年行业链条行业的残酷增长中,我别无选择,只能提出一个简单的观点:货币价格和技术之间几乎没有关系。作为目标,金钱已经慢慢成为炒作。发现了一个神奇的现象。一开始,技术人员仍然有意识地区分项目方是否真的在卖货币。后来,它似乎麻木,甚至有时混淆,无论是交易模式的创新还是新的金字塔营销。现在他们都是事件发生后的英雄。成功的项目是创新,失败是金字塔式的销售。 技术人员,不明白,这么简单粗暴的赚钱方式。即使是一个有点气馁的区块链产业,充满了这么多“欺骗”的伎俩,你能不能做好技术? 5.块链在技术上是否可用? 区块链当然是技术性的,区块链是一个复杂的跨学科主题。让我们放在一边,我对区块链的人文,社会和经济方面都不是很专业。从计算机技术的角度来看,块链技术也非常复杂和专业。 先从编程语言开始。2018年,go语言在区块链流行,几乎大点的公链都是用go进行开发,确实简洁好用,网络处理,命令行处理,都有非常丰富的库。2019年,rust语言慢慢流行起来。Facebook的libra项目全部采用rust语言开发。零知识证明的一些库也是由rust语言开发。Rust语言类型预先定义,避免安全隐患;数组定长,防止溢出攻击。Rust语言有个新的概念,所有权(Ownership)的内存管理方式。内存的所有权管理方式,能让编译器在编译的时候检查。所有权是管理堆上数据。通过所有权的设计,Rust在编译的时候,能检查和避免 数据竞争情况(多个地址访问同一数据,数据写入的时候必须有效等等)。区块链开发,经常在多种开发语言之间切换:go,rust,C++,python。 有的时候,代码开发有点恍惚:变量类型的定义在变量的前面还是后面?表达式后面需不需要分号?表达式后面是否要加冒号? 数据结构,区块链中有两个比较重要的数据结构:Merkle树和DAG结构。Merkle树,通过叶子节点两两计算hash结果,生成上一层的节点,直至树根。Merkle树数据结构,有很明显的好处,叶子节点的任何改动,都会改动树根。Merkle树还有个优点,在给定某个Merkle path,能证明某个叶子节点确实在以某个树根的merkle树上。Merkle树,也有很多变种。以太坊管理账户信息(世界状态),使用的是MPT树。MPT树通过增加或者合并节点,优化了Merkle树的深度。Merkle树一般是两叉树,其实还可以扩展为多叉树。 DAG,有向无环图。传统的区块链(比如,比特币,以太坊),使用的单序的区块链接方式,也就是后一个区块依赖前一个区块。这种传统的区块链组织方式,限制了交易的性能(TPS)。为了提高TPS,DAG是一种新的区块组织的方式。如何在DAG的区块结构方式下,确定区块/交易的顺序,有很多相关的研究和算法。 虚拟机和智能合约,虚拟机是在区块链上安全执行“程序”的环境。智能合约,就是在虚拟机中执行的程序。不同的公链提供了不同类型的虚拟机,比如以太坊的EVM,星云链的JVM,EOS的基于WASM的虚拟机等等。不同的虚拟机有不同的编程规范。 共识算法,共识算法让数据在一定的网络环境下达成共识。最传统的是BFT/PBFT共识算法,基于投票以及少数服从多数的原则,只要超过2/3的节点签名的数据就是达成共识的数据。PBFT共识算法,需要有几个阶段,每个阶段都需要收集超过2/3的节点签名。这种方式,安全可靠,不会有区块分叉,但是效率比较低。PBFT共识算法的复杂度是O(N^2)。为了提高共识算法的性能,提出了其他很多基于BFT思想的共识算法,比如HoneyBadgerBFT算法,LBFT算法。Algorand也是PBFT算法中的一种变种,先随机抽取节点,然后让这些抽取的节点用PBFT算法形成共识。POS/DPOS共识算法,采用和PBFT算法完全不一样的共识原理。POS/DPOS共识算法,采用谁抵押多,谁出块概率高的思想,简单粗暴。抵押越多,贡献越大,也有相应的出块奖励。 加密算法,区块链中的加密算法比较多。椭圆曲线加密,各种签名算法(BLS,盲签,环签等等)。 零知识证明,零知识证明的理论基础就更多了:椭圆曲线,大数计算,群论,同态加密,配对函数,零知识证明的各种算法(zkSNARK,zkSTARK,BulletProof等等)。零知识证明的理论可以追溯到1985年。目前有两个方向的应用:隐私和数据压缩。Zcash就是利用零知识证明实现交易隐私,交易的双方信息以及交易金额只有交易双方可知。Loopring的去中心化交易协议3.0,就是利用零知识证明实现了链下计算,链上验证的思想。Filecoin利用零知识证明实现”数据的压缩“,用户存储的数据(数据量很大)不需要直接上链,只需要将数据证明(数据量比较小,几百个字节)存储在链上。在零知识证明技术之前,区块链世界是区块链世界,现实世界是现实世界。零知识证明的技术,提供了一种方式,将现实世界,部分映射到了区块链世界。 很多人问我,为什么坚持做区块链技术,因为我对区块链技术感兴趣。仅此而已。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发