区块链编程与智能合约入门
在当今的加密货币领域,比特币(Bitcoin)和以太坊(Ethereum)是最为知名的两种加密货币。它们不仅代表了数字货币的前沿,还为区块链编程提供了广阔的空间。
比特币与以太坊的编程差异
- 比特币脚本编程 :比特币主要用于价值的存储和转移。在比特币交易中,需要提供脚本。例如,简单的转账脚本会检查接收方的公钥哈希是否与地址匹配,并要求提供私钥证明所有权。还可以编写一些复杂的脚本,如要求四个授权签名中的至少两个来解锁账户,或者设置交易在未来五年内冻结。然而,比特币脚本使用的是简单的基于栈的编程语言,甚至无法实现循环。这是因为比特币的设计目的是避免复杂程序,确保脚本执行的确定性和可停止性。
- 以太坊编程能力 :以太坊的出现是为了突破比特币的局限性。以太坊的编程语言更加复杂,支持循环结构,理论上可以创建永远运行的程序。以太坊不仅可以实现比特币的价值存储和转移功能,还能创建投票程序、托管服务、在线拍卖,甚至基于它创建新的加密货币。创建以太坊上的加密货币相对容易,对于有经验的程序员来说,只需一个周末就能完成。
不同类型的区块链程序员
区块链编程涵盖了多种不同的方向,不同方向所需的技能也有所不同:
| 编程方向 | 所需技能 |
| — | — |
| 改进比特币或创建比特币分叉 | C++、Python,深入的密码学知识 |
| 改进以太坊虚拟机 | Go、C++、Python,深入理解底层密码学库函数 |
| 在以太坊上编写程序 | Solidity 或 Vyper,