采用以太坊开源技术体系构架,Solidity智能合约开发,以太坊具有去中心化、开放性、安全性、匿名性等特点。
以太坊是一种用于在不受中心化监管机构管控的环境下构建应用程序和组织、持有资产、进行交易和通信的技术。使用以太坊时无需提供任何个人详细信息,用户控制自己的数据以及共享内容。以太坊有自己的加密货币 — 以太币,用以支付在以太坊网络上进行特定活动的费用。
区块链是一个交易数据库,在网络中的众多计算机之间更新和共享。每次添加一组新交易时,即称为一个“区块”,区块链由此而得名。大多数区块链都是公有的,用户只能添加而不能删除数据。如果有人想更改系统上的任何信息或欺骗系统,那么他需要在网络中大多数计算机上都如此操作。那将是一个超级大工程。这使得已经建立的区块链(如以太坊)十分安全。
以太坊能更好的保护隐私,是属于所有人的银行服务。
以太坊协议将尽可能简单,即便以某些数据存储和时间上的低效为代价。一个普通的程序员也能够地去实现完整的开发说明。这将终有助于降低任何特殊个人或精英团体可能对协议的影响并且推进以太坊作为对所有人开放的协议的应用前景。添加复杂性的优化将不会被接受,除非它们提供了非常根本性的益处。
没有“特性”是以太坊设计哲学中的一个根本性部分。取而代之的是,以太坊提供了一个内部的图灵完备的脚本语言以供用户来构建任何可以精确定义的智能合约或交易类型。想建立一个全规模的守护程序(Daemon)或天网(Skynet),你可能需要几千个联锁合约并且确定慷慨地喂养它们,一切皆有可能。
以太坊的不同部分应被设计为尽可能模块化的和可分的。开发过程中,应该能够容易地让在协议某处做一个小改动的同时应用层却可以不加改动地继续正常运行。以太坊开发应该大程度地做好这些事情以助益于整个加密货币生态系统,而不仅是自身。
协议不应主动地试图限制或阻碍特定的类目或用法,协议中的所有监管机制都应被设计为直接监管危害,不应试图反对特定的不受欢迎的应用。人们甚至可以在以太坊之上运行一个无限循环脚本,只要他愿意为其支付按计算步骤计算的交易费用。
区块链技术是由多方共同记录和维护的一个1分布式数据库,该数据库通过哈希索引形成一种链状结构,其中数据的记录和维护通过密码学技术来保护其完整性,使得任何一方难以篡改、抵赖、造假。
智能合约赋予账本可编程的特性,区块链 2.0 通过虚拟机的方式运行代码实现智能合约的功能,比如以太币的以太坊虚拟机(EVM)。同时,这一层通过在智能合约上添加能够与用户交互的前台界面,形成去中心化的应用(DAPP)。当然,在某些技术文档中认为DAPP 应该在智能合约层之上单独为应用层,也是有一定道理,只要不影响理解即可。
激励层主要实现以太币的发行和分配机制,以太币不是数字货币,而是定位于平台运行的燃料,运行智能合约和发送交易都需要向矿工支付一定的以太币。以太币可以通过挖矿获得,矿工每挖到一个区块固定奖励 5 个以太币。
共识层主要实现全网所有节点对交易和数据达成,以太坊采用两种共识机制,初期采用工作量证明机制(POW),待网络中的以太币充分流通和分散后,改为采用交易速度更快、无资源消耗的权益证明机制(POS),从而有效地避免了纯 POS 机制导致的初期权益分配不公平的情况。
网络层主要实现网络节点的连接和通信,又称“点对点技术”,是没有中心服务器、依靠用户群交换信息的互联网体系。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,其具有去中心化与健壮性等特点。
数据层底层的技术,是一切的基础,主要实现了两个功能,一个是相关数据的存储,另一个是账户和交易的实现与安全。数据存储主要基于 Merkle 树,通过区块的方式和链式结构实现,大多以 KV 数据库的方式实现持久化,比如以太坊采用 LevelDB。账号和交易的实现基于数字签名、哈希函数和非对称加密技术等多种密码学算法和技术,保证了交易在去中心化的情况下能够安全地进行。
区块链主要运用了四个基础技术,分别是哈希运算(SHA256)、数字签名、P2P网络和工作量证明。