王森涛
发布于 2026-08-03 / 0 阅读
0
0

《社交网络》与去中心化社交:从Facebook帝国到Farcaster协议

《社交网络》与去中心化社交:从Facebook帝国到Farcaster协议

2010年,大卫·芬奇用一部《社交网络》,将马克·扎克伯格从哈佛宿舍到全球社交帝国缔造者的故事,剪辑成了一部关于背叛、野心与代码的现代史诗。影片结尾,艾丽卡·奥尔布赖特在法庭上宣读的证词,让扎克伯格独自坐在空荡荡的办公室里,一遍遍刷新着前女友的Facebook页面——那个拥有五亿用户的社交帝国,终究无法填补一个人的孤独。十四年后,当我们站在Web3的门槛上回望这部电影,它不再仅仅是一个创业故事,而是一面预言式的镜子:社交网络的终极困境,从来不是连接,而是所有权。


第一幕:算法的诞生——从哈佛宿舍到全球社交图谱

第一场:2003年的倒影

《社交网络》的开场戏,是扎克伯格与女友艾丽卡在酒吧的对话。镜头用快速切换的剪辑,勾勒出一个天才的思维节奏——他能在11秒内完成一个国际象棋的残局,却无法在11秒内理解一段人类关系的复杂性。艾丽卡说出的那句"你会以为是因为你是个怪人才没有女朋友,但其实是因为你是个混蛋",成为了整部电影的核心母题:技术天才与社交能力之间的鸿沟,正是社交网络诞生的原动力。

扎克伯格回到宿舍,喝下整瓶啤酒,开始在博客上写下一段愤怒的代码。镜头跟随他的指尖,在键盘上飞速敲击,屏幕上的文字被实时投影到他的脸上——这是大卫·芬奇最精彩的一段视觉蒙太奇。FaceMash的诞生,本质上是一次对社交数据的暴力索引:将哈佛女生的照片两两对比,让用户投票选出"更热"的那一个。这个看似幼稚的程序,其底层逻辑却预示了后来整个社交网络产业的算法核心——注意力经济的排名机制。

从编导的视角看,这场戏的精妙之处在于它用视觉语言完成了"算法"的具象化:当扎克伯格的代码在屏幕上滚动时,镜头切换至哈佛校园的各个宿舍,无数学生在点击、投票、刷新。这种交叉剪辑,将一段代码的执行过程,变成了一个社会事件的编年史。它告诉观众:算法从来不是中立的,它从一开始就带着创造者的情绪与偏见。

第二场:社交图谱的链式反应

电影中,温克尔沃斯兄弟向扎克伯格提出了一个想法:Harvard Connection——一个只面向哈佛精英的社交网络。这个想法在扎克伯格手中,被重新编码为TheFacebook。电影用蒙太奇手法,将Mark与Eduardo在宿舍中开发TheFacebook的过程,剪辑成了一曲创业的狂想曲:从编写代码、搭建服务器,到在校园内推广、用户数从几十到几千的指数级增长。

这段叙事对应着社交网络的核心技术概念——"社交图谱"(Social Graph)。在电影中,扎克伯格向肖恩·帕克解释Facebook的愿景时,用"把整个社交图谱搬到线上"来概括自己的野心。社交图谱的实质,是人与人的关系在数字空间中的映射:每一个节点是一个用户,每一条边是一种关系(朋友、关注、点赞)。在传统互联网时代,这张图谱是分散的——你的朋友列表在A平台,你的同事在B平台,你的家人在C平台。Facebook的创举在于,它将这张图谱统一到了一个平台之上。

但这里埋下了一个深刻的悖论:当社交图谱被统一到单一平台时,创造图谱的人——用户——却失去了对图谱的所有权。Facebook的商业模式,正是建立在对用户社交图谱的商业化变现之上。电影中,肖恩·帕克对扎克伯格说的一句"One million dollars. It's not cool. You know what's cool? A billion dollars.",将这场资本游戏的本质暴露无遗。用户创造的关系数据,被转化为广告投放的精准靶心,而用户本人,既没有得到报酬,也没有控制权。

第三场:墙与花园

《社交网络》中最令人心碎的一场戏,是Eduardo Saverin的股份被稀释到0.03%的那一刻。镜头从Eduardo震惊的脸,切换到扎克伯格在键盘上敲击"撤回"的指尖——这是一个关于"围墙花园"(Walled Garden)的隐喻。Facebook的商业模式,本质上是在互联网的开放原野上,筑起一座巨大的花园:所有内容、所有关系、所有互动,都在花园的围墙内发生。花园的拥有者决定谁可以进入、谁可以被看见、谁可以赚钱。

这种"围墙花园"模式,在Web2时代被证明是极其成功的商业模型。Facebook的日活用户超过30亿,Meta的市值一度突破万亿美元。但从社会学的角度看,这种模式也带来了严重的问题:算法推荐制造的信息茧房、平台审查对言论自由的影响、用户数据被滥用的隐私危机。电影中,扎克伯格在听证会上被质问的场景,正是这种矛盾的预演——当一个人拥有超过五亿用户的社交图谱时,他实际上拥有了一种新的权力形态,而这种权力不受任何民主机制的约束。

People connecting through digital networks


第二幕:中心化的代价——当用户成为产品

第一场:数据炼油厂

如果我们将《社交网络》作为一个案例研究,其核心问题可以归结为:当社交图谱被中心化平台垄断时,用户变成了什么?

答案是:用户变成了原材料。

在电影中,扎克伯格与肖恩·帕克讨论Facebook的未来时,有一段精妙的对话。帕克说:"广告不是Facebook的未来,Facebook的未来是让所有人都活在Facebook上。"这句话在2024年的今天看来,几乎是一种预言。Meta的商业模式已经从简单的广告展示,演变为一个庞大的数据炼油厂:用户的每一个点击、每一次滑动、每一秒的停留,都被提炼为训练算法模型的燃料。用户的行为数据被转化为预测模型,预测用户的政治倾向、消费习惯、情感状态,然后被卖给广告主、政治竞选团队,甚至用于训练AI。

这种模式在技术层面被称为"监控资本主义"(Surveillance Capitalism)。哈佛商学院的教授肖莎娜·祖博夫在《监控资本主义时代》一书中,将这种模式定义为"对人类经验的单向商品化"。在《社交网络》的语境中,扎克伯格在电影中反复强调的"连接世界",在商业实践中变成了"监控世界"。用户不再是社交网络的使用者,而是社交网络的产品。

第二场:算法的蒙太奇

《社交网络》中,大卫·芬奇使用了大量的快速剪辑和交叉蒙太奇,来表现扎克伯格内心的冲突与外部世界的加速。这种叙事手法,本身就是对算法推荐系统的一种隐喻。

在Facebook的算法推荐中,内容被按照用户的兴趣偏好进行排序,形成一种"算法蒙太奇":用户看到的内容,不是按时间顺序排列的,而是按照算法预测的"用户最可能互动"的顺序排列的。这种蒙太奇的效果是:用户被困在一个由算法编织的叙事世界里,在这个世界里,极端内容获得更多关注,虚假信息传播得更快,而温和、复杂、需要深度思考的内容被边缘化。

电影中的一场戏特别值得注意:当扎克伯格在Facebook上添加前女友艾丽卡为好友时,他不断刷新页面,等待她的回应。这种"刷新"的行为,在社交媒体时代变成了我们日常生活的常态——我们不断刷新信息流,期待新的点赞、新的评论、新的关注。这种强迫性的刷新行为,不是用户的心理弱点,而是算法精心设计的反馈机制:每一次刷新,都是一次多巴胺的释放,都是一次注意力被捕获的过程。

第三场:信任的裂痕

2018年,剑桥分析公司丑闻爆发,揭示了Facebook用户数据被用于政治操纵的真相。8700万用户的数据被未经授权地收集,用于精准投放政治广告,影响美国大选和英国脱欧公投。这场丑闻,在某种程度上是《社交网络》中扎克伯格道德困境的延伸——当一个人拥有了决定"谁可以看到什么"的权力,他是否也承担了"什么应该被看到"的责任?

从编导的视角看,剑桥分析事件是一个教科书级的"叙事情节反转":Facebook的叙事从"连接世界"转变为"分裂世界"。扎克伯格在国会听证会上的表现,与电影中扎克伯格在哈佛纪律委员会面前的辩解形成了微妙的呼应。电影中,他引用"如果你创造了五亿人的社交网络,你可能会改变一些规则"来为自己的行为辩护;现实中,他说"我们对自己的责任有深刻的理解"——两者都试图在技术创新的旗帜下,回避对权力结构的追问。

这段历史,直接催生了去中心化社交运动的兴起。用户开始意识到:在一个中心化的社交网络中,用户不是平台的主人,而是平台的产品。当用户对平台的信任裂痕扩大到无法修复时,去中心化社交的叙事开始浮出水面。

Code and blockchain technology visualization


第三幕:去中心化的重构——从Farcaster到Lens

第一场:Farcaster协议——足够去中心化的社交

如果说《社交网络》中的Facebook是Web2社交的终极形态,那么Farcaster协议就是Web3社交的先锋实验。Farcaster由前Coinbase工程师Dan Romero和Varun Srinivasan于2020年创立,其核心理念是"足够去中心化"(Sufficiently Decentralized)——在保证用户对数据和身份的控制权的同时,不牺牲社交网络的用户体验。

Farcaster的架构设计,可以比喻为一种"分布式制片厂"模式:在传统电影工业中,制片厂控制着从剧本到发行的全链条;在Web2社交平台中,平台控制着从内容创作到分发的全流程。而在Farcaster中,每个用户都拥有自己的"身份合约"——一个链上的智能合约,记录着用户的身份信息、社交关系、内容数据。用户的数据不是存储在Farcaster的服务器上,而是分布在一个去中心化的节点网络中——这个网络被称为Hub。

Farcaster的Hub网络,类似于电影制作中的"分布式摄制组":每个Hub节点都保存着完整的社交图谱数据,任何节点都可以独立验证数据的真实性。这种架构确保了即使Farcaster公司倒闭,用户的社交图谱也不会消失——正如一部电影即使发行公司破产,胶片本身依然存在。这种"抗审查"和"抗平台消亡"的特性,是去中心化社交的核心价值主张。

以下是一个Farcaster身份合约的Solidity实现示例,展示了用户如何在链上注册自己的社交身份:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

contract FarcasterIdentity {
    struct User {
        uint256 fid;           // Farcaster ID
        string username;
        bytes32 custodyAddress;
        uint256 recoveryAddress;
        uint256 registeredAt;
    }

    mapping(uint256 => User) public users;
    mapping(string => uint256) public usernameToFid;
    uint256 public totalUsers;

    event UserRegistered(uint256 indexed fid, string username, address custodyAddress);

    function register(string calldata username) external returns (uint256) {
        require(bytes(username).length > 0, "Username required");
        require(usernameToFid[username] == 0, "Username taken");

        totalUsers++;
        uint256 newFid = totalUsers;

        users[newFid] = User({
            fid: newFid,
            username: username,
            custodyAddress: keccak256(abi.encodePacked(msg.sender)),
            recoveryAddress: 0,
            registeredAt: block.timestamp
        });

        usernameToFid[username] = newFid;
        emit UserRegistered(newFid, username, msg.sender);

        return newFid;
    }

    function transferCustody(uint256 fid, address newCustody) external {
        // 只有当前的custody地址可以转移控制权
        require(keccak256(abi.encodePacked(msg.sender)) == users[fid].custodyAddress, "Unauthorized");
        users[fid].custodyAddress = keccak256(abi.encodePacked(newCustody));
    }
}

第二场:Lens Protocol——用户拥有的社交图谱

如果说Farcaster是"足够去中心化"的社交协议,那么Lens Protocol就是"完全去中心化"的社交图谱。Lens由Aave创始人Stani Kulechov于2022年推出,运行在Polygon网络上,其核心理念是"用户拥有的社交图谱"(User-Owned Social Graph)。

在Lens的架构中,用户的社交关系被表示为NFT(非同质化代币)。当你关注一个用户时,你实际上获得了一个"Follow NFT"——这个NFT记录了你与另一个用户之间的关系,并且完全由你拥有。如果你对这个平台的服务不满意,你可以带着你的"Follow NFT"转移到另一个平台,你的社交图谱不会丢失。

这种设计在电影术语中,可以比喻为"演员的肖像权":在传统电影工业中,演员的肖像权属于演员本人,而不是制片厂。当一部电影制作完成后,演员可以带着自己的肖像去参加下一部电影,而不需要重新获得制片厂的许可。在Lens中,用户的社交图谱(即用户与他人的关系)属于用户本人,而不是平台。这种"社交图谱的可移植性",是去中心化社交对中心化社交最根本的颠覆。

第三场:Token-gated Community——代币作为入场券

在《社交网络》中,Facebook的早期增长策略是"精英锁定"——只允许哈佛学生注册,然后逐步扩展到其他常春藤盟校,再到所有大学,最后向所有人开放。这种"渐进式开放"的策略,恰好与Web3中"Token-gated"(代币门控)的概念形成了有趣的对照。

在Web3社交中,"Token-gated Community"意味着:只有持有特定代币的用户,才能访问特定的社区或内容。这种机制,与电影中温克尔沃斯兄弟的"Harvard Connection"理念在精神上是相通的——一个基于身份验证的专有社交空间。但关键区别在于:在Web3中,身份验证的标准不是由平台决定的,而是由社区成员通过智能合约共同制定的。

例如,一个电影NFT社区可以设置规则:只有持有特定电影NFT的用户,才能加入社区的Discord频道、参与投票决定下一部众筹电影的项目,或者访问独家幕后花絮。这种机制,将电影工业中的"粉丝俱乐部"概念,升级为一种链上的、可编程的、自治的社区经济。

以下是一个使用Python脚本分析链上社交图谱的示例,展示了如何通过The Graph协议查询去中心化社交网络的用户关系:

import requests
import json
from typing import Dict, List

# 使用The Graph子图查询Lens Protocol的社交图谱
GRAPH_URL = "https://api.thegraph.com/subgraphs/name/lens-protocol/lens"

def query_user_followers(user_handle: str, limit: int = 10) -> List[Dict]:
    """
    查询Lens Protocol上用户的粉丝列表
    类似于电影《社交网络》中扎克伯格查看Facebook的用户增长
    """
    query = """
    {
      profiles(where: {handle: "%s"}) {
        id
        handle
        followerCount
        followers(first: %d) {
          follower {
            id
            handle
          }
          followedAt
        }
      }
    }
    """ % (user_handle, limit)

    response = requests.post(GRAPH_URL, json={"query": query})
    data = response.json()

    if "data" in data and data["data"]["profiles"]:
        profile = data["data"]["profiles"][0]
        print(f"用户: {profile['handle']}")
        print(f"粉丝总数: {profile['followerCount']}")
        print("--- 前%d位粉丝 ---" % limit)

        for follow in profile["followers"]:
            follower = follow["follower"]
            print(f"  - {follower['handle']} (ID: {follower['id']})")

        return profile["followers"]
    else:
        print("未找到用户")
        return []

def analyze_social_graph(user_handle: str) -> Dict:
    """分析用户的社交图谱结构"""
    followers = query_user_followers(user_handle, 20)
    return {
        "user": user_handle,
        "total_followers": len(followers),
        "graph_data": followers
    }

# 分析示例:查询一个Lens用户的社交图谱
if __name__ == "__main__":
    graph = analyze_social_graph("lensprotocol")
    print(f"\n社交图谱分析完成: {json.dumps(graph, indent=2)}")

Blockchain network visualization


第四幕:重新想象——创作者经济的未来

第一场:从平台抽成到链上直接变现

《社交网络》中,扎克伯格拒绝早期广告的原因,是"广告会破坏用户体验"。但最终,Facebook的商业模式完全依赖于广告。这种"平台抽成"的模式,在Web2内容经济中表现为:平台控制着创作者与用户之间的交易通道,并从每笔交易中抽取高额佣金。

在去中心化社交中,创作者可以通过智能合约直接向用户收费。例如,一个视频创作者可以发行自己的"创作代币"——用户持有这个代币,才能观看其独家内容。创作者可以自己设定代币的价格、发行量、甚至是收益分配比例。平台不再从中抽成,因为平台本身只是一个协议层面的基础设施,没有控制权。

这种模式,在电影工业中对应着"独立制片"的梦想:在传统好莱坞体系中,制片厂控制着从融资到发行的全链条,创作者只能获得有限的分成。在Web3时代,创作者可以通过代币化自己的作品,直接向粉丝融资、发行、分账,绕过了传统制片厂的中介角色。

第二场:身份与声誉的自主权

在《社交网络》中,扎克伯格在Facebook上添加前女友艾丽卡为好友的行为,揭示了一个深刻的身份问题:在中心化社交网络中,你的数字身份是由平台定义的。如果Facebook封禁了你的账号,你的社交关系、你的内容、你的数字身份,都将在一瞬间消失。

在去中心化社交中,用户的身份是链上的、自托管的。你的身份是一对公私钥,而不是一个由平台管理的用户名和密码。你的社交图谱是记录在链上的,而不是存储在平台的数据库中。即使你使用的某个去中心化社交应用关闭了,你的身份和社交关系依然存在——你可以带着它们迁移到另一个应用。

这种"身份自主权",在编导视角中对应着"作者权"(Authorial Rights)的概念。在电影工业中,导演的"作者权"意味着导演对电影作品的最终剪辑权、署名权和完整性保护权。在去中心化社交中,用户的"身份自主权"意味着用户对自己数字身份的所有权、控制权和可移植权。这种权力的转移,与《社交网络》中扎克伯格对Eduardo股份的稀释,形成了鲜明的对比——在Web3中,没有人可以稀释你的身份所有权。

第三场:社交图谱的互操作性——Farcaster x Lens x ActivityPub

去中心化社交的终极愿景,是社交图谱的互操作性。在《社交网络》中,Facebook的"围墙花园"模式意味着:你在Facebook上建立的社交关系,无法被带到其他平台。你不能把你的Facebook好友列表导入Twitter,也不能把你的Instagram粉丝迁移到TikTok。这种"数据锁定"效应,是平台粘性的核心来源。

在Web3中,Farcaster、Lens Protocol、以及基于ActivityPub的Mastodon等协议,正在探索社交图谱的互操作性。Farcaster的Hub网络允许不同的应用读取同一个社交图谱,Lens的NFT-based社交关系可以在不同的应用之间传递,而ActivityPub则实现了不同Mastodon实例之间的联邦通讯。

这种互操作性,在电影术语中对应着"跨IP叙事"(Cross-IP Storytelling)的概念。在漫威宇宙中,钢铁侠可以在自己的电影中出现,也可以在美国队长的电影中客串,还可以在复仇者联盟中集结——这种跨作品的叙事,依赖于不同IP之间的互操作性协议。在去中心化社交中,你的社交关系可以在不同的"社交宇宙"之间自由流动,你的身份不是一个平台的"专属角色",而是一个跨平台的"通用角色"。

以下是一个JavaScript示例,展示了如何通过Farcaster API查询用户的跨平台社交关系:

// Farcaster Hub API 查询示例
// 展示如何通过去中心化节点查询用户的社交图谱

const axios = require('axios');

class FarcasterSocialGraph {
    constructor(hubUrl = 'https://hub.farcaster.standardcrypto.vc:2281') {
        this.hubUrl = hubUrl;
    }

    /**
     * 查询用户的关注者(Followers)
     * 类似于《社交网络》中扎克伯格查看Facebook的用户增长数据
     */
    async getFollowers(fid, pageSize = 10) {
        try {
            const response = await axios.get(`${this.hubUrl}/v1/linksByTarget`, {
                params: {
                    targetFid: fid,
                    linkType: 'follow',
                    pageSize: pageSize
                }
            });
            return response.data;
        } catch (error) {
            console.error('查询关注者失败:', error.message);
            return [];
        }
    }

    /**
     * 查询用户的关注对象(Following)
     */
    async getFollowing(fid, pageSize = 10) {
        try {
            const response = await axios.get(`${this.hubUrl}/v1/linksByFid`, {
                params: {
                    fid: fid,
                    linkType: 'follow',
                    pageSize: pageSize
                }
            });
            return response.data;
        } catch (error) {
            console.error('查询关注对象失败:', error.message);
            return [];
        }
    }

    /**
     * 分析两个用户之间的社交关系路径
     * 对应《社交网络》中"六度分隔"理论的实现
     */
    async findShortestPath(fid1, fid2, maxDepth = 3) {
        const visited = new Set();
        const queue = [{ fid: fid1, path: [fid1] }];

        while (queue.length > 0) {
            const { fid, path } = queue.shift();
            if (fid === fid2) {
                return path;
            }
            if (path.length > maxDepth) continue;

            const following = await this.getFollowing(fid, 50);
            for (const link of following.messages || []) {
                const targetFid = link.data.targetFid;
                if (!visited.has(targetFid)) {
                    visited.add(targetFid);
                    queue.push({ fid: targetFid, path: [...path, targetFid] });
                }
            }
        }
        return null; // 未找到路径
    }

    /**
     * 获取用户的社交图谱统计数据
     */
    async getSocialGraphStats(fid) {
        const [followers, following] = await Promise.all([
            this.getFollowers(fid),
            this.getFollowing(fid)
        ]);

        return {
            fid: fid,
            followerCount: followers.total || 0,
            followingCount: following.total || 0,
            // 社交图谱的"影响力分数":粉丝数/关注数
            influenceScore: following.total > 0
                ? (followers.total / following.total).toFixed(2)
                : 'N/A'
        };
    }
}

// 使用示例
async function main() {
    const graph = new FarcasterSocialGraph();

    // 模拟《社交网络》中扎克伯格查看Facebook用户增长的情景
    const zuckFid = 1; // Farcaster创始人的FID
    const stats = await graph.getSocialGraphStats(zuckFid);

    console.log('=== Farcaster 社交图谱分析 ===');
    console.log(`用户FID: ${stats.fid}`);
    console.log(`粉丝数: ${stats.followerCount}`);
    console.log(`关注数: ${stats.followingCount}`);
    console.log(`影响力分数: ${stats.influenceScore}`);
    console.log('===============================');

    // 查找两个用户之间的社交路径
    const path = await graph.findShortestPath(1, 100);
    if (path) {
        console.log(`最短社交路径: ${path.join(' → ')}`);
    } else {
        console.log('未找到社交路径');
    }
}

main().catch(console.error);

Code on a computer screen


尾声:下一个镜头

《社交网络》的最后一个镜头,是扎克伯格独自坐在空荡荡的办公室里,刷新着前女友的Facebook页面。这个镜头,是整部电影最孤独的画面——一个拥有五亿用户的人,却无法连接到一个具体的人。这个镜头,也是整个Web2社交时代最深刻的隐喻:中心化的社交网络,表面上连接了世界,实际上却制造了更深层的孤独。

十四年后,当我们站在去中心化社交的门口,回望这部电影,我们看到的不仅仅是一个关于Facebook的故事,更是一个关于权力、所有权和信任的寓言。Farcaster、Lens Protocol、ActivityPub等去中心化社交协议,正在尝试回答一个《社交网络》没有回答的问题:是否有可能建造一个社交网络,让用户同时拥有连接的自由和所有权的保障?

从编导的视角看,这场从中心化到去中心化的转变,是一场"叙事革命":Web2社交的叙事是"平台即命运"——用户的故事被平台编写、被平台存储、被平台变现。Web3社交的叙事是"用户即作者"——用户的故事由用户编写、由用户拥有、由用户掌控。这场革命,与电影工业从制片厂控制到独立电影的转变,有着惊人的相似之处。

当然,去中心化社交并非没有挑战。用户体验的复杂性、链上交易的成本、监管的不确定性、以及"冷启动"问题——如何在一无所有的情况下吸引用户——都是横亘在去中心化社交面前的现实障碍。正如《社交网络》中扎克伯格面对的挑战一样,技术的可能性与商业的现实性之间,永远存在着一道需要跨越的鸿沟。

但正如《社交网络》中肖恩·帕克对扎克伯格说的那句话:"You don't want to be a billionaire. You want to be a king."——在Web3的世界里,用户不再需要国王,因为每个用户都可以成为自己数字王国的主人。这或许才是《社交网络》留给我们的真正启示:不是关于如何建立一个帝国,而是关于如何让每个人都能拥有自己的城堡。

在这个万物皆可Token化的时代,技术的迭代往往比镜头切换更快。作为北京城市学院2021级广播电视编导的毕业生,我始终在影像与区块链的交汇处寻找共鸣。感谢阅读,我是王森涛,让我们在视听与去中心化的世界里,继续探索。


评论