区块链代码用什么写,区块链代币开发大概价格

  

  1.什么是区块链?   

  

  区块链是一门综合性的跨界学科,由P2P网络通信、加密理论和博弈论三大块组成。P2P网络通信是区块链的基础。加密理论,保证账户安全、交易安全和区块安全。博弈论,帮助多个节点达成共识。有很多共识算法:POW,POS,DPOS,BFT,PBFT,LBFT等等。经济模型,在共识机制的基础上,进一步从经济激励方面设计一个稳定的长期模型。代币是一种经济模型。比特币是支付转账和支付矿工的代币。矿工有利可图,从而维持了稳定的比特币网络。以太坊作为世界的计算机,加入了智能契约,提出了气体模型。或者转账执行智能合约计算需要消耗燃气,也就是消耗以太网令牌。这些代币,因为参与者的博弈,自然是一种标的,也就是“商品”。因此,令牌是有价格的。   

  

  2 区块链有没有价值?   

  

  许多人(了解区块链的人和不了解的人)会问同样的问题。不同的人有不同的答案。有人说,区块链的价值在于分权和效率的提高。有人说,区块链的价值在于共识,有共识才有价值。有人说区块链没有价值,是个骗局。   

  

  从技术人的角度来看,区块链的价值在于区块链是一种新的“媒介”。区块链作为一种媒介,可以让信息透明化,不可篡改。麦克卢汉的《理解媒介》告诉我们,媒体可能会改变人们相互合作的方式。起初,我被区块链的技术所吸引,因为区块链作为一种“工具”,可以让更多的人相互信任和合作。至于这种新的合作方式,会发展成什么形式还是未知数。去中心化只是一种新的协作方式。   

  

  区块链的价值和代币的价格是两回事。区块链的技术是有价值的。目前代币价格更多的是一种标的。在目前缺乏监管的情况下,这与区块链的价值没有多大关系。   

  

  区块链再牛逼,也只是个媒介。不要妖魔化它,也不要低估它。任何技术都不可能一步到位,任其慢慢发展演变。但是没有技术是最终形态。   

  

  3.区块链的未来怎样?   

  

  区块链的未来是什么?现在应该没人能说清楚。未来需要一步一步探索,区块链本身也在发展。去中心化,能彻底颠覆中心化吗?我不确定。集中提供服务,效率更高,用户体验更好。去中心化,更强调数据的透明和安全。未来可能是集权和分权的结合。   

  

  4.区块链有技术吗?   

  

  区块链当然有技术,区块链是一个复杂的交叉学科。先不说区块链的人文、社会、经济方面的技术。我不是很专业。就计算机技术而言,区块链的技术也非常复杂和专业。   

  

  从编程语言开始。2018年,go语言在区块链开始流行,几乎所有较大的公链都是用go开发的,确实简洁易用。有非常丰富的网络处理和命令行处理的库。2019年,锈语慢慢流行起来。脸书libra项目全部用rust语言开发。一些知识零证明的库也是用rust语言开发的。Rust语言类型是预定义的,以避免潜在的安全隐患;数组的长度是固定的,以防止溢出攻击。Rust语言有一个新概念,所有权的内存管理模式。内存所有权管理模式,允许编译器在编译时检查。所有权是管理堆上的数据。通过所有权的设计,Rust可以检查并避免编译时的数据竞争(多个地址访问相同的数据,数据写入时必须有效等。).区块链开发,经常在多种开发语言之间切换:go,rust,C,python。有时候,代码开发有点恍惚:变量类型的定义是在变量前面还是后面?表达式后面需要分号吗?是否要在表达式后添加冒号?   

  

  数据结构,区块链中有两种重要的数据结构:Merkle树和DAG结构。Merkle树,哈希结果按叶节点两两计算,生成上层的节点,直到树根。Merkle树数据结构具有明显的优势。叶节点的任何变化都会改变树根。Merkle tree还有一个优势。给定某个Merkle路径,可以证明某个叶节点确实在有某个根的Merkle树上。Merkle树,有很多品种。以太坊管理账户信息(世界状态),使用MPT树。MPT树通过添加或合并节点来优化Merkle树的深度。Merkle树一般是二叉树,但也可以扩展为多分支树。   

  

  有向无环图。传统的区块链(例如比特币、以太坊)使用单阶区块链,即后一个块依赖于前一个块。这种传统的区块链组织限制了事务(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利用零知识证明实现”数据的压缩“,用户存储的数据(数据量很大)不需要直接上链,只需要将数据证明(数据量比较小,几百个字节)存储在链上。在零知识证明技术之前,区块链世界是区块链世界,现实世界是现实世界。零知识证明的技术,提供了一种方式,将现实世界,部分映射到了区块链世界。

  


  

相关文章