系统架构
Last updated
Last updated
系统由股东协议合约、管理人合约、登记簿合约和投资协议合约四大类智能合约构成。
登记簿合约定义了股权、质权、期权等权益簿记和股东名册、董事高管名册、股东会纪要、董事会纪要等公司治理文件簿记。 核心功能是定义各类簿记对象的属性构成、数据结构、参数校验算法和逻辑校验算法,以及这些簿记对象增、删、改、查的基础方法和API。
登记簿合约的功能
用户行权时,登记簿合约会根据管理人合约的调用指令:
① 登记簿合约会根据管理人合约的调用指令检索并反馈特定权益的状态值或特定法律行为的历史轨迹信息;
② 管理人合约依据上述反馈信息校验行权条件是否成就,或计算相关参数的具体数值;
③ 管理人合约调用特定的登记簿合约修改特定权益的状态值,或者将法律行为的内容、后果或轨迹信息记录下来。
例如,董事就职时,需要调用总管理人合约的“董事就职”接口,输入批准其任职的股东会决议编号和拟就任的董事职位编号,然后:
① 总管理人合约会向注册中心合约查询指令发出账户的用户编号,随后调用董事高管名册管理人合约的“董事就职”接口,处理后续“就职”动作;
② 董事高管名册管理人合约会首先调用股东会决议登记簿,查询并核实该项动议类别是否为批准董事任职,以及是否已获得股东会表决通过;
③ 若类别相符且已通过表决,则董事高管名册管理人合约会再次调用股东会决议登记簿,核实行权用户编号与职位信息中候选人编号是否一致,若一致则将该项动议的状态信息修改为“已执行”;
④ 董事高管名册管理人合约调取董事高管名册登记簿,将用户编号、就职日期记录下来,完成董事就职的法律动作记录。
在上述过程中,股东会纪要合约和高管名册合约就属于登记簿合约,前者根据管理人合约的请求反馈动议的类别和表决情况,供管理人合约判断行权的先决条件是否成就,后者则进一步核实行权用户与候选人的数字身份一致性,最后由管理人合约将用户编号、就职日期等信息写入高管名册合约以记录”就职“动作的行为轨迹。
根据簿记信息的类别,登记簿合约可分为权益簿记和治理文件簿记两大类别,具体包括:
① 股东协议登记簿(Register of Constitutions, “ROC”): 跟踪记录所有版本股东协议的合约地址、效力状态及创建、审议、表决时间表,可查询并获取当前有效的股东协议,以及已失效的历史版本股东协议;
② 董事高管名册(Register of Directors, “ROD”): 簿记所有董事、高管的职位信息,包括任职候选人的用户编号、该高管的提名人、任命高管的动议表决规则、高管就职日期、任职期限届满日等信息,可供系统其他智能合约查阅核实高管身份和职权有效性;
③ 董事会纪要(Board Meeting Minutes, “BMM”): 簿记提交董事会表决的各项动议信息,包括动议的提案用户、提案时间、表决开始及终止时间、表决投票结果、有效表决票的态度、委托投票安排、决议执行人、决议执行状态等信息,可供系统其他智能合约查阅动议的内容索引、审核状态、流程时间表、提案人、执行人等信息;
④ 股东名册(Register of Members, “ROM”): 簿记各股东的持股及表决权情况,包括持有股权的编号、认缴出资总额、实缴出资总额、清洁(无质押、无股转合约安排)实缴出资总额及表决权权重等信息,供查阅核实股东身份、持股编号清单、认缴实缴出资总额、计算表决权总额等信息;
⑤ 股东会纪要(General Meeting Minutes, “GMM”): 簿记提交股东会表决的各项动议信息,包括动议的提案人、提案时间、表决开始及终止时间、表决投票结果、有效表决票的态度、委托投票安排、决议执行人、决议执行状态等信息,可供系统其他智能合约查阅动议的内容索引、审核状态、流程时间表、提案人、执行人等信息;
⑥ 投资协议登记簿(Register of Agreements, “ROA”):跟踪记录所有股权认购、股权转让等投资协议的合约地址、效力状态及履行时间表,可模拟交易结果并推算交割后公司控制权归属及股权比例情况,方便判断拖售权、随售权等特殊股东权益的行权条件成就情况,可查询获取所有投资协议合约对象;
⑦ 期权登记簿(Register of Options, “ROO”):簿记股东协议约定的强买权、强卖权等以股权为标的的期权信息,包括权利人、义务人、行权期开始时间、结束时间、触发条件、行权价格、标的股份类别、标的股份实缴金额等;
⑧ 质权登记簿(Register of Pledges, “ROP”):簿记股权出质信息,可查询获取所有股权质押信息,包括债权人、债务人、出质人、质押实缴金额、担保债权金额、债权到期日、担保到期日等;
⑨ 股权登记簿(Register of Shares, “ROS”):簿记公司股权信息,可查询获取公司所有已发行的股份信息,包括股东、股份类别、表决权重、发行日期、实缴期限、票面金额、实缴金额、发行价格等;
⑩ 股权挂牌交易登记簿(List of Orders, “LOO”):簿记以挂牌出让、集中竞价方式交易的新股发行要约、股权转让要约、股权认购要约、适格投资人、成交交易等信息。
管理人合约定义了关于公司治理、股权交易的几十种法律行为的API,以此管理和控制相关法律行为的行为主体、行权条件、行动流程和法律后果。
管理人合约功能
用户行权时,管理人合约会按照特定的法律逻辑调用股东协议合约、特定的登记簿合约,查询法律行为需要满足哪些前提条件(或后续计算需要依赖哪些中间参数),结合从API接口获取的输入参数,计算并判断行权条件是否成就,或算出中间参数的具体数值;若所有条件均成就,则调用特定的登记簿合约来修改特定簿记权益的状态值,或者将特定法律行为的意思表示内容、行为轨迹信息记录下来。
例如,股东表决时,用户需要调用管理人合约的“投票表决”API,输入目标动议编号及赞同、反对或弃权的表决态度,然后管理人合约会:
① 从股东会决议登记簿合约中查询获取该项动议的数据对象;
② 根据动议对象中规定的表决规则编号从股东协议合约中查询获取该动议的各类行权期天数;
③ 根据当前区块时间戳判断是否处于表决期;
④ 若处于表决期,则再调用股东名册登记簿合约验证用户是否为公司股东;
⑤ 若是股东,则再从动议对象的代理权映射表中获得该股东的表决权受托情况,进而再调取股东名册登记簿合约查询获取所有委托股东的表决权权重;
⑥ 最后,将投票人用户编号、表决态度、表决权重、表决时间等信息存储记录在股东会决议登记簿合约的动议对象中。
从前例可知,管理人合约是各项法律行为行权条件和逻辑流程的控制中枢。为满足EIP170规范的字节码容量要求,系统定义了总管理人和多个分项管理人两大类智能合约。
总管理人合约
总管理人合约处于公司簿记系统最上层,具备如下核心功能:
① 是公司簿记系统唯一的写操作指令入口,负责将写指令路由到特定的分项簿记管理人合约;
② 同时也是各登记簿合约的地址索引中枢,可根据查询请求反馈特定登记簿合约的账户地址;
③ 对外代表公司法人主体,以公司名义完成链上法律行为,例如,签署或执行智能合约、支付代币、行使表决权等;
④ 代表公司法人持有ETH、CBP等链上加密资产,根据股东会决议或董事会决议,支付特定金额的加密资产至决议规定的特定账户;
⑤ 临时存储股转交易的ETH对价收入,可根据股权卖方的调用请求将暂存的ETH划转至卖方主钥匙账户地址。
分项管理人合约
分项管理人合约是控制法律行为主体、条件、流程与后果的核心计算层,具体包括:
① 股东协议登记簿管理人(“ROC Keeper”): 控制股东协议合约的创建、传阅、签署、激活、加入几项法律行为,负责管理股东协议登记簿;
② 董事高管名册管理人(“ROD Keeper”): 控制董事和高管的就职、解职、辞职几项法律行为,负责管理高管名册登记簿;
③ 董事会纪要管理人(“BMM Keeper”): 控制董事会动议的创建、提案、委托投票代理人、投票表决、统计表决结果、执行决议等法律动作,其中的动议包括任命及解职高管、审议文件、支付公司持有的代币、调用智能合约几大类别,负责管理董事会纪要登记簿;
④ 股东名册管理人(“ROM Keeper”): 控制设定股东人数上限、设置实缴出资哈希锁、解锁并提取实缴出资、撤回被锁定的实缴出资、减少注册资本几项法律行为,管理股东名册和股权登记簿两个登记簿合约;
⑤ 股东会纪要管理人(“GMM Keeper”): 控制股东会动议的创建、提案、委托投票代理人、投票表决、统计表决结果、执行决议等法律动作,其中的动议包括任命及解职董事、审议文件、支付代币、调用智能合约几大类别,管理股东会纪要登记簿;
⑥ 投资协议登记簿管理人(“ROA Keeper”):控制投资协议合约的创建、传阅、签署、锁定标的股权、解锁并提取股权、发行新股、转让股权、终止交易、支付对价几项法律行为,管理投资协议登记簿和股权登记簿两项簿记;
⑦ 期权登记簿管理人(“ROO Keeper”):控制期权触发条件的输入、行使期权、设定期权质押、支付期权标的股对价、执行期权质权、请求否决人购买标的股、支付否决交易标的股对价、执行否决人股权几项法律行为,管理期权登记簿、股权登记簿两项簿记;
⑧ 质权登记簿管理人(“ROP Keeper”):控制设立质权、转让质权、偿付债务、延长担保期、锁定质权、解锁并释放质权、撤销质权、执行质权几项法律行为,管理质权登记簿、股权登记簿、投资协议登记簿三项簿记且在执行质权时会自动生成投资协议合约;
⑨ 特殊股东权益管理人(“SHA Keeper”):控制行使随售权、接受随售请求、行使反稀释权、接受反稀释赠与股份、行使优先购买权、计算优先认购股份总额几项法律行为,管理投资协议登记簿、股权登记簿两项簿记且会自动生成《投资协议》;
⑩ 股权挂牌交易登记簿管理人(“LOO Keeper”):控制注册投资人、批准投资人、撤销投资资格、挂牌新股发行要约、撤回新股发行要约、挂牌股转要约、撤回股转要约、提交购买订单几项法律行为,管理股权挂牌交易登记簿、股权登记簿、股东名册登记簿三个登记簿合约。
股东协议合约用来动态定义跟股权交易、公司治理相关的行为规则和行权条件。
用户行权时,股东协议合约会根据簿记管理人合约的查询指令检索特定条款,然后反馈某种法律行为所需遵循的特定条件阈值,或者反馈特定条件是否成就的判断结果,供管理人合约后续计算使用。
例如,股东表决时,管理人合约会调用股东协议合约,查询特定表决规则项下的表决期限安排,然后根据反馈的天数和该议案的提案日计算表决开始日和结束日,最后根据当前的区块时间戳判断是否处于表决期内。
股东协议合约的具体条款按公司治理的法律逻辑抽象定义为不同的数据对象和方法,在起草过程中可以动态的给数据对象的特定属性设定不同的值,以此定义某类法律行为的不同规则,经股东会审议表决通过后发生法律效力。
比如,可以给增资交易设定30天的审议期限和三分之二的表决通过阈值、给股转交易设定15天的审议期限和二分之一的表决通过阈值,那么在相关协议提交股东会审议表决过程中,管理人合约就可以根据交易类别来计算和判断不同表决程序的时间流程和通过情况。
股东协议合约中规定的各项公司治理、股权交易规则按其复杂程度和规制事项分为”规则“和”条款“两大类别,分别由两个映射表来存储、管理。
规则
“规则”,用32字节数组(bytes32)来定义、依靠“规则解析库合约”解析其每条规则的关键属性值、期限值或条件判断阈值,使之可以转变为结构化数据对象。
每条规则都对应着自己的规则编号,可以方便的建立起从“编号”到“规则”的映射表,然后根据规则编号从映射表中检索到特定规则对象。
目前的规则包括:公司治理一般规则、表决规则、高管职位分配规则、优先权规则、一致行动人规则,以及股权挂牌交易规则。
条款
“条款”, 由独立的智能合约定义,依靠结构化数据对象及其方法来定义复杂法律行为的行权条件、行为流程和中间参数算法。每个条款都对应着自己的条款编号,可以动态的建立起从“编号”到“合约地址”的映射表,然后根据条款编号从映射表中检索到特定条款的智能合约。
目前的条款合约包括:反稀释条款、锁定期条款、拖售权条款、随售权条款,以及(强买、强卖)期权条款。
所以,股东间协议合约可以理解为以“规则映射表”和“条款映射表”为核心的规则数据库,用于动态设定各项规则的参数并在运行时检索获取它们。规则解析库合约和各类条款合约的功能则是按照法律逻辑将各种规则和条款建立模型,抽象的定义出其核心属性构成,然后通过暴露出的API让用户可以动态设置这些规则和条款的不同属性值、参数值。这样,系统运行时,就可以根据用户指令,由特定的管理人合约按特定法律行为的预设逻辑去检索股东间协议合约,获取特定规则的属性值、参数值,再进行条件判断或流程控制。
投资协议合约用于动态定义增发股权、转让股权等股权交易安排的各项交易要素,例如标的股权、转让价格、转让数量、买方身份、签约截止日、交割截止日、合同当事方等等。
投资协议合约妥善签署后,当事方可调用管理人合约的相关接口推动协议的审议、表决、支付及交割流程,管理人合约将按投资协议和股东协议的相关约定自动完成权利人身份识别、行权条件校验、交易流程控制,直至实现最后的交易目的——变更股权簿记。
投资协议合约本质上是一系列变更股权簿记状态的写指令脚本,在管理人合约的控制下按股东协议事先规定的条件和流程,在相关当事方的外部触发动作推动下有序的自动履行,合约执行的最后目标就是修改股权登记簿合约中簿记的股权状态信息,进而实现增发股权或转让股权的交易目的。
如果股东协议中约定有“优先权”、“随售权”、“拖售权”、”反稀释“等特殊股东权益,则相关权利人可在股权交易的行权期间调用管理人合约的相关接口行权,管理人合约则会自动按股东协议合约中定义的算法和流程变更投资协议合约的交易相对方(优先权)、添加股权赠与交易(反稀释)或增加相同出让价格的交易(随售权)等操作,从而实现股东协议中约定的各种商业安排。
投资协议合约规定的股权交易实质性要素(标的股权、买方、数量、价格、交割截止日等)由结构化数据对象——“交易订单”来具体定义,关于合同当事方构成、签约截止日、交割截止日等程序性要素则由可复用、可继承的智能合约组件——“签字页”来定义。
交易订单定义了在股权登记簿中发行新股或变更已有股权所需要的全部信息,而且还特意定义了一个32字节长度的哈希时间锁,供交易双方链下或跨链支付股权对价时使用。
按股权交易的买方及标的股权的性质差异,交易订单被分为增资、对外转股、内部转股3种基本类别。这3种基本交易订单类别的排列组合,进一步构成了7种投资协议类别。
股东协议中,可针对上述7种不同的投资协议类别设定不同的表决规则,从而满足投资人的否决权安排或其他特殊权益要求。
签字页是一个独立、可复用、可继承的组件类智能合约,定义了合同当事方、签名栏、签约截止日、交割截止日几项关键的履约要素。
投资协议合约定义了初始签字页和补充签字页两个签字页。初始签字页供合同当事方在订立合同时签署,补充签字页将在权利人行使”优先权“、“随售权”、“拖售权”、“反稀释权”等特殊股东权益时由管理人合约自动生成。
当事方调用管理人合约的签约接口签署合同时,管理人合约会在签名栏中记录签约动作的区块编号及区块时间戳。签名栏预留了签名哈希属性,供当事方存证纸质签名的彩扫件使用。