TGViewer
Laisky's Notes Laisky's Notes @laiskynotes · 3.34K subscribers
Post #207 1.33K
https://laisky.notion.site/Oracles-ethereum-org-39ad225791784191873d4791bdf164e2?pvs=4

ETH 官网这篇关于预言机(Oracle)的文档写得很好,帮我厘清了很多概念。

作为一个多年的服务端开发人员,有很多先入为主的观念,这些观念反而会误导我理解区块链的概念。比如说起分布式,直觉上就觉得会有很多节点在并行计算,会有大量的通讯开销,以及可怕的数据竞争(data race)。服务端领域有 RAFT 等协议,让你可以协调许多的节点,让其能够就数据的状态达成一致。

我们知道区块链的核心也是追求数据的一致性,而且是在拜占庭条件下的一致性(即节点可能会作恶)。但是区块链并不需要依赖网络通信来就某一数据的一致性进行反复协商,实际上每个节点都是独立的运行,按照区块链协议的设计来生成区块,同时尽可能地广播自己所生成的区块,如果自己生成的区块被广为接受成为链的一部分,那么自己就能赢得挖矿所产生的奖励。

生成区块时每个矿工都埋头干活不依赖于和其他矿工交互,而最终所有的矿工却能产生出唯一的同一个链,这其中的核心就在于确定性(deterministic)。无论是 PoS 还是 PoW,区块生成算法的核心都是确定性,确定性使得区块具有了可验证性(proof),每个矿工生成新的区块后尽可能地广播出去,其他矿工收到后可以验证这个区块是否符合规则,如果符合规则,那么就可以接受这个区块添加到自己所处于的链的头部,当遇到分叉时选取最长的链,这样就实现了最终只会有一个链的历史被广泛接受,这个链也就是最终的数据共识。(网络的交互主要在于验证,而不是生成)

区块的核心是交易记录,而智能合约则是一种根据条件自动执行的交易。我曾一度疑惑,智能合约分布式地并行运行于大量节点上,最终如何保证数据一致性?比如如何保证生成的 NFT 的 tokenID 不冲突?实际上答案就在前文所述的决定性之中,虽然运行时是并行的,但是最终被接纳的区块是串行的(serializable),所以从数据一致性的角度去考虑智能合约时,可以简单地将其理解为一个单线程的程序,根本不需要考虑数据竞争问题。

也正是因为要严格保持决定性,极大的限制了智能合约的能力,比如无法访问 off-chain 的外部的数据,因为外部数据是不确定的。对此的解决办法就是引入 Oracle。Oracle 扮演了一个 on-chain/off-chain 的桥梁,既可以将外部数据固化到链上,也可以将链上的数据推送到外部,这样就实现了智能合约与外部世界的交互。 #blockchain
laisky on Notion Oracles | ethereum.org | Notion TL;DR;
  • ❤ 4
More from @laiskynotes
  1. Oct 6, 2026https://x.com/LaiskyCai/status/2107307813727060123?s=20 codex 最近有三个完全免费的工具,结合之后可以发挥非常强大能力:…
  2. Sep 15, 2026学习了一下 OpenAI 推出的 Agents API https://openai.com/index/introducing-the-agents-api/ 众所周知 Agen…
  3. Aug 28, 2026前阵子读了本很有趣的书,侯杨方的《这才是丝绸之路》。作者抛开抽象的文本溯源,而是采用实地考察的方式,重走了真实的丝绸之路。此书给我最大的感触就是:真实而且符合常理。 在我以前的想象…
  4. Jun 5, 2026读完 Mario Puzo 的《教父 The Godfather》三部曲小说,才意识到自己当年年轻时根本完全就没看懂电影《教父》。然后又去把电影重温了一遍,才发现原来电影里有很多细…
  5. May 22, 2026记录一下最近遇到的一个糟心事儿。 最近两个月开始又开始找工作机会,总的来说很不顺利,托朋友联系了两个内推也是石沉大海。(各位要是有远程工作的机会也请联系 job@laisky.co…
  6. May 14, 2026作为一个从业十多年的程序员,我已经半年没手写过一行代码了。上个月大概提交了 20 万行,这个月大概 4 万行。 昨天认真考虑了一下这个现象,我个人认为,虽然 AI 仍然存在显然的不…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →