《以太坊白皮书》笔记(2)—— 以太坊介绍. 上

《以太坊白皮书》原文链接:https://github.com/ethereum/wiki/wiki/White-Paper

Ethereum

Ethereum: a blockchain with a built-in Turing-complete programming language, allowing anyone to write smart contracts and decentralized applications where they can create their own arbitrary rules for ownership, transaction formats and state transition functions.

以太坊: 一个内置了图灵完备的程序语言的区块链。任何人可以编写智能合约;或者 “可以创造任意属于自己的规则” 的去中心化应用;以及交易格式和状态转化函数。

#1 Smart Contract

以太坊中最重要的概念: 智能合约。相对于比特币来说,智能合约可以说是比特币中 ”脚本“ 的升级加强版:智能合约可以支持更强大的脚本语言(图灵完备的脚本语言),并允许开发者开发任意应用实现智能合约(可以将以太坊想象为一个应用商店,用户可以从上面买到任一应用)。

以太坊 = 比特币 + 智能合约

Smart Contract

智能合约,从概念上来说,是运行在可复制、共享的账本上的一段计算机程序。它由用户发布,且发布之后无法修改。每个合约都相当于一段代码,且都有一个账户地址。每当这个地址发生交易的时候,这段代码就会被执行。

  1. 每个合约只能以区块链作为输入和输出。
  2. 任一合约可以调用其他合约中的函数。
  3. 执行合约的过程中可以创建新的交易。

#2 Accounts

在以太坊中,状态由一个个称之为 “账户” 的对象组成。每一个账户有一个 20 byte 的地址和<u>账户之间价值和信息的直接转换而来的状态转变。</u>(这段话有点难理解,简单来说就是账户的交易过程中产生的对象实体。)

以太坊中每个账户包含 4 个部分:

  1. 随机数,一个用来确保每笔交易只能被执行一次的计数器。
  2. 当前的以太余额 (以太坊中的货币单位为 “以太” )。
  3. 账户的合约代码,如果有的话。
  4. 账户的存储(默认为空)。

账户有两种类型:

  1. 外部所有账户,由私钥控制。这种账户没有包含任何代码,而且任何人都可以通过创建和签名一条交易来通过这种账户发送消息。
  2. 合约账户,由它们的合约代码控制。在合约账户中,每当此账户接收到一条消息的时候,它的合约代码便会被执行。这使得合约账户可以读写内部存储,并发送其他消息或者在执行过程中创建其他交易。

Note

“合约” 在以太坊中并不应该被视为一种应该 “用它来填满” 或者 “服从于它的规则” 的东西。它们更像是一种在以太坊执行环境内部的 “自主媒介”。它们总是在接收到消息或者交易的时候执行一段代码片段,并直接控制属于它们的以太余额和键值存储,以此来追踪不断变化的状态。

#3 Messages and Transactions

Transactions

以太坊中的 “交易” :表示已经签名过的,储存着一个发送到外部所有账户的 “消息” 的数据的集合。包含:

  1. 消息的接收者
  2. 标识发送者的签名
  3. 发送者转移给接受者的以太总额
  4. 一个可选的数据域
  5. 一个 STARTAGS值,用来表示交易执行过程中允许的最大计算步骤
  6. 一个 GASPRICE值,用来表示每一个计算步骤发送者需要支付的费用

Note

STARTGASGASPRICE 两个部分对于以太坊的 anti-denial-of-service model (反阻断服务模型) 至关重要。为防止意外出现或者恶意执行的代码无限循环,以及一些代码造成的计算浪费。

计算的基本单位为 "gas"。通常,一个计算步骤会消耗一个 gas,不过一些复杂的(包括一些需要昂贵的计算成本的,或者需要储存更多数据到状态中的)计算会消耗更多的 gas。交易数据中每一个字节都需要 5 个 gas 的花费。

Messages

所有合约都向其他合约可以发送 ”消息“ 。这里的消息是一些虚拟对象,它们只在以太坊的执行环境中存在,且不会被序列化。一个消息包含:

  1. 消息的发送者 (默认包含)
  2. 消息的接收者
  3. 关联的交易的以太金额
  4. 一个可选的数据域
  5. 一个 STARTGAS

需要着重留意的是,一个消息就像一笔交易一样,会使得接收者的账户执行它的关联代码。不同点在于,消息是由合约产生的(当合约代码执行到 CALL 操作码时),且它不是一个外部参与者。因此,合约可以和其他合约产生关联,就像就像外部参与者一样。

Note

以太坊中消息机制的存在,使得合约与外部账户拥有同样的 —— 发送消息和创建其他合约的权力。


阅读 Github 上 《Ethereum - White Paper》 的一些笔记

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270