WO2025042748A2 - System and method for enabling asset ownership rights in an investment fund - Google Patents
System and method for enabling asset ownership rights in an investment fund Download PDFInfo
- Publication number
- WO2025042748A2 WO2025042748A2 PCT/US2024/042705 US2024042705W WO2025042748A2 WO 2025042748 A2 WO2025042748 A2 WO 2025042748A2 US 2024042705 W US2024042705 W US 2024042705W WO 2025042748 A2 WO2025042748 A2 WO 2025042748A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- ballot
- user
- voting
- fund
- management system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/06—Asset management; Financial planning or analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2230/00—Voting or election arrangements
Definitions
- the present disclosure relates generally to asset management. More particularly, the present disclosure relates to enabling voting for owners of assets in a management fund.
- the services provided via computer technology include investment services.
- computing technology enables users to invest in funds that hold a variety of assets. Each of the assets can be associated with particular rights.
- computing technology makes it easier for users to enter and exit these types of funds, the systems that manage these funds have an increased need for enabling users to exercise the rights associated with the assets in the fund in which they are partial owners.
- An example aspect is directed toward a computer-implemented method.
- the method comprises generating a ballot for the set of one or more issues.
- the method further comprises transmitting the ballot to a user computing device associated with the user.
- the method further comprises receiving, from the user computing device, a completed ballot.
- the method further comprises generating a voting record for the completed ballot, the voting record including a link associated with the completed ballot.
- the method further comprises providing the voting record to the user computing device, the voting record including a link value that enables the user to verify that the completed ballot has been recorded.
- the method further comprises aggregating a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
- the computing system comprises one or more processors; and a computer-readable memory.
- the computer-readable memory stores instructions that, when executed by the one or more processors, cause the system to perform operations comprising transmitting the ballot to a user computing device associated with the user.
- the operations further comprise receiving, from the user computing device, a completed ballot.
- the operations further comprise generating a voting record for the completed ballot, the voting record including a link associated with the completed ballot.
- the operations further comprise providing the voting record to the user computing device, the voting record including a link value that enables the user to verify that the completed ballot has been recorded.
- the operations further comprise aggregating a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
- Another example aspect of the present disclosure is directed tow ards a computer- readable medium storing instructions.
- the instructions when executed by one or more computing devices, cause the device to perform operations comprising transmitting the ballot to a user computing device associated with the user.
- the operations further comprise receiving, from the user computing device, a completed ballot.
- the operations further comprise generating a voting record for the completed ballot, the voting record including a link associated with the completed ballot.
- the operations further comprise providing the voting record to the user computing device, the voting record including a link value that enables the user to verify- that the completed ballot has been recorded.
- the operations further comprise aggregating a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
- FIG. 1 depicts a block diagram of an example computing system that enables a fund management system to establish funds, receive ballots, and submit votes to organizations according to example embodiments of the present disclosure
- FIG. 2 depicts a system that enables the creation of a fund according to example embodiments of the present disclosure
- FIG. 3 is an example system for establishing the policies of a fund according to example embodiments of the present disclosure:
- FIG. 4 is an example table of ownership records for a particular fund stored in a fund data storage system according to example embodiments of the present disclosure
- FIG. 5 is an example of a system for generating issue records for one or more voting issues according to example embodiments of the present disclosure
- FIG. 6 is an example method for validating a ballot request according to example embodiments of the present disclosure
- FIG. 7 is an example method for generating a ballot based on a received ballot request according to example embodiments of the present disclosure
- FIG. 8 is an example method for completing a ballot and transmitting it to the fund management system according to example embodiments of the present disclosure
- FIG. 9 is an example method for validating a vote request according to example embodiments of the present disclosure
- FIG. 10 is an example method for storing a vote request according to example embodiments of the present disclosure.
- FIG. 11 is an example method for notifying users that their vote request was successful according to example embodiments of the present disclosure
- FIG. 12 is an example method for determining the weight of each ballot according to example embodiments of the present disclosure.
- FIG. 13 is an example method for tallying the total vote on an issue according to example embodiments of the present disclosure
- FIG. 14 is a diagram illustrating a policy for making data available to the public according to example embodiments of the present disclosure
- FIG. 15 is a diagram illustrating a system for enabling users to determine that a particular ballot was accurately included according to example embodiments of the present disclosure
- FIG. 16 is a diagram illustrating a system for enabling the public to verify the voting result submitted by the fund management system on the respective issue according to example embodiments of the present disclosure.
- FIG. 17 depicts an example flow diagram for a method of enabling participants in an investment fund to cast votes associated with the assets in the fund according to example embodiments of the present disclosure.
- the present disclosure is directed to a fund management system for enabling owners of securities (or other financial instruments) with voting rights in an investment fund to exercise the ownership rights associated with the assets held in the investment fund.
- owners of securities or other financial instruments
- voting rights in an investment fund to exercise the ownership rights associated with the assets held in the investment fund.
- the creators can use a voting system to facilitate those investors to vote on issues arising for individual securities within the fund when an investment fund is created to hold individual securities on behalf of a plurality of investors.
- the fund management system can create an investment fund that holds individual securities.
- An investment strategy for selecting the type and number of securities in the fund is developed, and the gains or losses on the securities in the fund are reflected in the price of shares of the investment fund. Individuals are able to buy and sell shares in the investment fund via existing market mechanisms.
- the fund management system further enables the owners of shares in the investment fund to exercise the ownership rights associated w ith the securities held in the investment fund.
- ownership rights take the form of votes on ballot issues that can be cast at the next shareholder meeting for each company whose securities are held in the investment fund.
- Owners of shares in the investment fund can cast the number of votes on a given ballot position in direct proportion to the number of shares they hold in the investment fund. For example, if the investment fund has $1000 under management and holds 20 shares of company X as a result of its investment strategy, an individual Y owning $100 in the investment fund can instruct the investment fund how to vote 2 shares of company X at the next shareholder meeting. In this manner, the individual may exercise his or her ownership rights over the 2 shares of company X to which the individual is entitled by his or her ownership in the investment fund, even though the individual does not directly own the 2 shares.
- the fund management system further enables owners of shares in the investment fund to prove that their votes w ere correctly recorded and cast by the fund management system. Owners of shares in the investment fund can determine that their votes were correctly cast without requiring the fund management system to act as a trusted third party.
- the fund management system accomplishes this by maintaining a list of votes cast on each ballot issue for each company issuing a security held in the investment fund, which is published in such a manner that the voting positions taken by owners of shares in the investment fund can be verified as having been correctly cast, without requiring the participation of or trust in the voting system itself.
- a fund management system can be enabled on a remote server computing system that communicates to a plurality 7 of user computing devices to provide services to those user computing devices.
- a server computing system can be any computing system configured to communicate with a user computing device (or other computing devices) over a network to provide information or a service.
- the server computing system can receive, from a user computing device, requests for information about funds available through the fund management system, including but not limited to the policies and contents of each fund.
- the server computing system can receive ballot requests and vote requests from users.
- the server computing system can respond as appropriate to the requests.
- a user computing device can be any computing device that is designed to be operated by an end-user.
- a user computing device can include, but is not limited to a personal computer, smartphone, a smartwatch, a fitness band, a tablet computer, a laptop computer, a hand-held navigation computing device, a wearable computing device, and so on.
- a user computing device can communicate with the serv er computing system using a communication network.
- the term user may refer to individual persons using a personal computing device. However, the term user can also refer to groups of individuals represented by an organization. Furthermore, the operations, processes, and steps discussed herein as being performed by a user may be performed by a computing device (or groups of computing devices) operating automatically or programmatically on behalf of a user, a group of users, or an organization. For example, a computer may automatically request ballots on all issues associated with the securities owned by a particular user, group of users, or organization without the need for manual intervention by a person. Similarly, a computing system can, based on programmed instructions indicating specific voting preferences, automatically vote on issues on behalf of a user, a group of users, or an organization.
- the server computing system can include a fund management system that manages one or more functions for a plurality of funds.
- Each fund can include a plurality of assets and can make ownership shares available to users.
- the creators can determine one or more policies associated with the fund.
- the policies associated with the fund can include policies associated with the composition of the fund (e g., which securities or other assets are included), the proportion of different securities (or other assets), how additional assets will be added when new investors j oin the fund, how assets will be removed when investors leave the fund, the number of ownership shares in the fund and their price, the process for adding new ownership shares (if any), and so on.
- the policies associated with the fund can also include policies describing how votes for issues arising for assets included in the fund shall be conducted including, but not limited to, the correct way to request ballots, submit votes, and verify vote counting and collection.
- the process to verify vote counting and collection can include an algorithm used to generate a link value based on the voting record and the link.
- the fund management system can monitor the one or more organizations associated with each security or asset within the fund. When the organization indicates that a vote is needed for one of the securities (e.g.. a vote on board composition at a shareholders meeting). The fund management system can notify the users who own a portion of the fund that one or more issues are up for a vote. The fund management system can also provide information on the one or more issues and the voting options available to the users. This information may be received directly from the organizations or may be obtained from publicly available information sources.
- the ballot request can include an identifier for the user, an identifier for the issues for which the vote is called, and the security and/or fund associated with the issues.
- the fund management system can validate the ballot request. Validation can include determining that the request is from a user with the right to have a ballot (and that the request has not been tampered with) and that the voting period is open.
- the fund management system can generate a ballot.
- the ballot has a unique identifier and does not include the identifier of the user.
- the fund management system can store correlation data associating the ballot identifier with the identifier of the requesting user. In this way, the ballot itself may be anonymized but the fund management system can determine the associated user based on its stored correlation data.
- the fund management system can transmit the generated ballot to the user computing device via a communication network.
- the user can, using an application on the user computing device, input their votes for the one or more issues on the ballot.
- the user can then submit the completed ballot to the fund management system as a voting request.
- the fund management system can validate the voting request. If the voting request is determined to be valid, the fund management system can generate a voting record and store the ballot (or the information included in the ballot) in the voting record.
- Generating the voting record includes determining a link for the voting record.
- the link is a value associated with the previous vote recorded by the system (e.g., the most recent vote received by the system for a respective issue prior to the current voting record). If the current voting record is the first voting record, the link can be set to zero or null.
- the fund management system can calculate a link value based on the link and the voting record.
- the fund management system can use a transformation algorithm (e.g., a hash function) to generate a unique value from the voting record and the link. This link value can be stored in the voting record and be used to verify that the vote has been recorded. Note that the link for a given voting record can be the generated link value for the previous record.
- the fund management system can tally all the votes.
- the fund management system can determine the ownership percentages of each user that owns a portion of the fund. This allows a user’s vote to be weighed proportionally to their ownership in the fund.
- the fund management system can then iterate through the voting records for the one or more issues. For each voting record, the fund management system can access the ballot information, identify the corresponding user, and retrieve the weight value for that user from a weight table.
- the weight value for the user can be based on (e.g., can be correlated to) the user’s percentage ownership in the fund as determined by the fund management system. This weight value can be used to generate a weighted vote value for the votes in their ballot.
- the weighted vote value can be added to the vote total.
- the vote total can be used to calculate a vote for each security owned by the fund and the votes can be submitted to the corresponding organization.
- the fund management system can access a third-party voting system.
- the third-party voting system can provide a ballot to each user, each ballot including ownership information for the respective user.
- the third-party voting system can enable encry ption of the completed ballots.
- the third-party voting system can enable asymmetric encryption of the ballots by providing public and private keys that can be used to encrypt and decry pt the ballot.
- the public keys can be provided to the fund management system who can encry pt the user’s ballot and transmit it to the user.
- the ballot can be encrypted and returned to the fund management system (or the third party system). All of the encrypted ballots can be aggregated using homomorphic encryption, allowing the result to be tallied without decry pting any particular ballot. For example, if the system receives two encry pted ballots, the fund management system can aggregate the data in the two ballots (e.g., the votes included in the ballot) without decrypting either ballot. This allows user votes to be anonymous. In addition, the user can use their private key to determine that their encrypted ballot accurately represents their vote.
- the fund management system can access the results (e.g.. decrypt the aggregated file) and cast votes based on the results.
- the fund management system can make the voting information available to the public so that the submitted votes can be verified by users to confirm each ballot was accurately counted.
- the fund management system can make the voting records, the weight tables, the transformation algorithm, and the voting totals available to the public. Members of the public can then reproduce all the calculations to determine that the final vote total matches the submitted vote total. In this way, the fund management system provides voting services in a way that is transparent and verifiable.
- the systems and methods of the present disclosure provide a number of technical effects and benefits.
- the proposed systems can enable a user to securely submit votes for issues associated with securities that they have a voting interest in (due to their ownership of shares of a fund).
- the fund management system provides these voting services in a manner that is secure and transparent. These votes can be collected automatically’, without the need for manual human intervention.
- the techniques disclosed in the present disclosure can enable reliable and efficient means for enabling the exercise of the voting rights associated with securities held in a fund.
- the vote counting process can increase the security, transparency, and privacy associated with the voting process while also reducing the cost of gathering those votes.
- the increased security and reduced expenses represent an improvement in the functioning of the computing device itself.
- FIG. 1 depicts a block diagram of an example computing system 100 that enables a fund management system 120 to establish funds, receive ballots, and submit votes to organizations according to example embodiments of the present disclosure.
- the computing system 100 includes a user computing device 102 and a server computing system 130 that are communicatively coupled over a network 180.
- the user computing device 102 can be any type of computing device, such as, for example, a personal computing device (e.g., laptop or desktop), a mobile computing device (e.g., smartphone or tablet), a gaming console or controller, a wearable computing device, an embedded computing device, or any other type of computing device.
- the user computing device 102 can be a computing system or group of computing systems that communicate on behalf of a user, group of users, or organization automatically and without specific user direction for each communication. Thus, the communications may be between two computing systems, one of which represents the fund management system and one of which represents an organization that has an ownership interest in a fund.
- the user computing device 102 includes one or more processors 112 and a memory 114.
- the one or more processors 112 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected.
- the memory 1 14 can include one or more non-transitory computer-readable storage mediums, such as RAM, ROM, EEPROM, EPROM, flash memory' devices, magnetic disks, etc., and combinations thereof.
- the memory' 114 can store data 116 and instructions 118 which are executed by the processor 112 to cause the user computing device 102 to perform operations.
- the user computing device 102 can store or include one or more applications 140.
- the one or more applications can include application(s) such as search applications, communication applications, navigation applications, productivity applications, game applications, word processing applications, investment applications, or any other applications.
- the application(s) can include a web browser.
- the user computing device 102 can use a web browser (or other application) to send and receive requests to and from the server computing system 130.
- the sen' er computing system 130 can provide a specific application that can be used to generate requests to and receive responses from the server computing system 130.
- the one or more applications 140 can be received from the server computing system 130 over network 180.
- the one or more applications 140 can include an application that allows a user to interact with the server computing system 130 in a variety of ways.
- a user can request information about one or more funds managed by the fund management system 120 such as the policies associated with the funds and the specific securities included in the funds. Users can use the applications to transfer capital to the fund management system 120 to obtain an ownership stake in one or more funds.
- the user can request a ballot when an issue associated with a security in that fund is raised for voting by the issuers of the security.
- the server computing system 130 can evaluate the ballot request, and if it is validated, generate a new ballot and transmit it to the user computing device 102.
- the user can vote on the issue and return the ballot to the server computing system 130.
- the server computing system 130 can store the ballot and, at a time indicated by the organization from which the security was obtained, count all the ballots from a plurality of users and submit a vote to the organization.
- the server computing system 130 can publicly publish the voting records, total vote count, ownership share information (for weighing the votes), and the algorithms used to secure the voting records.
- the user can, using the one or more applications 140 on the user computing device 102, verily that their ballot was counted based on this published information. Additionally, the user (and the public generally) can verify that the total vote count matches the submitted voting records. In this way, individual owners of a fund with a plurality of securities can each vote on every issue that arises, if they should choose to do so.
- the user computing device 102 can also include one or more user input component 142 that receives user input.
- the user input component 142 can be a touch-sensitive component (e.g., a touch-sensitive display screen or a touchpad) that is sensitive to the touch of a user input object (e.g., a finger or a stylus).
- the touch-sensitive component can serve to implement a virtual keyboard.
- Other example user input components include a microphone, a traditional keyboard, or other means by which a user can provide user input.
- the server computing system 130 includes one or more processors 132 and a memory 134.
- the one or more processors 132 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected.
- the memory 134 can include one or more non-transitory computer-readable storage mediums, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof.
- the memory 134 can store data 136 and instructions 138 which are executed by the processor 132 to cause the server computing system 130 to perform operations.
- the server computing system 130 includes or is otherwise implemented by one or more server computing devices. In instances in which the server computing system 130 includes plural server computing devices, such server computing devices can operate according to sequential computing architectures, parallel computing architectures, or some combination thereof.
- the server computing system 130 can include, among other components, a fund management system 120.
- the fund management system 120 can provide the services needed to operate one or more funds that include a plurality of asset types.
- the fund management system can provide an interface for users to obtain information about the one or more funds, including the current ownership, price, fund composition, and policies.
- the fund management system 120 can determine that an issue is available to vote for a particular security 7 or other asset. For example, the fund management system can receive a notification from an issuer of a security that one or more issues are up for a vote. In other examples, the fund management system 120 can access publicly available information sources to determine when one or more issues are up for a vote.
- the fund management system 120 can notify owners of a particular fund that a security included in the fund has an issue that is up for a vote, including information about the one or more issues (e.g., the timing of the vote, the options for the issues, and so on). For instance, the fund management system 120 can communicate a notification to the user computing device 102 (e.g., one or more application(s) 140) via the network 180 indicative of information about the one or more issues.
- the user computing device 102 e.g., one or more application(s) 140
- Users can submit ballot requests to the fund management system 120.
- the fund management system 120 can validate the ballot request to determine that the ballot request was sent from the correct user during the period in which voting is open on one or more issues.
- the fund management system 120 can generate a ballot associated with one or more issues (e.g., sometimes a set of issues is up for a vote at a time).
- the ballot can be transmitted to the user computing device 102 associated with the requesting user.
- the ballot can be assigned an identifier and the fund management system 120 can store (e.g., in correlation data) information associating the identifier of the ballot with a particular user (e.g., with an identifier corresponding to the requesting user). In this way, the ballot itself does not need to include information identifying the specific user with which it is associated.
- the user can, using an application 140 on their user computing device 102, select their position on the one or more issues and return the ballot to the fund management system 120.
- the fund management system 120 can validate the ballot and, if the ballot is valid, store the ballot in a voting record. In some examples, if a plurality of ballots are received in a short amount of time, the fund management system 120 can aggregate a plurality of ballots into a single voting record for efficiency purposes.
- the fund management system 120 can store the voting record in a set of voting records for the issue. To do so, the fund management system 120 can generate a link for each record. The link can refer to the previous voting record in the set. If a particular voting record is the first voting record for a set of one or more issues, the link can be set to 0 or null.
- the fund management system 120 can use a verification algorithm (e.g., a hash function) to transform the voting record and the link into a link value. This link value can be stored in the voting record for later verification. Because each voting record uses a link that points to the previous records, the set of voting records can form a chain of all voting records and a user can verify that the voting records are valid. For instance, a voting record may be invalid if it erroneously includes a link to a previous voting record that is also linked to by another (valid) voting record.
- a verification algorithm e.g., a hash function
- the fund management system 120 can determine, for each respective user, a percentage of the fund that the respective user ow ns. This percentage can be used to weigh their vote in the total vote. This information can be stored in a weight table. For example, a particular user owns 5% of a particular fund. The fund management system 120 can ensure that the particular user’s vote on a particular issue is weighed to control 5% of the vote (if all eligible users vote). If less than all the users vote, the total distribution can be calculated based on the percentage of the users who vote. Alternatively, the fund management system 120 can only vote for the percentage of shares representing the percentage of ownership that votes.
- the fund management system 120 may submit votes associated with 50% of the owned securities.
- the fund management system 120 can count (or tally) the votes stored in the voting records.
- the fund management system 120 can identify' the associated user for each ballot extracted from the voting record.
- the fund management system 120 can use the associated user to weigh the votes in each ballot and then add those weighted votes to the total tally.
- the fund management system 120 can submit a vote total to the associated organization.
- the fund management system 120 can submit information to the associated organization which votes 45 of the securities for option A and 55 of the securities for option B.
- the fund management system 120 can make the voting information available to the public once the votes are submitted.
- the voting records which do not list specific users
- the weight tables, the vote total, the algorithm used to generate link values, and so on can all be publicly shared so that each user, and the public in general, can ensure that the voting was correct and transparent.
- FIG. 2 depicts a system that enables the creation of a fund according to example embodiments of the present disclosure.
- Authorized administrators of the fund management system can request that a new fund be generated.
- the fund generation system can generate a fund (An+i) 202.
- a fund can be represented by data defining the contents of the fund, the users who are ow ners of a part of the fund, and information describing any other characteristics of the fund.
- the fund creation system 230 can assign an identifier to the newly generated fund. In this example, the fund creation system 230 can assign each fund a unique identifier (An+i) to enable funds to be distinguished from each other.
- the administrator who requests the creation of the fund (A n +i) 202 can also determine which securities are included in the fund.
- the data describing the fund can include data describing the specific securities included in the fund, the amount of each security, and any other pertinent information.
- the data describing the fund can be stored in a fund data storage system 210.
- the fund creation system 230 can assign a unique identifier to each asset held in the fund.
- the assets can be identified by the numbers 220-1 to 220-N wherein N is the number of distinct assets within the fund 202.
- N is the number of distinct assets within the fund 202.
- an asset in this context can include multiple shares in a particular company or venture.
- the fund data storage system 210 can record the fund identifier, the security identifiers, and any other information about the fund. When users purchase a share of the fund, the information about the fund that the users, as well as the portion of the fund owned by that user, can be stored.
- FIG. 3 is an example system for establishing the policies of a fund according to example embodiments of the present disclosure.
- the creator of the fund an authorized administrator
- the policy 302 can include information about the composition of assets within the fund (e.g.. which assets will be owned by the fund and in what proportion as well as any mechanisms for updating the composition of assets).
- the policy 302 can also include information describing the process for conducting all voting activities associated with each asset (e.g., securities or other assets) held in the fund. For example, each asset may have particular issues that arise to which the owner of the asset has a right to vote on.
- the policy can include details on how voting will be handled for a variety of assets (and asset types) as well as how particular issues may be handled.
- the policy 302 can be assigned to the particular fund.
- the policy is applied to the fund (AN+I).
- the fund management system 120 can store the policy 302, along with other information about the fund, in the fund data storage system 210.
- the fund data storage system 210 can include the policy data and can describe how votes on issues arising on securities in the set (BI...N) as held by the investment fund (AN+I) will be distributed, counted, and weighted.
- FIG. 4 is an example table 400 of ownership records for a particular fund stored in a fund data storage system according to example embodiments of the present disclosure.
- the information can include a table of owners of a particular fund as well as the amount of each owner’s investment in the fund.
- Each user that participates in a particular fund can be assigned a unique identifier (e.g., Ui... UN) and a record of their participation and identifier can be created (GI . GN).
- the records for the owners can be stored in a fund data storage system 210.
- the fund data storage system 210 can also store other information associated with the users such as their total investment or ownership in the particular fund.
- FIG. 5 is an example of a system for generating issue records for one or more voting issues according to example embodiments of the present disclosure.
- a fund management system 120 can include a notification reception system 502.
- the notification reception system 502 can receive a notification when an organization associated with the security opens an issue for voting.
- the notification reception system 502 can access public information to identify when an organization associated with a particular security has opened an issue for voting.
- the fund management system 120 can subscribe to a service associated with one or more organizations that can provide notification to the fund management system 120 when an issue is opened (e.g., using an available API).
- notification reception system 502 when the notification reception system 502 determines one or more issues have been opened by an organization for a vote, notification reception system 502 can transmit a notification to the issue generation system 504.
- the issue generation system 504 can assign the issue a unique identifier or moniker D n +i.
- the issue generation system 504 can then generate an issue record 520 for the issue.
- the issue record 520 can store the unique identifier associated with the issue.
- the issue record 520 can be stored in the fund data storage system 210.
- the organization that generates the issue can also create a specification that determines how votes must be formatted in order to be counted when the vote is handled on a particular issue.
- This specification (S) can also be stored in the issue record 520.
- the issue record 520 can include other information in addition to the unique identifier and the specification including details about the issues, the options for the issues, and so on.
- FIG. 6 is an example method for validating a ballot request according to example embodiments of the present disclosure.
- a user may be notified that a vote is available for a fund or security in which they have an ownership interest.
- the user can request a ballot from the fund management system 120 at the server computing system 130.
- the user can employ a user computing device 102 to generate a ballot request 602.
- the ballot request can include, among other information, an identifier for the user or user (UN), the identifier for the issue D n +i, an identifier for the security issue, and so on.
- the server computing system 130 can perform several validation steps. Specifically, the fund management system 120 can determine whether the ballot request 602 is valid. For example, the fund management system 120 can determine whether the ballot request is sent by the user identified in the ballot request 602 and has not been tampered with. In some examples, the fund management system can, at 604, determine whether the user identifier is valid. The fund management system 120 can use a suitable identity and integrity-checking mechanism to validate that the message received was sent by the individual it purported to be from. In some examples, the ballot request 602 can include a cryptographically signed portion that the fund management system 120 can reliably determine what is sent by the user identified in the ballot request 602.
- a ballot error notification 614 can be generated and transmitted to the user computing device 102.
- the fund management system 120 can, at 606, determine whether the request itself is valid. For example, the fund management system 120 can access a record of the voting issue referenced by the ballot request 602. If such an issue record exists, the fund management system 120 can confirm that the user is eligible to vote on the one or more issues represented by the issue record. If either the issue record does not exist or the user is determined not to be eligible to vote on this issue, the request can be determined to be invalid and a ballot error notification 614 can be generated and sent to the user computing device 102.
- the fund management system 120 can access information about the vote including the time at which the voting opens and the time at which the voting closes.
- the fund management system 120 can, at 608, determine whether the current time is before the time at which the voting opens. If so, the ballot request 602 is determined to be too early and a ballot error notification 614 is generated and transmitted to the user computing device 102.
- the fund management system 120 can determine whether the voting period has already ended. To do so, the fund management system 120 can, at 610, compare the current time to the end of the voting period. If the voting period has already ended, the fund management system 120 can generate a ballet error notification 614 and transmit it to the user computing device 102. [0083] The fund management system 120 can, at 612, determine whether the user has valid voting rights to vote on a particular issue. To do so, fund management system 120 can access information from the user record in the fund management data system.
- the fund management system 120 can generate a ballot error notification 614 and transmit it to the user computing device 102.
- the fund management system 120 can take additional steps to validate the ballot request 602 as seen in FIG. 7.
- FIG. 7 is an example method for generating a ballot based on a received ballot request according to example embodiments of the present disclosure.
- the fund management system 120 has already confirmed that the ballot request is valid (e.g.. the message is received from the correct user, the voting period is open, and the user has the right to vote on the issues as seen in FIG. 6).
- the fund management system 120 can access the fund data storage system 210 to determine, at 702, whether the user has already voted.
- the fund data storage system 210 can include records of previously cast ballots (CI-CN). Using a user identifier and an issue identifier included in the ballot request (e.g., ballot request 602 in FIG.
- the fund management system 120 can determine whether the fund data storage system 210 already includes a generated ballot. If so, the fund management system 120 can determine that the user has already voted and can return the existing ballot (e.g., the previously submitted ballot) and generate a return ballot notification 616 to the user computing device 102. The user can then update the existing ballot and resubmit it if they wish to change their votes before the voting period ends.
- the existing ballot e.g., the previously submitted ballot
- the fund management system determines that the user has not already voted, it can, at 704, generate anew ballot (CN+I). As part of the generation process, the fund management system can assign the ballot (CN-I) a new identifier. The ballot (CN+I) can be assigned to a particular individual based on the user identifier (UN). In some examples, the fund management system can, at 706, record the ballot assignment in the fund data storage system 210. The ballot assignment can associate a particular user (UN) with a particular ballot (CN+I) by storing their respective identifiers.
- the fund management system 120 can generate a ballot success message 710 and transmit it to the user computing device 102.
- the ballot (or a link to the ballot) can be included as part of the ballot success message 710.
- the ballot success message 710 includes data for enabling users to access the ballot through an application on their user computing device 102.
- the application the user used to generate the initial ballot request can be used to view the ballot and make their votes.
- FIG. 8 is an example method for completing a ballot and transmitting it to the fund management system 120 according to example embodiments of the present disclosure.
- the user can vote on the issues for which the ballot is generated. To do so.
- the user can access a user computing device 102 (e.g., using an input device).
- the user computing device 102 can include an application that allows the user to vote on one or more issues.
- the application can be associated with the fund management system 120.
- the user computing device 102 can include information about how a completed ballot is to be formatted based on a specification provided by the organization which issued the security.
- the user computing device 102 can transmit the completed ballot 802 to the fund management system 120 via a communication network.
- the fund management system 120 can receive the completed ballot and store it.
- the fund management system can aggregate all of the ballots and submit the voting results to the appropriate organization.
- FIG. 9 is an example method for validating a vote request 902 according to example embodiments of the present disclosure.
- the user can return the ballot to the fund management system 120.
- the ballot can be included in a vote request 902 that is sent from the user computing device 102 to the fund management system 120.
- the vote request 902 can include, among other information, an identifier of the issue (D n +i), the identifier of the ballot (CN+I), and a representation (Es) of the position that the user has taken on issue D n +i.
- the fund management system 120 can store the relationship between a ballot and the user for which it is generated.
- the fund management system can determine whether the vote request 902 is valid. For example, the fund management system 120 can, at 904, determine that the vote request 902 is received from an appropriate source and that vote request 902 has not been tampered with. The fund management system 120 can use a suitable identity and integrity checking mechanism to validate that the message received was sent from the listed source and has not been altered. If the vote request is not validated, a vote error notification 914 can be generated and transmitted to the user computing device 102.
- the fund management system can, at 906, determine whether the vote request 902 itself is valid. For example, the fund management system 120 can access a record of the voting issue (D n +i) referenced by the vote request 902. If such an issue record exists, the fund management system 120 can confirm that the ballot is valid and has been issued to a user that is eligible to vote on this issue represented by the issue record. If either the issue record does not exist or the ballot is determined to be not valid, the vote request 902 can be determined to be invalid and a vote error notification 914 can be generated and sent to the user computing device 102.
- D n +i the voting issue
- the vote request 902 can be determined to be invalid and a vote error notification 914 can be generated and sent to the user computing device 102.
- the fund management system 120 can access information about the issue (D n +i) including the time at which the voting opens and the time at which the voting closes.
- the fund management system can, at 908, determine whether the current time is before the time at which the voting opens. If so, the vote request 902 is determined to be too early and a vote error notification 914 is generated and transmitted to the user computing device 102.
- the fund management system 120 can determine whether the voting period for the issue (Dn+i) has already ended. To do so, the fund data storage system 210 can, at 910, compare the current time to the end of the voting period. If the voting period has already ended, the fund management system 120 can generate a vote error notification 914 and transmit the notification to the user computing device 102.
- the fund management system 120 can, at 912, determine whether the position (ES) submitted for a particular issue (D n +i) is valid.
- each issue can have a limited number of potential response positions.
- an organization may propose a particular course of action and the options on that issue may include 1) support the course of action, 2) reject the course of action, or 3) take no position on the course of acton. If a vote were received for this particular issue, the fund management system 120 can determine whether the position submitted with the vote request 902 is one of the three possible options. If the fund management system 120 determines that the position submitted with the vote request is not a valid position, the fund management system 120 can generate a vote error notification 914 and transmit it to the user computing device 102. If the vote request 902 passes all the validation checks, the fund management system 120 can take additional steps to store it as seen in FIG. 10.
- FIG. 10 is an example method for storing a vote request 902 according to example embodiments of the present disclosure.
- the fund management system 120 can store the completed ballot (or information representing the completed ballot) received from the user computing device 102.
- the fund management system 120 may employ an aggregation mode in which multiple ballots are stored in a single voting record to improve the throughput of the system in high volume times.
- the fund management system 120 can determine the number of ballots received during a predetermined time frame. If that number exceeds a threshold value, the fund management system can use an aggregation mode to store ballots. In some examples, the fund management system 120 can, at 1002, determine whether the system is already in an aggregation mode. Thus, the fund management system 120 can, at 1002, determine whether the process of aggregating voting data for the issue (D n +i) has already begun.
- the fund management system 120 can, at 1004. create a voting record (F n +i) for the current ballot (Cn+i). If the fund management system 120 determines that the system is in aggregation mode, the fund management system 120 can, at 1006. obtain the aggregated voting record. [0098] The fund management system 120 can, at 1008, insert the information submitted with the user’s ballot into the aggregated voting record (F). The voting records (whether aggregated or not) can be stored in the fund data storage system 210.
- FIG. 11 is an example method for notifying users that their vote request was successful according to example embodiments of the present disclosure.
- the fund management system can generate a link from the vote record (F n +i) to other vote records for the respective issue (Dn+i).
- the fund management system 120 can, at 1102, determine whether other vote records have been received for the respective issue (D n +i). If no such vote records have been received, the link value can, at 1104, be set to zero (as there are no records to link to).
- the fund management system 210 determines that one or more vote records (Fn+i) for the respective issue (D n +i) already exist, the fund management system can, at 1106, obtain a link to the most recent vote record (Fn) from the fund data storage system 210.
- the fund management system 120 can, at 1108, generate a link value for the voting record (F n +i). To do so, the fund management system 120 can use an appropriate algorithm to process the voting record (F n +i) and the link (either set to zero or to link to the previous voting record).
- An algorithm or process that is appropriate for generating a link value can exhibit two properties.
- the properties are such that the result of running the algorithm or process on any voting record in the plurality of vote records for a particular issue (D n i i) can be unique within that set of data records (collision-free), and is such that the data record (F n +i) may not be regenerated from the result of the algorithm (or process) on the data record (Fn+i) and a link value L (irreversible).
- these properties of an algorithm are satisfied through the use of common cry ptographic hash functions such as SHA-2/SHA-3.
- the fund management system 120 can add the generated link value to the voting record (F n +i).
- the updated vote record can, at 1110, be stored in the fund data storage system 210.
- the fund management system 120 can generate a vote success record 1112.
- vote success records 11 12 can be generated for a plurality of users.
- Each vote success record 1112 can be transmitted to a user computing device (102-1 to 102-N) associated with a particular user.
- the fund management system 120 can determine, for each voting record (F n +i) a specific user (e.g., a user account or a user computing device 102) based on data in the fund data storage system 210.
- FIG. 12 is an example method for determining the weight of each ballot according to example embodiments of the present disclosure.
- the fund management system 120 can access all the stored vote records from the fund data storage system 210 to determine a total vote count for the securities held by the fund. Once the total vote count is determined, the fund management system can submit the vote count to the appropriate organization for use in deciding the issue.
- the issue can be the people who will serve on the board of an organization and the vote count can be used to determine whether the suggested board members are approved or not.
- the fund management system 120 can access all the voting records (Fn+i) for a particular issue (D n +i) stored in the fund data storage system 210.
- the fund management system 120 can, at 1204, access the associated ballot data (CN+I).
- the ballot data (CN+I) can be used to determine a user associated with a particular stored ballot (e.g., data that associated each ballot with a particular user).
- the ballot assignment data can indicate, for each generated ballot (CI...CN+I), a user (UN) assigned to that ballot (CN+I).
- the fund management system 120 can, at 1202, also access information about the percentage of the fund that each user (UN) ow ns based on data stored in the fund data storage system 210.
- the fund data storage system 210 can correlate, at 1206, the ballot records with the users to determine, for each ballot, the ownership weight associated with the corresponding users.
- the data can be used to, at 1208, generate an ownership weight table 1210.
- the ownership weight table 1210 can be used to assign a weight to each voting record in the set of voting records (Wi ... WN).
- each row in the voting table (Wi) can associate a ballot (Cis) with a weight (0.013) for the votes in the ballot.
- the ownership weight table 1210 can be stored in the fund data storage system 210.
- FIG. 13 is an example method for tallying the total vote on an issue according to example embodiments of the present disclosure.
- the fund management system 120 can determine that the time that votes are accepted for a particular issue (D n +i) has ended. In some examples, the fund management system 120 can, as part of its published policy, close new vote requests prior to the date and time that the issuing organization ceases to accept votes. This allows the fund management system 120 to tabulate the total votes for the securities held in the fund and submit them to the issuing organization while it is still accepting votes.
- the fund management system 120 can access the fund data storage system 210 to access, at 1302, all the voting records (F n +i) associated with the respective issue (D n +i).
- the voting records (Fn+i) can include all the ballots submitted by users who have the right to vote on a particular issue (D n +i).
- the fund management system 120 can, at 1304, select the next record from the set of records associated with the particular issue (D n +i) to be the current record (Fc). Initially, that next record is the first record to be counted and may be either the voting record (Fi) for the first ballot (Ci) submitted or the voting record (FN) for the last ballot (CN) submitted.
- the fund management system 120 can, at 1306, extract the voting position (Ec) from the current voting record (Fc).
- the voting position (Ec) can be stored in a ballot (Cc) received from the user.
- the fund management system 120 can determine a weight associated with the voting record (Fc). To do so, the fund management system 120 can, at 1308, access a weight table that includes a set of weights (WI...N), each weight being associated with a particular ballot (C).
- the fund management system can generate a weighted value for the position (Ec) based on the corresponding weight value in the weight table.
- the fund management system 120 can, at 1310, count the weighted position by adding it to the total cumulative vote total.
- the fund management system 120 can, at 1312, determine whether there are any remaining voting records in the plurality of voting records associated with the respective issue (D n +i). If additional voting records (Fc) are associated with the issue and have not yet been added to the cumulative vote total, the fund management system 120 can set the current voting record (Fc) to the next voting record in the set of voting records. In this way, the fund management system 120 can iterate through all the voting records (Fl-FN). Once the fund management system 120 determines that there are no further voting records in the set of voting records associated with the respective issue (Dn+1), the fund management system 120 can, at 1314, output the cumulative vote total as a result of the vote counting process.
- the fund management system 120 can count the votes into a cumulative vote total using a counting function to accumulate the ballot position (EN) into the overall voting result V for issue (D n +i).
- the voting system can count the votes by a vote tabulation policy established when the investment fund (AN+I) was created.
- the fund management system 120 can weigh the effect of the ballot position (EN) on the overall voting result, according to the ownership fraction of the user associated with the specific ballot (based on the weight table).
- the fund management system computes the sum of all votes cast on an issue (D n +i) in the set of ballots (CI...CN) as weighted according to their ownership stake held in the investment fund (AN+I).
- the ownership stake may be determined at a time specified in the policies associated with the fund.
- the fund management system 120 can apply the voting policy stored with the investment fund (AN+I) when it was first created. For example, the fund (AN+I) holds 100 shares of security N (BN) and has $1000 under management. User A (UA) has invested $20 in the fund. If User A (UA) casts a Yes vote on the issue (D n +i), the fund management system 120 records that 2% (the percentage of the fund held by User A (UA) of the votes (two votes in this example) on the issue will be cast as Yes.
- FIG. 14 is a diagram illustrating a policy for making data available to the public according to example embodiments of the present disclosure.
- the fund management system 120 can submit the tabulated votes to the organization that issued the securities and opened the respective issue (D n +i) at a time determined by the issuing organization.
- the fund management system can, at a time determined by its policies, make the contents of the vote available to the public for verification.
- the fund management system 120 can make the data records (Fi ... FN) 1402 and the set of records (Wi ... WN) 1404 in the weight tables available.
- the fund management system 120 can make the algorithm 1408 used to generate the link values and the voting policy 1406 for the fund public.
- this data can be made available on the Internet. The public can use this data to ensure that the votes w ere accurately counted and submitted to the organization.
- the user computing device 102 can, at 1504, select the next record in the set of voting records (Fi ... FN) for the respective issue. To do so, the user computing device 102 can, at 1506, determine whether the cunent voting record (Fc) is the first voting record (Fl) in the set of voting records (Fi ... FN) associated with the respective issue (D n +i). If the current voting record is the first voting record (Fl) in the set of voting records (Fi ... FN) associated with the respective issue (D n +i), the user computing device 102 can set the first link to 0. [0116] If the user computing device 102 determines that the current voting record (Fc) is not the first voting record (Fi) in the set of voting records (Fi ...
- the user computing system can, at 1508, set the link to the previous record (Fc-i) (e.g., the link is a value that points to the previous record or is otherwise associated with the previous record).
- the user computing device 102 can, at 1510, calculate a link value based on the link and the current voting record (Fc).
- the algorithm used to calculate the link value can be the same algorithm that was used to generate the stored link value and can be made publicly available by the fund management system 120.
- the user computing device 102 can, at 1512, determine whether the calculated link value matches the stored linked value for the current voting record. If the calculated link value does not match the stored linked value, the user computing device 102 can determine that the set of voting records is invalid. In this example, invalid voting records can be voting records in which at least one ballot in the set of submitted ballots is not properly counted in the vote total.
- the user computing device 102 determines that the calculated link value matches the stored link value. In this case, the user computing device 102 can. at 1514, determine whether the current record (Fc) is the last voting record in the set of voting records associated with the respective issue (D n +i). In some examples, the user computing device 102 can determine that the voting record associated with a specific user (e.g., the ballot they submitted) is the last voting record they wish to verify. Thus, if the current voting record (Fc) is associated with that specific user, the user computing device 102 can determine that the current voting record (Fc) is the last voting record.
- a specific user e.g., the ballot they submitted
- the user computing device 102 determines that the current voting record (Fc) is not the last voting record, the user computing device 102 can, at 1516, select the next record in the set of voting records associated with the respective issue (D n +i) as the current voting record (Fc).
- FIG. 16 is a diagram illustrating a system for enabling the public to verify the voting result submitted by the fund management system on the respective issue according to example embodiments of the present disclosure. To do so, the fund management system 120 can make the voting records and weight table available to the user via one or more computing communication networks as shown in FIG. 14.
- the public (anyone with a user computing device 102) can verify the accuracy of the voting records (Fi ... FN) for the respective issue (D n +i).
- the user computing system can. at 1602, access (or cause the fund management system to access) the set of voting records (Fi ... FN) for the respective issue (Dn+i).
- the user computing device 102 can, at 1604, select the next record in the set of voting records (Fi ... FN) for the respective issue. To do so, the user computing device 102 can, at 1606, determine whether the cunent voting record (Fc) is the first voting record (Fl) in the set of voting records (Fi ... FN) associated with the respective issue (D n +i). If the current voting record is the first voting record (F i) in the set of voting records (Fi ... FN) associated with the respective issue (D n +i), the user computing device 102 can set the first link to 0. [0123] If the user computing device 102 determines that the current voting record (Fc) is not the first voting record (Fi) in the set of voting records (Fi ...
- the user computing device 102 can, at 1608, set the link to the previous record (Fc-i) (e.g., the link is a value that points to the previous record or is otherwise associated with the previous record).
- the user computing device 102 can, at 1610. calculate a link value based on the link and the current voting record (Fc).
- the algorithm used to calculate the link value can be the same algorithm that was used to generate the stored link value and can be made publicly available by the fund management system 120.
- the user computing device 102 can, at 1612, determine whether the calculated link value matches the stored linked value for the current voting record. If the calculated link value does not match the stored linked value, the user computing device 102 can determine that the set of voting records is invalid. In this example, voting records determined to be invalid can be voting records that are not accurately included in the total vote count.
- the user computing device 102 determines that the calculated link value matches the stored link value.
- the user computing device 102 can, at 1620, count the votes from the ballots with respect to issue (D). To do so, the user computing device 102 can extract the ballot information from the current voting record.
- the user computing device 102 can, at 1622, access the weight table made available by the fund management system 120 (see, for example, FIG. 14). The weight table can be used to determine how to weigh each vote in the set of voting records. In some examples, each ballot in the voting records has an associated weight in the weight table.
- the user computing device 102 can determine whether the current record (Fc) is the last voting record in the set of voting records associated with the respective issue (D n +i). If the user computing device 102 determines that the current voting record (Fc) is not the last record, the user computing device 102 can, at 1614. select the next record in the set of voting records associated with the respective issue (D n +i) as the current record (Fc).
- the user computing device 102 can iterate through all the records in the set of voting records (Fi ... FN) associated with the respective issue (D n +i). If the user computing device 102 determines that this current record (Fc) is the last record in the set and all the link values have been successfully validated, the user computing device 102 can output the result, which represents the total vote for all the users who submitted ballots. This result can be compared with the result that is made available to the public by the fund management system to determine that the submitted votes accurately represent the votes of all the users in the fund.
- FIG. 17 depicts an example flow diagram for a method of enabling participants in an investment fund to cast votes associated with the assets in the fund according to example embodiments of the present disclosure.
- One or more portion(s) of the method can be implemented by one or more computing devices such as, for example, the computing devices described herein.
- one or more portion(s) of the method can be implemented as an algorithm on the hardware components of the device(s) described herein.
- FIG. 17 depicts elements performed in a particular order for purposes of illustration and discussion.
- the method can be implemented by one or more computing devices, such as one or more of the computing devices depicted in FIG. 1.
- a fund management system (e.g.. fund management system 120 in FIG. 1) can include one or more processors, memory, and a communication device.
- the user computing device e.g., user computing device 102 in FIG. 1 can include other components that, together, enable the fund management system (e.g., fund management system 120 in FIG. 1) to provide services associated with investment funds.
- the fund management system (e.g., fund management system 120 in FIG. 1) can, at 1702, receive a ballot request for a set of one or more issues for a security included in a fund, the ballot request including a user identifier for a user and an issue identifier for the set of one or more issues.
- the fund management system (e.g., fund management system 120 in FIG.)
- the fund management system e.g., fund management system 120 in FIG. 1
- the fund management system can determine whether the voting period is open, and the user has the appropriate rights to request a ballot.
- the fund management system can determine a date range in which the set of one or more issues are open for voting.
- the fund management system e.g., fund management system 120 in FIG. 1 can determine whether a current date is within the data range.
- the fund management system e.g., fund management system 120 in FIG. 1 can determine whether the user is authorized to vote on the set of one or more issues that are open for voting.
- the fund management system e.g., fund management system 120 in FIG. 1 can determine whether the user owns a portion of the fund that holds the associated security.
- the fund management system (e.g., fund management system 120 in FIG. 1) can, at 1704, generate a ballot for the set of one or more issues.
- the fund management system (e.g., fund management system 120 in FIG. 1) can store a ballot record to associate the user with the generated ballot.
- the fund management system (e.g., fund management system 120 in FIG. 1) can, at 1706, transmit the generated ballot to the user computing device associated with the user.
- the generated ballot can be displayed to the user in an application with the fund management system (e.g., fund management system 120 in FIG. 1).
- the fund management system (e.g., fund management system 120 in FIG. 1) can, at 1708, receive a completed ballot.
- the fund management system (e.g., fund management system 120 in FIG. 1) can validate the completed ballot.
- the fund management system (e.g.. fund management system 120 in FIG. 1) can, at 1710, generate a voting record for the completed ballot, the voting record including a link associated with the completed ballot.
- the fund management system (e.g., fund management system 120 in FIG. 1) can set the link to a previously received voting record.
- the fund management system (e.g., fund management system 120 in FIG. 1)
- fund management system (e.g., fund management system 120 in FIG. 1) can generate a link value by applying a transformation algorithm to the voting record and the link.
- the fund management system (e.g., fund management system 120 in FIG. 1) can store the link value in the voting record.
- the fund management system (e.g., fund management system 120 in FIG. 1) can determine a number of voting records received in a predefined period.
- the fund management system (e.g., fund management system 120 in FIG. 1) can determine whether the number of records received in the predefined period exceeds a predefined threshold.
- the fund management system (e.g., fund management system 120 in FIG. 1) can aggregate multiple ballots into a single voting record.
- the fund management system (e.g.. fund management system 120 in FIG. 1) can provide, at 1712, the voting record to the user computing device, the voting record including a link value that enables the user to verify that the completed ballot has been recorded.
- the fund management system (e.g., fund management system 120 in FIG. 1) can provide one or more policies associated with the fund to the user.
- the one or more policies associated with the fund include one or more details for performing a transformation algorithm.
- the transformation algorithm is a hash function.
- the fund management system (e.g., fund management system 120 in FIG. 1) can provide a link to a previous voting record to the user such that the user can. using the details of the transformation algorithm and a link to the previous voting record, generate a link value to compare to the link value in the voting record.
- the fund management system (e.g., fund management system 120 in FIG. 1) can, at 1714, aggregate a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
- the fund management system (e.g., fund management system 120 in FIG. 1) can determine, for each user in a plurality of users associated with the fund, an ownership percentage of the fund.
- the fund management system (e.g., fund management system 120 in FIG. 1) can store a plurality of weights associated with the plurality 7 of users in a weight table, the plurality 7 of weights being based on the ownership percentage for each user.
- the fund management system can iteratively access each voting record in the set of voting records associated with the one or more issues.
- the fund management system e.g., fund management system 120 in FIG. 1 can identify a user associated with each voting record in the set of voting records. For each respective voting record in the plurality voting records, the fund management system (e.g., fund management system 120 in FIG. 1) can access a weight associated with the associated user.
- the fund management system e.g., fund management system 120 in FIG. 1 can generate a weighted vote based on the respective voting record and the weight associated with the associated user.
- the fund management system e.g., fund management system 120 in FIG. 1 can add the weighted to the total vote count.
- FIG. 18 is an example method for generating a ballot based on a received ballot request according to example embodiments of the present disclosure.
- This method is an alternative to FIG. 7, in which the ballot itself includes ownership information for the user (UN). Doing so allows the ballot information to be encrypted before transmission to the fund management system. In this way, the voting data for each user can be anonymous. Instead, the fund management system can gather a plurality of encrypted ballots (which include the ownership w eight information), using homomorphic encryption methods to tally the votes without decry pting the ballots, and then determining the vote totals. In some examples, the fund management system can employ a third-party system to collect and tally the encry pted ballots.
- the fund management system 120 has already confirmed that the ballot request is valid (e.g., the message is received from the correct user, the voting period is open, and the user has the right to vote on the issues as seen in FIG. 6).
- the fund management system 120 can access the fund data storage system 210 to determine whether the user has already voted.
- the fund data storage system 210 can include records of previously cast ballots (CI-CN). Using a user identifier and an issue identifier included in the ballot request (e.g., ballot request 602 in FIG. 6), the fund management system 120 can, at 1804, determine whether the fund data storage system 210 already includes a generated ballot.
- the fund management system 120 can determine that the user has already voted and can return the existing ballot 1810 (e.g., the previously submitted ballot) to the user computing device 102. The user can then update the existing ballot and resubmit it if they wish to change their votes before the voting period ends.
- the existing ballot 1810 e.g., the previously submitted ballot
- the fund management system determines that the user has not already voted, it can, at 1806, generate a new ballot (CN+I).
- the fund management system can assign the ballot (CN-I) a new identifier.
- the ballot (CN+I) can be assigned to a particular individual based on the user identifier (UN).
- the fund management system can, at 1802, access user ownership data. Ownership data can include the amount of a particular fund that the user (UN) owns.
- the ownership data can be used to w eight the votes provided by the user. For example, if a first user (Ui) owns double the percentage of the fund as a second user (U2), the vote of the first user can be weighted twice as much as the second user.
- the fund management system can, at 1808, record the ballot assignment in the fund data storage system 210.
- the ballot assignment can associate a particular user (UN) with a particular ballot (CN+I) by storing their respective identifiers.
- the fund management system 120 can generate a ballot success message 1812 and transmit it to the user computing device 102.
- the ballot (or a link to the ballot) can be included as part of the ballot success message 1808.
- the ballot success message 1808 includes data for enabling users to access the ballot through an application on their user computing device 102.
- the application the user used to generate the initial ballot request can be used to view the ballot and make their votes.
- FIG. 6 displays the user computing device receiving the ballot success message 1812.
- the ballot includes the ownership information, which allows the user to generate an encrypted ballot that already includes weighting information.
- FIG. 19 is an example method for completing a ballot and transmitting it to the fund management system 120 according to example embodiments of the present disclosure. This figure continues on from FIG. 18 in which the ballot includes ownership information.
- the user can vote on the issues for which the ballot is generated. To do so, the user can access a user computing device 102 (e.g., using an input device).
- the user computing device 102 can include an application that allows the user to vote on one or more issues.
- the application can be associated with the fund management system 120.
- the user computing device 102 can include information about how a completed ballot is to be formatted based on a specification provided by the organization which issued the security.
- the user computing device 102 can use the included ownership information to weight the votes provided by the user. Once the votes provided by the user have been weighted based on the user’s ownership information, the user computing device 102 can generate a completed ballot 802. The completed ballot 802 can be provided to an encryption system 1902.
- the encryption system can be provided by a third-party service.
- the encry ption system 1902 can be incorporated in the user computing device 102 (either by the fund management system 120 or a trusted third-party system).
- the encryption system 1902 can be provided by fund management system 120.
- the encryption system 1902 can use any encryption technique to encrypt the data in the completed ballot 802.
- the encrypted ballot 1904 can be transmitted to the fund management system 120 via a communication network.
- the fund management system 120 can receive the encrypted ballot 1904 and store it.
- the encrypted ballot can be read by 7 the fund management system 120, allowing users to provide their votes anonymously.
- the fund management system can aggregate all of the encry pted ballots, decrypt the result, and submit the voting results to the appropriate organization.
- FIG. 20 is an example method for tallying the total vote on an issue when the ballots are encrypted according to example embodiments of the present disclosure.
- the fund management system 120 can determine that the time that votes are accepted for a particular issue (Dn+i) has ended. In some examples, the fund management system 120 can, as part of its published policy, close new vote requests prior to the date and time that the issuing organization ceases to accept votes. This allows the fund management system 120 to tabulate the total votes for the securities held in the fund and submit them to the issuing organization while it is still accepting votes.
- the fund management system 120 can access the fund data storage system 21 to access, at 2012, all the voting records (F n ⁇ i) associated with the respective issue (D n ⁇ i).
- the voting records (Fn+i) can include all the encrypted ballots returned by users who have the right to vote on a particular issue (D n +i).
- the fund management system 120 can, at 2014, select the next record from the set of records associated with the particular issue (D n +i) to be the current record (Fc). Initially, that next record is the first record to be accessed.
- the first record can be the voting record (Fi) for the first ballot (Ci) submitted or the voting record (FN) for the last ballot (CN) submitted.
- the encrypted ballots can be ordered arbitrarily.
- the fund management system 120 can, at 2002, aggregate the encrypted ballot into the total without decry pting the encrypted ballot.
- the encrypted ballots are aggregated using homomorphic encryption techniques. Homomorphic encryption techniques can enable the system to aggregate the votes in multiple encrypted ballots without decrypting those ballots. This ensures that the voting remains anonymous.
- the fund management system 120 can provide the encrypted ballots to a third-party system that performs the homomorphic encryption techniques.
- the third-party' system can enable encryption of all the ballots, aggregation of the encrypted ballots, and decryption of the final tally so the vote total can be obtained.
- the fund management system 120 can conduct the encryption, aggregation, and decr ption without a third-party system.
- the fund management system 120 can. at 2016, determine whether there are any remaining voting records in the plurality of voting records associated with the respective issue (Dn+i). If additional voting records (Fc) are associated with the issue and have not yet been aggregated to the cumulative vote total, the fund management system 120 can set the current voting record (Fc) to the next voting record in the set of voting records. In this way, the fund management system 120 can iterate through all the voting records (Fl-FN). Once the fund management system 120 determines that there are no further voting records in the set of voting records associated with the respective issue (Dn+1), the fund management system 120 can, at 2004, output the encrypted result representing the vote total.
- the fund management system 120 can, at 2006, decrypt the result.
- the result is decrypted using a key provided by a third-party system that provided the encry ption and aggregation services.
- the fund management system 120 can apply the voting policy stored with the investment fund (AN+I) when it was first created.
- the fund (AN+I) holds 100 shares of security N (BN) and has $1000 under management. If the owners of 60 shares (weighted by ownership percentage) vote yes and the owners of 40 shares vote no, the fund management system 120 records that 60% of the votes on the issue will be cast as Yes and 40% of the votes on the issue will be cast as no.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
The present disclosure provides computer-implemented methods, systems, and devices for providing voting services for funds. A computing device generates a ballot for the set of one or more issues. The computing device transmits the ballot to a user computing device associated with the user. The computing device receives, from the user computing device, a completed ballot. The computing device generates a voting record for the completed ballot, the voting record including a link associated with the completed ballot. The computing device provides the voting record to the user computing device, the voting record including a link value that enables the user to verify that the completed ballot has been recorded. The computing device aggregates a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
Description
SYSTEM AND METHOD FOR ENABLING ASSET OWNERSHIP RIGHTS IN AN
INVESTMENT FUND
[0001] The present disclosure relates generally to asset management. More particularly, the present disclosure relates to enabling voting for owners of assets in a management fund.
BACKGROUND
[0002] As computer technology has improved, the number and type of services that can be provided to users have increased dramatically. The services provided via computer technology include investment services. Specifically, computing technology enables users to invest in funds that hold a variety of assets. Each of the assets can be associated with particular rights. As computing technology makes it easier for users to enter and exit these types of funds, the systems that manage these funds have an increased need for enabling users to exercise the rights associated with the assets in the fund in which they are partial owners.
SUMMARY
[0003] Aspects and advantages of embodiments of the present disclosure will be set forth in part in the following description, or can be learned from the description, or can be learned through practice of the embodiments.
[0004] An example aspect is directed toward a computer-implemented method. The method comprises generating a ballot for the set of one or more issues. The method further comprises transmitting the ballot to a user computing device associated with the user. The method further comprises receiving, from the user computing device, a completed ballot. The method further comprises generating a voting record for the completed ballot, the voting record including a link associated with the completed ballot. The method further comprises providing the voting record to the user computing device, the voting record including a link value that enables the user to verify that the completed ballot has been recorded. The method further comprises aggregating a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
[0005] Another example aspect of the present disclosure is directed to a computing system. The computing system comprises one or more processors; and a computer-readable memory. The computer-readable memory stores instructions that, when executed by the one or more processors, cause the system to perform operations comprising transmitting the ballot to a user computing device associated with the user. The operations further comprise
receiving, from the user computing device, a completed ballot. The operations further comprise generating a voting record for the completed ballot, the voting record including a link associated with the completed ballot. The operations further comprise providing the voting record to the user computing device, the voting record including a link value that enables the user to verify that the completed ballot has been recorded. The operations further comprise aggregating a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
[0006] Another example aspect of the present disclosure is directed tow ards a computer- readable medium storing instructions. The instructions, when executed by one or more computing devices, cause the device to perform operations comprising transmitting the ballot to a user computing device associated with the user. The operations further comprise receiving, from the user computing device, a completed ballot. The operations further comprise generating a voting record for the completed ballot, the voting record including a link associated with the completed ballot. The operations further comprise providing the voting record to the user computing device, the voting record including a link value that enables the user to verify- that the completed ballot has been recorded. The operations further comprise aggregating a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
[0007] Other aspects of the present disclosure are directed to various systems, apparatuses, non-transitory computer-readable media, user interfaces, and electric devices. [0008] These and other features, aspects, and advantages of various embodiments of the present disclosure will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate example embodiments of the present disclosure and, together with the description, serve to explain the related principles.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Detailed discussion of embodiments directed to one of ordinary skill in the art is set forth in the specification, which makes reference to the appended figures, in which: [0010] FIG. 1 depicts a block diagram of an example computing system that enables a fund management system to establish funds, receive ballots, and submit votes to organizations according to example embodiments of the present disclosure;
[0011] FIG. 2 depicts a system that enables the creation of a fund according to example embodiments of the present disclosure;
[0012] FIG. 3 is an example system for establishing the policies of a fund according to example embodiments of the present disclosure:
[0013] FIG. 4 is an example table of ownership records for a particular fund stored in a fund data storage system according to example embodiments of the present disclosure;
[0014] FIG. 5 is an example of a system for generating issue records for one or more voting issues according to example embodiments of the present disclosure;
[0015] FIG. 6 is an example method for validating a ballot request according to example embodiments of the present disclosure;
[0016] FIG. 7 is an example method for generating a ballot based on a received ballot request according to example embodiments of the present disclosure;
[0017] FIG. 8 is an example method for completing a ballot and transmitting it to the fund management system according to example embodiments of the present disclosure; [0018] FIG. 9 is an example method for validating a vote request according to example embodiments of the present disclosure;
[0019] FIG. 10 is an example method for storing a vote request according to example embodiments of the present disclosure;
[0020] FIG. 11 is an example method for notifying users that their vote request was successful according to example embodiments of the present disclosure;
[0021] FIG. 12 is an example method for determining the weight of each ballot according to example embodiments of the present disclosure;
[0022] FIG. 13 is an example method for tallying the total vote on an issue according to example embodiments of the present disclosure;
[0023] FIG. 14 is a diagram illustrating a policy for making data available to the public according to example embodiments of the present disclosure;
[0024] FIG. 15 is a diagram illustrating a system for enabling users to determine that a particular ballot was accurately included according to example embodiments of the present disclosure;
[0025] FIG. 16 is a diagram illustrating a system for enabling the public to verify the voting result submitted by the fund management system on the respective issue according to example embodiments of the present disclosure; and
[0026] FIG. 17 depicts an example flow diagram for a method of enabling participants in an investment fund to cast votes associated with the assets in the fund according to example embodiments of the present disclosure.
DETAILED DESCRIPTION
[0027] Reference now will be made in detail to embodiments of the present disclosure, one or more examples of which are illustrated in the draw ings. Each example is provided by way of explanation of the present disclosure, not limitation of the present disclosure. In fact, it will be apparent to those skilled in the art that various modifications and variations can be made to the present disclosure without departing from the scope or spirit of the disclosure. For instance, features illustrated or described as part of one embodiment can be used with another embodiment to yield a still further embodiment. Thus, it is intended that the present disclosure covers such modifications and variations as come within the scope of the appended claims and their equivalents.
[0028] Generally, the present disclosure is directed to a fund management system for enabling owners of securities (or other financial instruments) with voting rights in an investment fund to exercise the ownership rights associated with the assets held in the investment fund. In general, when such shares are included within an investment fund it is difficult to allow the owners to exercise the voting rights to which they are entitled. To provide for such participation, the creators can use a voting system to facilitate those investors to vote on issues arising for individual securities within the fund when an investment fund is created to hold individual securities on behalf of a plurality of investors. The fund management system can create an investment fund that holds individual securities. An investment strategy for selecting the type and number of securities in the fund is developed, and the gains or losses on the securities in the fund are reflected in the price of shares of the investment fund. Individuals are able to buy and sell shares in the investment fund via existing market mechanisms.
[0029] The fund management system further enables the owners of shares in the investment fund to exercise the ownership rights associated w ith the securities held in the investment fund. In an example embodiment, ownership rights take the form of votes on ballot issues that can be cast at the next shareholder meeting for each company whose securities are held in the investment fund.
[0030] Owners of shares in the investment fund can cast the number of votes on a given ballot position in direct proportion to the number of shares they hold in the investment fund. For example, if the investment fund has $1000 under management and holds 20 shares of company X as a result of its investment strategy, an individual Y owning $100 in the investment fund can instruct the investment fund how to vote 2 shares of company X at the next shareholder meeting. In this manner, the individual may exercise his or her ownership
rights over the 2 shares of company X to which the individual is entitled by his or her ownership in the investment fund, even though the individual does not directly own the 2 shares.
[0031] The fund management system further enables owners of shares in the investment fund to prove that their votes w ere correctly recorded and cast by the fund management system. Owners of shares in the investment fund can determine that their votes were correctly cast without requiring the fund management system to act as a trusted third party.
[0032] In one example embodiment, the fund management system accomplishes this by maintaining a list of votes cast on each ballot issue for each company issuing a security held in the investment fund, which is published in such a manner that the voting positions taken by owners of shares in the investment fund can be verified as having been correctly cast, without requiring the participation of or trust in the voting system itself.
[0033] More specifically, a fund management system can be enabled on a remote server computing system that communicates to a plurality7 of user computing devices to provide services to those user computing devices. A server computing system can be any computing system configured to communicate with a user computing device (or other computing devices) over a network to provide information or a service. The server computing system can receive, from a user computing device, requests for information about funds available through the fund management system, including but not limited to the policies and contents of each fund. The server computing system can receive ballot requests and vote requests from users. The server computing system can respond as appropriate to the requests.
[0034] A user computing device can be any computing device that is designed to be operated by an end-user. For example, a user computing device can include, but is not limited to a personal computer, smartphone, a smartwatch, a fitness band, a tablet computer, a laptop computer, a hand-held navigation computing device, a wearable computing device, and so on. In some examples, a user computing device can communicate with the serv er computing system using a communication network.
[0035] Note that the term user, as used herein, may refer to individual persons using a personal computing device. However, the term user can also refer to groups of individuals represented by an organization. Furthermore, the operations, processes, and steps discussed herein as being performed by a user may be performed by a computing device (or groups of computing devices) operating automatically or programmatically on behalf of a user, a group of users, or an organization. For example, a computer may automatically request ballots on all issues associated with the securities owned by a particular user, group of users, or
organization without the need for manual intervention by a person. Similarly, a computing system can, based on programmed instructions indicating specific voting preferences, automatically vote on issues on behalf of a user, a group of users, or an organization.
[0036] The server computing system can include a fund management system that manages one or more functions for a plurality of funds. Each fund can include a plurality of assets and can make ownership shares available to users. When a new fund is created, the creators can determine one or more policies associated with the fund. The policies associated with the fund can include policies associated with the composition of the fund (e g., which securities or other assets are included), the proportion of different securities (or other assets), how additional assets will be added when new investors j oin the fund, how assets will be removed when investors leave the fund, the number of ownership shares in the fund and their price, the process for adding new ownership shares (if any), and so on. The policies associated with the fund can also include policies describing how votes for issues arising for assets included in the fund shall be conducted including, but not limited to, the correct way to request ballots, submit votes, and verify vote counting and collection. The process to verify vote counting and collection can include an algorithm used to generate a link value based on the voting record and the link.
[0037] The fund management system can monitor the one or more organizations associated with each security or asset within the fund. When the organization indicates that a vote is needed for one of the securities (e.g.. a vote on board composition at a shareholders meeting). The fund management system can notify the users who own a portion of the fund that one or more issues are up for a vote. The fund management system can also provide information on the one or more issues and the voting options available to the users. This information may be received directly from the organizations or may be obtained from publicly available information sources.
[0038] Users can submit a ballot request to the fund management system. In some examples, the ballot request can include an identifier for the user, an identifier for the issues for which the vote is called, and the security and/or fund associated with the issues. The fund management system can validate the ballot request. Validation can include determining that the request is from a user with the right to have a ballot (and that the request has not been tampered with) and that the voting period is open. Once the fund management system has validated the ballot request, the fund management system can generate a ballot. The ballot has a unique identifier and does not include the identifier of the user. The fund management system can store correlation data associating the ballot identifier with the identifier of the
requesting user. In this way, the ballot itself may be anonymized but the fund management system can determine the associated user based on its stored correlation data.
[0039] The fund management system can transmit the generated ballot to the user computing device via a communication network. The user can, using an application on the user computing device, input their votes for the one or more issues on the ballot. The user can then submit the completed ballot to the fund management system as a voting request. The fund management system can validate the voting request. If the voting request is determined to be valid, the fund management system can generate a voting record and store the ballot (or the information included in the ballot) in the voting record.
[0040] Generating the voting record includes determining a link for the voting record. The link is a value associated with the previous vote recorded by the system (e.g., the most recent vote received by the system for a respective issue prior to the current voting record). If the current voting record is the first voting record, the link can be set to zero or null. The fund management system can calculate a link value based on the link and the voting record. The fund management system can use a transformation algorithm (e.g., a hash function) to generate a unique value from the voting record and the link. This link value can be stored in the voting record and be used to verify that the vote has been recorded. Note that the link for a given voting record can be the generated link value for the previous record.
[0041] Once the time window for the one or more issues has ended, the fund management system can tally all the votes. The fund management system can determine the ownership percentages of each user that owns a portion of the fund. This allows a user’s vote to be weighed proportionally to their ownership in the fund. The fund management system can then iterate through the voting records for the one or more issues. For each voting record, the fund management system can access the ballot information, identify the corresponding user, and retrieve the weight value for that user from a weight table. The weight value for the user can be based on (e.g., can be correlated to) the user’s percentage ownership in the fund as determined by the fund management system. This weight value can be used to generate a weighted vote value for the votes in their ballot. The weighted vote value can be added to the vote total. When all the voting records have been accessed and their weighted vote value is added to the vote total, the vote total can be used to calculate a vote for each security owned by the fund and the votes can be submitted to the corresponding organization.
[0042] In another implementation, the fund management system can access a third-party voting system. The third-party voting system can provide a ballot to each user, each ballot including ownership information for the respective user. Once the user has submitted their
ballot choices (e.g., votes), the third-party voting system can enable encry ption of the completed ballots. For example, the third-party voting system can enable asymmetric encryption of the ballots by providing public and private keys that can be used to encrypt and decry pt the ballot. For example, the public keys can be provided to the fund management system who can encry pt the user’s ballot and transmit it to the user.
[0043] Once the user has voted, the ballot can be encrypted and returned to the fund management system (or the third party system). All of the encrypted ballots can be aggregated using homomorphic encryption, allowing the result to be tallied without decry pting any particular ballot. For example, if the system receives two encry pted ballots, the fund management system can aggregate the data in the two ballots (e.g., the votes included in the ballot) without decrypting either ballot. This allows user votes to be anonymous. In addition, the user can use their private key to determine that their encrypted ballot accurately represents their vote.
[0044] Once the votes have been tallied using homographic encry ption, the fund management system can access the results (e.g.. decrypt the aggregated file) and cast votes based on the results.
[0045] The fund management system can make the voting information available to the public so that the submitted votes can be verified by users to confirm each ballot was accurately counted. For example, the fund management system can make the voting records, the weight tables, the transformation algorithm, and the voting totals available to the public. Members of the public can then reproduce all the calculations to determine that the final vote total matches the submitted vote total. In this way, the fund management system provides voting services in a way that is transparent and verifiable.
[0046] The systems and methods of the present disclosure provide a number of technical effects and benefits. As one example, the proposed systems can enable a user to securely submit votes for issues associated with securities that they have a voting interest in (due to their ownership of shares of a fund). The fund management system provides these voting services in a manner that is secure and transparent. These votes can be collected automatically’, without the need for manual human intervention. Thus, the techniques disclosed in the present disclosure can enable reliable and efficient means for enabling the exercise of the voting rights associated with securities held in a fund. The vote counting process can increase the security, transparency, and privacy associated with the voting process while also reducing the cost of gathering those votes. The increased security and reduced expenses represent an improvement in the functioning of the computing device itself.
[0047] With reference now to the Figures, example embodiments of the present disclosure will be discussed in further detail.
[0048] FIG. 1 depicts a block diagram of an example computing system 100 that enables a fund management system 120 to establish funds, receive ballots, and submit votes to organizations according to example embodiments of the present disclosure. The computing system 100 includes a user computing device 102 and a server computing system 130 that are communicatively coupled over a network 180.
[0049] The user computing device 102 can be any type of computing device, such as, for example, a personal computing device (e.g., laptop or desktop), a mobile computing device (e.g., smartphone or tablet), a gaming console or controller, a wearable computing device, an embedded computing device, or any other type of computing device. As noted above, the user computing device 102 can be a computing system or group of computing systems that communicate on behalf of a user, group of users, or organization automatically and without specific user direction for each communication. Thus, the communications may be between two computing systems, one of which represents the fund management system and one of which represents an organization that has an ownership interest in a fund.
[0050] The user computing device 102 includes one or more processors 112 and a memory 114. The one or more processors 112 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected. The memory 1 14 can include one or more non-transitory computer-readable storage mediums, such as RAM, ROM, EEPROM, EPROM, flash memory' devices, magnetic disks, etc., and combinations thereof. The memory' 114 can store data 116 and instructions 118 which are executed by the processor 112 to cause the user computing device 102 to perform operations. [0051] In some implementations, the user computing device 102 can store or include one or more applications 140. For example, the one or more applications can include application(s) such as search applications, communication applications, navigation applications, productivity applications, game applications, word processing applications, investment applications, or any other applications. The application(s) can include a web browser. The user computing device 102 can use a web browser (or other application) to send and receive requests to and from the server computing system 130. In some examples, the sen' er computing system 130 can provide a specific application that can be used to generate requests to and receive responses from the server computing system 130.
[0052] In some implementations, the one or more applications 140 can be received from the server computing system 130 over network 180. stored in the user computing device memory 114, and then used or otherwise implemented by the one or more processors 112. [0053] More particularly, the one or more applications 140 can include an application that allows a user to interact with the server computing system 130 in a variety of ways. For example, a user can request information about one or more funds managed by the fund management system 120 such as the policies associated with the funds and the specific securities included in the funds. Users can use the applications to transfer capital to the fund management system 120 to obtain an ownership stake in one or more funds.
[0054] Once the user has ownership of at least one fund, the user can request a ballot when an issue associated with a security in that fund is raised for voting by the issuers of the security. The server computing system 130 can evaluate the ballot request, and if it is validated, generate a new ballot and transmit it to the user computing device 102. The user can vote on the issue and return the ballot to the server computing system 130. The server computing system 130 can store the ballot and, at a time indicated by the organization from which the security was obtained, count all the ballots from a plurality of users and submit a vote to the organization.
[0055] The server computing system 130 can publicly publish the voting records, total vote count, ownership share information (for weighing the votes), and the algorithms used to secure the voting records. The user can, using the one or more applications 140 on the user computing device 102, verily that their ballot was counted based on this published information. Additionally, the user (and the public generally) can verify that the total vote count matches the submitted voting records. In this way, individual owners of a fund with a plurality of securities can each vote on every issue that arises, if they should choose to do so. [0056] The user computing device 102 can also include one or more user input component 142 that receives user input. For example, the user input component 142 can be a touch-sensitive component (e.g., a touch-sensitive display screen or a touchpad) that is sensitive to the touch of a user input object (e.g., a finger or a stylus). The touch-sensitive component can serve to implement a virtual keyboard. Other example user input components include a microphone, a traditional keyboard, or other means by which a user can provide user input.
[0057] The server computing system 130 includes one or more processors 132 and a memory 134. The one or more processors 132 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.)
and can be one processor or a plurality of processors that are operatively connected. The memory 134 can include one or more non-transitory computer-readable storage mediums, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof. The memory 134 can store data 136 and instructions 138 which are executed by the processor 132 to cause the server computing system 130 to perform operations.
[0058] In some implementations, the server computing system 130 includes or is otherwise implemented by one or more server computing devices. In instances in which the server computing system 130 includes plural server computing devices, such server computing devices can operate according to sequential computing architectures, parallel computing architectures, or some combination thereof.
[0059] As described above, the server computing system 130 can include, among other components, a fund management system 120. The fund management system 120 can provide the services needed to operate one or more funds that include a plurality of asset types. The fund management system can provide an interface for users to obtain information about the one or more funds, including the current ownership, price, fund composition, and policies. [0060] In addition, the fund management system 120 can determine that an issue is available to vote for a particular security7 or other asset. For example, the fund management system can receive a notification from an issuer of a security that one or more issues are up for a vote. In other examples, the fund management system 120 can access publicly available information sources to determine when one or more issues are up for a vote. The fund management system 120 can notify owners of a particular fund that a security included in the fund has an issue that is up for a vote, including information about the one or more issues (e.g., the timing of the vote, the options for the issues, and so on). For instance, the fund management system 120 can communicate a notification to the user computing device 102 (e.g., one or more application(s) 140) via the network 180 indicative of information about the one or more issues.
[0061] Users can submit ballot requests to the fund management system 120. The fund management system 120 can validate the ballot request to determine that the ballot request was sent from the correct user during the period in which voting is open on one or more issues. The fund management system 120 can generate a ballot associated with one or more issues (e.g., sometimes a set of issues is up for a vote at a time). The ballot can be transmitted to the user computing device 102 associated with the requesting user. The ballot can be assigned an identifier and the fund management system 120 can store (e.g., in correlation
data) information associating the identifier of the ballot with a particular user (e.g., with an identifier corresponding to the requesting user). In this way, the ballot itself does not need to include information identifying the specific user with which it is associated.
[0062] The user can, using an application 140 on their user computing device 102, select their position on the one or more issues and return the ballot to the fund management system 120. The fund management system 120 can validate the ballot and, if the ballot is valid, store the ballot in a voting record. In some examples, if a plurality of ballots are received in a short amount of time, the fund management system 120 can aggregate a plurality of ballots into a single voting record for efficiency purposes.
[0063] The fund management system 120 can store the voting record in a set of voting records for the issue. To do so, the fund management system 120 can generate a link for each record. The link can refer to the previous voting record in the set. If a particular voting record is the first voting record for a set of one or more issues, the link can be set to 0 or null. The fund management system 120 can use a verification algorithm (e.g., a hash function) to transform the voting record and the link into a link value. This link value can be stored in the voting record for later verification. Because each voting record uses a link that points to the previous records, the set of voting records can form a chain of all voting records and a user can verify that the voting records are valid. For instance, a voting record may be invalid if it erroneously includes a link to a previous voting record that is also linked to by another (valid) voting record.
[0064] The fund management system 120 can determine, for each respective user, a percentage of the fund that the respective user ow ns. This percentage can be used to weigh their vote in the total vote. This information can be stored in a weight table. For example, a particular user owns 5% of a particular fund. The fund management system 120 can ensure that the particular user’s vote on a particular issue is weighed to control 5% of the vote (if all eligible users vote). If less than all the users vote, the total distribution can be calculated based on the percentage of the users who vote. Alternatively, the fund management system 120 can only vote for the percentage of shares representing the percentage of ownership that votes. Thus, if users that represent 50% of the ownership of a fund submit votes, the fund management system 120 may submit votes associated with 50% of the owned securities. [0065] The fund management system 120 can count (or tally) the votes stored in the voting records. The fund management system 120 can identify' the associated user for each ballot extracted from the voting record. The fund management system 120 can use the associated user to weigh the votes in each ballot and then add those weighted votes to the
total tally. When all voting records are counted, the fund management system 120 can submit a vote total to the associated organization. For example, if the fund owns 100 shares of a security and the weighted total was 45% voting for option A and 55% voting for option B, the fund management system 120 can submit information to the associated organization which votes 45 of the securities for option A and 55 of the securities for option B.
[0066] The fund management system 120 can make the voting information available to the public once the votes are submitted. For example, the voting records (which do not list specific users), the weight tables, the vote total, the algorithm used to generate link values, and so on can all be publicly shared so that each user, and the public in general, can ensure that the voting was correct and transparent.
[0067] FIG. 2 depicts a system that enables the creation of a fund according to example embodiments of the present disclosure. Authorized administrators of the fund management system can request that a new fund be generated. The fund generation system can generate a fund (An+i) 202. A fund can be represented by data defining the contents of the fund, the users who are ow ners of a part of the fund, and information describing any other characteristics of the fund. The fund creation system 230 can assign an identifier to the newly generated fund. In this example, the fund creation system 230 can assign each fund a unique identifier (An+i) to enable funds to be distinguished from each other.
[0068] The administrator who requests the creation of the fund (An+i) 202 can also determine which securities are included in the fund. The data describing the fund can include data describing the specific securities included in the fund, the amount of each security, and any other pertinent information. The data describing the fund can be stored in a fund data storage system 210.
[0069] The fund creation system 230 can assign a unique identifier to each asset held in the fund. In this example, the assets can be identified by the numbers 220-1 to 220-N wherein N is the number of distinct assets within the fund 202. Note that an asset in this context can include multiple shares in a particular company or venture.
[0070] The fund data storage system 210 can record the fund identifier, the security identifiers, and any other information about the fund. When users purchase a share of the fund, the information about the fund that the users, as well as the portion of the fund owned by that user, can be stored.
[0071] FIG. 3 is an example system for establishing the policies of a fund according to example embodiments of the present disclosure. In this example, when a respective fund is created, the creator of the fund (an authorized administrator) can provide a policy 302 for the
respective fund. The policy 302 can include information about the composition of assets within the fund (e.g.. which assets will be owned by the fund and in what proportion as well as any mechanisms for updating the composition of assets). The policy 302 can also include information describing the process for conducting all voting activities associated with each asset (e.g., securities or other assets) held in the fund. For example, each asset may have particular issues that arise to which the owner of the asset has a right to vote on. The policy can include details on how voting will be handled for a variety of assets (and asset types) as well as how particular issues may be handled.
[0072] Once the policy 302 has been received (or determined using input from the fund management system 120, the policy can be assigned to the particular fund. In this example, the policy is applied to the fund (AN+I). The fund management system 120 can store the policy 302, along with other information about the fund, in the fund data storage system 210. The fund data storage system 210 can include the policy data and can describe how votes on issues arising on securities in the set (BI...N) as held by the investment fund (AN+I) will be distributed, counted, and weighted.
[0073] FIG. 4 is an example table 400 of ownership records for a particular fund stored in a fund data storage system according to example embodiments of the present disclosure. The information can include a table of owners of a particular fund as well as the amount of each owner’s investment in the fund.
[0074] Each user that participates in a particular fund can be assigned a unique identifier (e.g., Ui... UN) and a record of their participation and identifier can be created (GI . GN). The records for the owners can be stored in a fund data storage system 210. The fund data storage system 210 can also store other information associated with the users such as their total investment or ownership in the particular fund.
[0075] FIG. 5 is an example of a system for generating issue records for one or more voting issues according to example embodiments of the present disclosure. In some examples, a fund management system 120 can include a notification reception system 502. The notification reception system 502 can receive a notification when an organization associated with the security opens an issue for voting. In some examples, the notification reception system 502 can access public information to identify when an organization associated with a particular security has opened an issue for voting. In other examples, the fund management system 120 can subscribe to a service associated with one or more organizations that can provide notification to the fund management system 120 when an issue is opened (e.g., using an available API).
[0076] In some examples, when the notification reception system 502 determines one or more issues have been opened by an organization for a vote, notification reception system 502 can transmit a notification to the issue generation system 504. The issue generation system 504 can assign the issue a unique identifier or moniker Dn+i. In some examples, the issue generation system 504 can then generate an issue record 520 for the issue. The issue record 520 can store the unique identifier associated with the issue. The issue record 520 can be stored in the fund data storage system 210.
[0077] In some examples, the organization that generates the issue can also create a specification that determines how votes must be formatted in order to be counted when the vote is handled on a particular issue. This specification (S) can also be stored in the issue record 520. In some examples, the issue record 520 can include other information in addition to the unique identifier and the specification including details about the issues, the options for the issues, and so on.
[0078] FIG. 6 is an example method for validating a ballot request according to example embodiments of the present disclosure. A user may be notified that a vote is available for a fund or security in which they have an ownership interest. In response to receiving this notification, the user can request a ballot from the fund management system 120 at the server computing system 130. To do so, the user can employ a user computing device 102 to generate a ballot request 602. The ballot request can include, among other information, an identifier for the user or user (UN), the identifier for the issue Dn+i, an identifier for the security issue, and so on.
[0079] In some examples, the server computing system 130 can perform several validation steps. Specifically, the fund management system 120 can determine whether the ballot request 602 is valid. For example, the fund management system 120 can determine whether the ballot request is sent by the user identified in the ballot request 602 and has not been tampered with. In some examples, the fund management system can, at 604, determine whether the user identifier is valid. The fund management system 120 can use a suitable identity and integrity-checking mechanism to validate that the message received was sent by the individual it purported to be from. In some examples, the ballot request 602 can include a cryptographically signed portion that the fund management system 120 can reliably determine what is sent by the user identified in the ballot request 602. If the user identifier is not validated, a ballot error notification 614 can be generated and transmitted to the user computing device 102.
[0080] If the user identifier is determined to be valid, the fund management system 120 can, at 606, determine whether the request itself is valid. For example, the fund management system 120 can access a record of the voting issue referenced by the ballot request 602. If such an issue record exists, the fund management system 120 can confirm that the user is eligible to vote on the one or more issues represented by the issue record. If either the issue record does not exist or the user is determined not to be eligible to vote on this issue, the request can be determined to be invalid and a ballot error notification 614 can be generated and sent to the user computing device 102.
[0081] In some examples, once the system determines that the request is valid, the fund management system 120 can access information about the vote including the time at which the voting opens and the time at which the voting closes. The fund management system 120 can, at 608, determine whether the current time is before the time at which the voting opens. If so, the ballot request 602 is determined to be too early and a ballot error notification 614 is generated and transmitted to the user computing device 102.
[0082] If the fund management system 120 determines that the voting period has opened, the fund management system 120 can determine whether the voting period has already ended. To do so, the fund management system 120 can, at 610, compare the current time to the end of the voting period. If the voting period has already ended, the fund management system 120 can generate a ballet error notification 614 and transmit it to the user computing device 102. [0083] The fund management system 120 can, at 612, determine whether the user has valid voting rights to vote on a particular issue. To do so, fund management system 120 can access information from the user record in the fund management data system. If the user does not have the right, based on their ownership of a particular fund, to vote on that issue, the fund management system 120 can generate a ballot error notification 614 and transmit it to the user computing device 102. The fund management system 120 can take additional steps to validate the ballot request 602 as seen in FIG. 7.
[0084] FIG. 7 is an example method for generating a ballot based on a received ballot request according to example embodiments of the present disclosure. In some examples, the fund management system 120 has already confirmed that the ballot request is valid (e.g.. the message is received from the correct user, the voting period is open, and the user has the right to vote on the issues as seen in FIG. 6). The fund management system 120 can access the fund data storage system 210 to determine, at 702, whether the user has already voted. The fund data storage system 210 can include records of previously cast ballots (CI-CN). Using a user identifier and an issue identifier included in the ballot request (e.g., ballot request 602 in
FIG. 6), the fund management system 120 can determine whether the fund data storage system 210 already includes a generated ballot. If so, the fund management system 120 can determine that the user has already voted and can return the existing ballot (e.g., the previously submitted ballot) and generate a return ballot notification 616 to the user computing device 102. The user can then update the existing ballot and resubmit it if they wish to change their votes before the voting period ends.
[0085] If the fund management system determines that the user has not already voted, it can, at 704, generate anew ballot (CN+I). As part of the generation process, the fund management system can assign the ballot (CN-I) a new identifier. The ballot (CN+I) can be assigned to a particular individual based on the user identifier (UN). In some examples, the fund management system can, at 706, record the ballot assignment in the fund data storage system 210. The ballot assignment can associate a particular user (UN) with a particular ballot (CN+I) by storing their respective identifiers.
[0086] Once the ballot (CN+I) has been generated and stored, the fund management system 120 can generate a ballot success message 710 and transmit it to the user computing device 102. The ballot (or a link to the ballot) can be included as part of the ballot success message 710. In some examples, the ballot success message 710 includes data for enabling users to access the ballot through an application on their user computing device 102. For example, the application the user used to generate the initial ballot request can be used to view the ballot and make their votes.
[0087] FIG. 8 is an example method for completing a ballot and transmitting it to the fund management system 120 according to example embodiments of the present disclosure. Once the user has access to a generated ballot, the user (UN) can vote on the issues for which the ballot is generated. To do so. the user can access a user computing device 102 (e.g., using an input device). The user computing device 102 can include an application that allows the user to vote on one or more issues. In some examples, the application can be associated with the fund management system 120. The user computing device 102 can include information about how a completed ballot is to be formatted based on a specification provided by the organization which issued the security.
[0088] Once the user computing device 102 has generated the completed ballot 802 (based on input from a user), the user computing device 102 can transmit the completed ballot 802 to the fund management system 120 via a communication network. The fund management system 120 can receive the completed ballot and store it. When the voting
period ends, the fund management system can aggregate all of the ballots and submit the voting results to the appropriate organization.
[0089] FIG. 9 is an example method for validating a vote request 902 according to example embodiments of the present disclosure. Once a user has received a generated ballot and completed their ballot (e.g., using an application on their user computing device), the user can return the ballot to the fund management system 120. To do so, the ballot can be included in a vote request 902 that is sent from the user computing device 102 to the fund management system 120. The vote request 902 can include, among other information, an identifier of the issue (Dn+i), the identifier of the ballot (CN+I), and a representation (Es) of the position that the user has taken on issue Dn+i. The fund management system 120 can store the relationship between a ballot and the user for which it is generated.
[0090] In some examples, the fund management system can determine whether the vote request 902 is valid. For example, the fund management system 120 can, at 904, determine that the vote request 902 is received from an appropriate source and that vote request 902 has not been tampered with. The fund management system 120 can use a suitable identity and integrity checking mechanism to validate that the message received was sent from the listed source and has not been altered. If the vote request is not validated, a vote error notification 914 can be generated and transmitted to the user computing device 102.
[0091] The fund management system can, at 906, determine whether the vote request 902 itself is valid. For example, the fund management system 120 can access a record of the voting issue (Dn+i) referenced by the vote request 902. If such an issue record exists, the fund management system 120 can confirm that the ballot is valid and has been issued to a user that is eligible to vote on this issue represented by the issue record. If either the issue record does not exist or the ballot is determined to be not valid, the vote request 902 can be determined to be invalid and a vote error notification 914 can be generated and sent to the user computing device 102.
[0092] In some examples, once the fund management system 120 determines that the request is valid, the fund management system can access information about the issue (Dn+i) including the time at which the voting opens and the time at which the voting closes. The fund management system can, at 908, determine whether the current time is before the time at which the voting opens. If so, the vote request 902 is determined to be too early and a vote error notification 914 is generated and transmitted to the user computing device 102.
[0093] If the fund management system 120 determines that the voting period has opened, the fund management system 120 can determine whether the voting period for the issue
(Dn+i) has already ended. To do so, the fund data storage system 210 can, at 910, compare the current time to the end of the voting period. If the voting period has already ended, the fund management system 120 can generate a vote error notification 914 and transmit the notification to the user computing device 102.
[0094] The fund management system 120 can, at 912, determine whether the position (ES) submitted for a particular issue (Dn+i) is valid. For example, each issue can have a limited number of potential response positions. For example, an organization may propose a particular course of action and the options on that issue may include 1) support the course of action, 2) reject the course of action, or 3) take no position on the course of acton. If a vote were received for this particular issue, the fund management system 120 can determine whether the position submitted with the vote request 902 is one of the three possible options. If the fund management system 120 determines that the position submitted with the vote request is not a valid position, the fund management system 120 can generate a vote error notification 914 and transmit it to the user computing device 102. If the vote request 902 passes all the validation checks, the fund management system 120 can take additional steps to store it as seen in FIG. 10.
[0095] FIG. 10 is an example method for storing a vote request 902 according to example embodiments of the present disclosure. In some examples, once the fund management system 120 has validated a vote request, the fund management system can store the completed ballot (or information representing the completed ballot) received from the user computing device 102. In order to accomplish efficient storage of ballot information as a voting record, the fund management system 120 may employ an aggregation mode in which multiple ballots are stored in a single voting record to improve the throughput of the system in high volume times.
[0096] When a ballot is received, the fund management system 120 can determine the number of ballots received during a predetermined time frame. If that number exceeds a threshold value, the fund management system can use an aggregation mode to store ballots. In some examples, the fund management system 120 can, at 1002, determine whether the system is already in an aggregation mode. Thus, the fund management system 120 can, at 1002, determine whether the process of aggregating voting data for the issue (Dn+i) has already begun.
[0097] If the fund management system 120 is not in an aggregation mode, the fund management system 120 can, at 1004. create a voting record (Fn+i) for the current ballot
(Cn+i). If the fund management system 120 determines that the system is in aggregation mode, the fund management system 120 can, at 1006. obtain the aggregated voting record. [0098] The fund management system 120 can, at 1008, insert the information submitted with the user’s ballot into the aggregated voting record (F). The voting records (whether aggregated or not) can be stored in the fund data storage system 210.
[0099] FIG. 11 is an example method for notifying users that their vote request was successful according to example embodiments of the present disclosure. When the fund management system has generated a vote record (Fn+i) (whether aggregated or not), the fund system can generate a link from the vote record (Fn+i) to other vote records for the respective issue (Dn+i). To do so, the fund management system 120 can, at 1102, determine whether other vote records have been received for the respective issue (Dn+i). If no such vote records have been received, the link value can, at 1104, be set to zero (as there are no records to link to).
[0100] If the fund data storage system 210 determines that one or more vote records (Fn+i) for the respective issue (Dn+i) already exist, the fund management system can, at 1106, obtain a link to the most recent vote record (Fn) from the fund data storage system 210. The fund management system 120 can, at 1108, generate a link value for the voting record (Fn+i). To do so, the fund management system 120 can use an appropriate algorithm to process the voting record (Fn+i) and the link (either set to zero or to link to the previous voting record). [0101] An algorithm or process that is appropriate for generating a link value can exhibit two properties. The properties are such that the result of running the algorithm or process on any voting record in the plurality of vote records for a particular issue (Dn i i) can be unique within that set of data records (collision-free), and is such that the data record (Fn+i) may not be regenerated from the result of the algorithm (or process) on the data record (Fn+i) and a link value L (irreversible). In certain embodiments, these properties of an algorithm are satisfied through the use of common cry ptographic hash functions such as SHA-2/SHA-3. [0102] The fund management system 120 can add the generated link value to the voting record (Fn+i). The updated vote record can, at 1110, be stored in the fund data storage system 210. The fund management system 120 can generate a vote success record 1112. In some examples, vote success records 11 12 can be generated for a plurality of users. Each vote success record 1112 can be transmitted to a user computing device (102-1 to 102-N) associated with a particular user. In some examples, the fund management system 120 can determine, for each voting record (Fn+i) a specific user (e.g., a user account or a user computing device 102) based on data in the fund data storage system 210.
[0103] FIG. 12 is an example method for determining the weight of each ballot according to example embodiments of the present disclosure. In some examples, when the voting period for an issue ends, the fund management system 120 can access all the stored vote records from the fund data storage system 210 to determine a total vote count for the securities held by the fund. Once the total vote count is determined, the fund management system can submit the vote count to the appropriate organization for use in deciding the issue. For example, the issue can be the people who will serve on the board of an organization and the vote count can be used to determine whether the suggested board members are approved or not.
[0104] To do so, the fund management system 120 can access all the voting records (Fn+i) for a particular issue (Dn+i) stored in the fund data storage system 210. For each voting record, the fund management system 120 can, at 1204, access the associated ballot data (CN+I). The ballot data (CN+I) can be used to determine a user associated with a particular stored ballot (e.g., data that associated each ballot with a particular user). The ballot assignment data can indicate, for each generated ballot (CI...CN+I), a user (UN) assigned to that ballot (CN+I). The fund management system 120 can, at 1202, also access information about the percentage of the fund that each user (UN) ow ns based on data stored in the fund data storage system 210.
[0105] The fund data storage system 210 can correlate, at 1206, the ballot records with the users to determine, for each ballot, the ownership weight associated with the corresponding users. The data can be used to, at 1208, generate an ownership weight table 1210. The ownership weight table 1210 can be used to assign a weight to each voting record in the set of voting records (Wi ... WN). Thus, each row in the voting table (Wi) can associate a ballot (Cis) with a weight (0.013) for the votes in the ballot. The ownership weight table 1210 can be stored in the fund data storage system 210.
[0106] FIG. 13 is an example method for tallying the total vote on an issue according to example embodiments of the present disclosure. The fund management system 120 can determine that the time that votes are accepted for a particular issue (Dn+i) has ended. In some examples, the fund management system 120 can, as part of its published policy, close new vote requests prior to the date and time that the issuing organization ceases to accept votes. This allows the fund management system 120 to tabulate the total votes for the securities held in the fund and submit them to the issuing organization while it is still accepting votes.
[0107] When the fund management system 120 determines that the time for voting has closed, the fund management system 120 can access the fund data storage system 210 to
access, at 1302, all the voting records (Fn+i) associated with the respective issue (Dn+i). The voting records (Fn+i) can include all the ballots submitted by users who have the right to vote on a particular issue (Dn+i). The fund management system 120 can, at 1304, select the next record from the set of records associated with the particular issue (Dn+i) to be the current record (Fc). Initially, that next record is the first record to be counted and may be either the voting record (Fi) for the first ballot (Ci) submitted or the voting record (FN) for the last ballot (CN) submitted.
[0108] The fund management system 120 can, at 1306, extract the voting position (Ec) from the current voting record (Fc). The voting position (Ec) can be stored in a ballot (Cc) received from the user. The fund management system 120 can determine a weight associated with the voting record (Fc). To do so, the fund management system 120 can, at 1308, access a weight table that includes a set of weights (WI...N), each weight being associated with a particular ballot (C). The fund management system can generate a weighted value for the position (Ec) based on the corresponding weight value in the weight table. The fund management system 120 can, at 1310, count the weighted position by adding it to the total cumulative vote total.
[0109] Once the current voting record (Fc) has been added to the cumulative vote total, the fund management system 120 can, at 1312, determine whether there are any remaining voting records in the plurality of voting records associated with the respective issue (Dn+i). If additional voting records (Fc) are associated with the issue and have not yet been added to the cumulative vote total, the fund management system 120 can set the current voting record (Fc) to the next voting record in the set of voting records. In this way, the fund management system 120 can iterate through all the voting records (Fl-FN). Once the fund management system 120 determines that there are no further voting records in the set of voting records associated with the respective issue (Dn+1), the fund management system 120 can, at 1314, output the cumulative vote total as a result of the vote counting process.
[0110] More specifically, the fund management system 120 can count the votes into a cumulative vote total using a counting function to accumulate the ballot position (EN) into the overall voting result V for issue (Dn+i). The voting system can count the votes by a vote tabulation policy established when the investment fund (AN+I) was created. The fund management system 120 can weigh the effect of the ballot position (EN) on the overall voting result, according to the ownership fraction of the user associated with the specific ballot (based on the weight table).
[0111] For an embodiment where the issue (Dn+i) is binary (e.g., a simple yes or no question), the fund management system computes the sum of all votes cast on an issue (Dn+i) in the set of ballots (CI...CN) as weighted according to their ownership stake held in the investment fund (AN+I). The ownership stake may be determined at a time specified in the policies associated with the fund. The fund management system 120 can apply the voting policy stored with the investment fund (AN+I) when it was first created. For example, the fund (AN+I) holds 100 shares of security N (BN) and has $1000 under management. User A (UA) has invested $20 in the fund. If User A (UA) casts a Yes vote on the issue (Dn+i), the fund management system 120 records that 2% (the percentage of the fund held by User A (UA) of the votes (two votes in this example) on the issue will be cast as Yes.
[0112] FIG. 14 is a diagram illustrating a policy for making data available to the public according to example embodiments of the present disclosure. For example, the fund management system 120 can submit the tabulated votes to the organization that issued the securities and opened the respective issue (Dn+i) at a time determined by the issuing organization.
[0113] The fund management system can, at a time determined by its policies, make the contents of the vote available to the public for verification. For example, the fund management system 120 can make the data records (Fi ... FN) 1402 and the set of records (Wi ... WN) 1404 in the weight tables available. Additionally, the fund management system 120 can make the algorithm 1408 used to generate the link values and the voting policy 1406 for the fund public. In some examples, this data can be made available on the Internet. The public can use this data to ensure that the votes w ere accurately counted and submitted to the organization.
[0114] FIG. 15 is a diagram illustrating a system for enabling users to determine that a particular ballot was accurately included according to example embodiments of the present disclosure. To do so, the fund management system 120 can make the voting records and weight table available to the user via one or more computing communication networks as shown in FIG. 14. For example, the user computing device 102 can verify the accuracy of the voting records (Fi ... FN) for the respective issue (Dn+i). To do so. the user computing system can, at 1 02, access (or cause the fund management system 120 to access) the set of voting records (F i ... FN).
[0115] The user computing device 102 can, at 1504, select the next record in the set of voting records (Fi ... FN) for the respective issue. To do so, the user computing device 102 can, at 1506, determine whether the cunent voting record (Fc) is the first voting record (Fl)
in the set of voting records (Fi ... FN) associated with the respective issue (Dn+i). If the current voting record is the first voting record (Fl) in the set of voting records (Fi ... FN) associated with the respective issue (Dn+i), the user computing device 102 can set the first link to 0. [0116] If the user computing device 102 determines that the current voting record (Fc) is not the first voting record (Fi) in the set of voting records (Fi ... FN) associated with the respective issue (Dn+i), the user computing system can, at 1508, set the link to the previous record (Fc-i) (e.g., the link is a value that points to the previous record or is otherwise associated with the previous record). The user computing device 102 can, at 1510, calculate a link value based on the link and the current voting record (Fc). The algorithm used to calculate the link value can be the same algorithm that was used to generate the stored link value and can be made publicly available by the fund management system 120.
[0117] The user computing device 102 can, at 1512, determine whether the calculated link value matches the stored linked value for the current voting record. If the calculated link value does not match the stored linked value, the user computing device 102 can determine that the set of voting records is invalid. In this example, invalid voting records can be voting records in which at least one ballot in the set of submitted ballots is not properly counted in the vote total.
[0118] In some examples, the user computing device 102 determines that the calculated link value matches the stored link value. In this case, the user computing device 102 can. at 1514, determine whether the current record (Fc) is the last voting record in the set of voting records associated with the respective issue (Dn+i). In some examples, the user computing device 102 can determine that the voting record associated with a specific user (e.g., the ballot they submitted) is the last voting record they wish to verify. Thus, if the current voting record (Fc) is associated with that specific user, the user computing device 102 can determine that the current voting record (Fc) is the last voting record.
[0119] If the user computing device 102 determines that the current voting record (Fc) is not the last voting record, the user computing device 102 can, at 1516, select the next record in the set of voting records associated with the respective issue (Dn+i) as the current voting record (Fc).
[0120] In this way, the user computing device 102 can iterate through all the records in the set of voting records (Fi ... FN) associated with the respective issue (Dn+i). If the user computing device 102 determines that this current record (Fc) is the last record in the set (or the last desired record) and all the link values have been successfully validated, the user computing device 102 can determine that the set of voting records is valid.
[0121] FIG. 16 is a diagram illustrating a system for enabling the public to verify the voting result submitted by the fund management system on the respective issue according to example embodiments of the present disclosure. To do so, the fund management system 120 can make the voting records and weight table available to the user via one or more computing communication networks as shown in FIG. 14. Thus, the public (anyone with a user computing device 102) can verify the accuracy of the voting records (Fi ... FN) for the respective issue (Dn+i). To do so, the user computing system can. at 1602, access (or cause the fund management system to access) the set of voting records (Fi ... FN) for the respective issue (Dn+i).
[0122] The user computing device 102 can, at 1604, select the next record in the set of voting records (Fi ... FN) for the respective issue. To do so, the user computing device 102 can, at 1606, determine whether the cunent voting record (Fc) is the first voting record (Fl) in the set of voting records (Fi ... FN) associated with the respective issue (Dn+i). If the current voting record is the first voting record (F i) in the set of voting records (Fi ... FN) associated with the respective issue (Dn+i), the user computing device 102 can set the first link to 0. [0123] If the user computing device 102 determines that the current voting record (Fc) is not the first voting record (Fi) in the set of voting records (Fi ... FN) associated with the respective issue (Dn+i), the user computing device 102 can, at 1608, set the link to the previous record (Fc-i) (e.g., the link is a value that points to the previous record or is otherwise associated with the previous record). The user computing device 102 can, at 1610. calculate a link value based on the link and the current voting record (Fc). The algorithm used to calculate the link value can be the same algorithm that was used to generate the stored link value and can be made publicly available by the fund management system 120.
[0124] The user computing device 102 can, at 1612, determine whether the calculated link value matches the stored linked value for the current voting record. If the calculated link value does not match the stored linked value, the user computing device 102 can determine that the set of voting records is invalid. In this example, voting records determined to be invalid can be voting records that are not accurately included in the total vote count.
[0125] In some examples, the user computing device 102 determines that the calculated link value matches the stored link value. In this case, the user computing device 102 can, at 1620, count the votes from the ballots with respect to issue (D). To do so, the user computing device 102 can extract the ballot information from the current voting record. The user computing device 102 can, at 1622, access the weight table made available by the fund management system 120 (see, for example, FIG. 14). The weight table can be used to
determine how to weigh each vote in the set of voting records. In some examples, each ballot in the voting records has an associated weight in the weight table.
[0126] Once the user computing device 102 has counted the ballot of the current voting record, the user computing device 102 can determine whether the current record (Fc) is the last voting record in the set of voting records associated with the respective issue (Dn+i). If the user computing device 102 determines that the current voting record (Fc) is not the last record, the user computing device 102 can, at 1614. select the next record in the set of voting records associated with the respective issue (Dn+i) as the current record (Fc).
[0127] In this way, the user computing device 102 can iterate through all the records in the set of voting records (Fi ... FN) associated with the respective issue (Dn+i). If the user computing device 102 determines that this current record (Fc) is the last record in the set and all the link values have been successfully validated, the user computing device 102 can output the result, which represents the total vote for all the users who submitted ballots. This result can be compared with the result that is made available to the public by the fund management system to determine that the submitted votes accurately represent the votes of all the users in the fund.
[0128] FIG. 17 depicts an example flow diagram for a method of enabling participants in an investment fund to cast votes associated with the assets in the fund according to example embodiments of the present disclosure. One or more portion(s) of the method can be implemented by one or more computing devices such as, for example, the computing devices described herein. Moreover, one or more portion(s) of the method can be implemented as an algorithm on the hardware components of the device(s) described herein. FIG. 17 depicts elements performed in a particular order for purposes of illustration and discussion. Those of ordinary skill in the art, using the disclosures provided herein, will understand that the elements of any of the methods discussed herein can be adapted, rearranged, expanded, omitted, combined, and/or modified in various ways without deviating from the scope of the present disclosure. The method can be implemented by one or more computing devices, such as one or more of the computing devices depicted in FIG. 1.
[0129] A fund management system (e.g.. fund management system 120 in FIG. 1) can include one or more processors, memory, and a communication device. The user computing device (e.g., user computing device 102 in FIG. 1) can include other components that, together, enable the fund management system (e.g., fund management system 120 in FIG. 1) to provide services associated with investment funds.
[0130] The fund management system (e.g., fund management system 120 in FIG. 1) can, at 1702, receive a ballot request for a set of one or more issues for a security included in a fund, the ballot request including a user identifier for a user and an issue identifier for the set of one or more issues. The fund management system (e.g., fund management system 120 in FIG. 1) can validate the ballot request prior to generating the ballot. Validating can include determining that the request has not been tampered with and actually originates with the user listed in the request. In addition, the fund management system (e.g., fund management system 120 in FIG. 1) can determine whether the voting period is open, and the user has the appropriate rights to request a ballot.
[0131] The fund management system (e.g., fund management system 120 in FIG. 1) can determine a date range in which the set of one or more issues are open for voting. The fund management system (e.g., fund management system 120 in FIG. 1) can determine whether a current date is within the data range. The fund management system (e.g., fund management system 120 in FIG. 1) can determine whether the user is authorized to vote on the set of one or more issues that are open for voting. For example, the fund management system (e.g., fund management system 120 in FIG. 1) can determine whether the user owns a portion of the fund that holds the associated security.
[0132] The fund management system (e.g., fund management system 120 in FIG. 1) can, at 1704, generate a ballot for the set of one or more issues. In some examples, the fund management system (e.g., fund management system 120 in FIG. 1) can store a ballot record to associate the user with the generated ballot.
[0133] The fund management system (e.g., fund management system 120 in FIG. 1) can, at 1706, transmit the generated ballot to the user computing device associated with the user. The generated ballot can be displayed to the user in an application with the fund management system (e.g., fund management system 120 in FIG. 1). The fund management system (e.g., fund management system 120 in FIG. 1) can, at 1708, receive a completed ballot. In some examples, the fund management system (e.g., fund management system 120 in FIG. 1) can validate the completed ballot.
[0134] The fund management system (e.g.. fund management system 120 in FIG. 1) can, at 1710, generate a voting record for the completed ballot, the voting record including a link associated with the completed ballot. In some examples, the fund management system (e.g., fund management system 120 in FIG. 1) can set the link to a previously received voting record. The fund management system (e.g., fund management system 120 in FIG. 1) fund management system (e.g., fund management system 120 in FIG. 1) can generate a link value
by applying a transformation algorithm to the voting record and the link. The fund management system (e.g., fund management system 120 in FIG. 1) can store the link value in the voting record.
[0135] The fund management system (e.g., fund management system 120 in FIG. 1) can determine a number of voting records received in a predefined period. The fund management system (e.g., fund management system 120 in FIG. 1) can determine whether the number of records received in the predefined period exceeds a predefined threshold. In response to determining, by the computing system, that the number of records received in the predefined period exceeds a predefined threshold, the fund management system (e.g., fund management system 120 in FIG. 1) can aggregate multiple ballots into a single voting record.
[0136] The fund management system (e.g.. fund management system 120 in FIG. 1) can provide, at 1712, the voting record to the user computing device, the voting record including a link value that enables the user to verify that the completed ballot has been recorded. The fund management system (e.g., fund management system 120 in FIG. 1) can provide one or more policies associated with the fund to the user. In some examples, the one or more policies associated with the fund include one or more details for performing a transformation algorithm. In some examples, the transformation algorithm is a hash function.
[0137] The fund management system (e.g., fund management system 120 in FIG. 1) can provide a link to a previous voting record to the user such that the user can. using the details of the transformation algorithm and a link to the previous voting record, generate a link value to compare to the link value in the voting record. In some examples, the fund management system (e.g., fund management system 120 in FIG. 1) can, at 1714, aggregate a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
[0138] In some examples, the fund management system (e.g., fund management system 120 in FIG. 1) can determine, for each user in a plurality of users associated with the fund, an ownership percentage of the fund. The fund management system (e.g., fund management system 120 in FIG. 1) can store a plurality of weights associated with the plurality7 of users in a weight table, the plurality7 of weights being based on the ownership percentage for each user.
[0139] In some examples, the fund management system (e.g., fund management system 120 in FIG. 1) can iteratively access each voting record in the set of voting records associated with the one or more issues. The fund management system (e.g., fund management system 120 in FIG. 1) can identify a user associated with each voting record in the set of voting records. For each respective voting record in the plurality voting records, the fund
management system (e.g., fund management system 120 in FIG. 1) can access a weight associated with the associated user. The fund management system (e.g., fund management system 120 in FIG. 1) can generate a weighted vote based on the respective voting record and the weight associated with the associated user. In some examples, the fund management system (e.g., fund management system 120 in FIG. 1) can add the weighted to the total vote count.
[0140] FIG. 18 is an example method for generating a ballot based on a received ballot request according to example embodiments of the present disclosure. This method is an alternative to FIG. 7, in which the ballot itself includes ownership information for the user (UN). Doing so allows the ballot information to be encrypted before transmission to the fund management system. In this way, the voting data for each user can be anonymous. Instead, the fund management system can gather a plurality of encrypted ballots (which include the ownership w eight information), using homomorphic encryption methods to tally the votes without decry pting the ballots, and then determining the vote totals. In some examples, the fund management system can employ a third-party system to collect and tally the encry pted ballots.
[0141] As such, the fund management system 120 has already confirmed that the ballot request is valid (e.g., the message is received from the correct user, the voting period is open, and the user has the right to vote on the issues as seen in FIG. 6). The fund management system 120 can access the fund data storage system 210 to determine whether the user has already voted. The fund data storage system 210 can include records of previously cast ballots (CI-CN). Using a user identifier and an issue identifier included in the ballot request (e.g., ballot request 602 in FIG. 6), the fund management system 120 can, at 1804, determine whether the fund data storage system 210 already includes a generated ballot. If so, the fund management system 120 can determine that the user has already voted and can return the existing ballot 1810 (e.g., the previously submitted ballot) to the user computing device 102. The user can then update the existing ballot and resubmit it if they wish to change their votes before the voting period ends.
[0142] If the fund management system determines that the user has not already voted, it can, at 1806, generate a new ballot (CN+I). AS part of the generation process, the fund management system can assign the ballot (CN-I) a new identifier. The ballot (CN+I) can be assigned to a particular individual based on the user identifier (UN). The fund management system can, at 1802, access user ownership data. Ownership data can include the amount of a particular fund that the user (UN) owns. The ownership data can be used to w eight the votes
provided by the user. For example, if a first user (Ui) owns double the percentage of the fund as a second user (U2), the vote of the first user can be weighted twice as much as the second user.
[0143] In some examples, the fund management system can, at 1808, record the ballot assignment in the fund data storage system 210. The ballot assignment can associate a particular user (UN) with a particular ballot (CN+I) by storing their respective identifiers. [0144] Once the ballot (CN+I) has been generated and stored, the fund management system 120 can generate a ballot success message 1812 and transmit it to the user computing device 102. The ballot (or a link to the ballot) can be included as part of the ballot success message 1808. In some examples, the ballot success message 1808 includes data for enabling users to access the ballot through an application on their user computing device 102. For example, the application the user used to generate the initial ballot request can be used to view the ballot and make their votes. FIG. 6 displays the user computing device receiving the ballot success message 1812. In this example, the ballot includes the ownership information, which allows the user to generate an encrypted ballot that already includes weighting information.
[0145] FIG. 19 is an example method for completing a ballot and transmitting it to the fund management system 120 according to example embodiments of the present disclosure. This figure continues on from FIG. 18 in which the ballot includes ownership information. Once the user has access to a generated ballot, the user (UN) can vote on the issues for which the ballot is generated. To do so, the user can access a user computing device 102 (e.g., using an input device). The user computing device 102 can include an application that allows the user to vote on one or more issues. In some examples, the application can be associated with the fund management system 120. The user computing device 102 can include information about how a completed ballot is to be formatted based on a specification provided by the organization which issued the security.
[0146] Once the user computing device 102 has provided their votes on one or more issues associated with the ballot (based on input from a user), the user computing device 102 can use the included ownership information to weight the votes provided by the user. Once the votes provided by the user have been weighted based on the user’s ownership information, the user computing device 102 can generate a completed ballot 802. The completed ballot 802 can be provided to an encryption system 1902.
[0147] In some examples, the encryption system can be provided by a third-party service. In other examples, the encry ption system 1902 can be incorporated in the user
computing device 102 (either by the fund management system 120 or a trusted third-party system). In other examples, the encryption system 1902 can be provided by fund management system 120.
[0148] The encryption system 1902 can use any encryption technique to encrypt the data in the completed ballot 802. In some examples, the encrypted ballot 1904 can be transmitted to the fund management system 120 via a communication network. The fund management system 120 can receive the encrypted ballot 1904 and store it. The encrypted ballot can be read by7 the fund management system 120, allowing users to provide their votes anonymously. When the voting period ends, the fund management system can aggregate all of the encry pted ballots, decrypt the result, and submit the voting results to the appropriate organization.
[0149] FIG. 20 is an example method for tallying the total vote on an issue when the ballots are encrypted according to example embodiments of the present disclosure. The fund management system 120 can determine that the time that votes are accepted for a particular issue (Dn+i) has ended. In some examples, the fund management system 120 can, as part of its published policy, close new vote requests prior to the date and time that the issuing organization ceases to accept votes. This allows the fund management system 120 to tabulate the total votes for the securities held in the fund and submit them to the issuing organization while it is still accepting votes.
[0150] When the fund management system 120 determines that the time for voting has closed, the fund management system 120 can access the fund data storage system 21 to access, at 2012, all the voting records (Fn< i) associated with the respective issue (Dn< i). Continuing on from FIG. 19, the stored ballots are all encrypted such that fund management system 120 is not able to determine what any specific user has selected. The voting records (Fn+i) can include all the encrypted ballots returned by users who have the right to vote on a particular issue (Dn+i). The fund management system 120 can, at 2014, select the next record from the set of records associated with the particular issue (Dn+i) to be the current record (Fc). Initially, that next record is the first record to be accessed. The first record can be the voting record (Fi) for the first ballot (Ci) submitted or the voting record (FN) for the last ballot (CN) submitted. In other examples, the encrypted ballots can be ordered arbitrarily.
[0151] The fund management system 120 can, at 2002, aggregate the encrypted ballot into the total without decry pting the encrypted ballot. In some examples, the encrypted ballots are aggregated using homomorphic encryption techniques. Homomorphic encryption
techniques can enable the system to aggregate the votes in multiple encrypted ballots without decrypting those ballots. This ensures that the voting remains anonymous.
[0152] In some examples, the fund management system 120 can provide the encrypted ballots to a third-party system that performs the homomorphic encryption techniques. In some examples, the third-party' system can enable encryption of all the ballots, aggregation of the encrypted ballots, and decryption of the final tally so the vote total can be obtained. In other examples, the fund management system 120 can conduct the encryption, aggregation, and decr ption without a third-party system.
[0153] Once the current voting record (Fc) has been aggregated to the cumulative vote total (using homomorphic encryption methods), the fund management system 120 can. at 2016, determine whether there are any remaining voting records in the plurality of voting records associated with the respective issue (Dn+i). If additional voting records (Fc) are associated with the issue and have not yet been aggregated to the cumulative vote total, the fund management system 120 can set the current voting record (Fc) to the next voting record in the set of voting records. In this way, the fund management system 120 can iterate through all the voting records (Fl-FN). Once the fund management system 120 determines that there are no further voting records in the set of voting records associated with the respective issue (Dn+1), the fund management system 120 can, at 2004, output the encrypted result representing the vote total.
[0154] The fund management system 120 can, at 2006, decrypt the result. In some examples, the result is decrypted using a key provided by a third-party system that provided the encry ption and aggregation services. For an embodiment where the issue (Dn i) is binary' (e.g., a simple yes or no question), the fund management system 120 can apply the voting policy stored with the investment fund (AN+I) when it was first created. For example, the fund (AN+I) holds 100 shares of security N (BN) and has $1000 under management. If the owners of 60 shares (weighted by ownership percentage) vote yes and the owners of 40 shares vote no, the fund management system 120 records that 60% of the votes on the issue will be cast as Yes and 40% of the votes on the issue will be cast as no.
[0155] The technology discussed herein makes reference to sensors, servers, databases, software applications, and other computer-based systems, as well as actions taken, and information sent to and from such systems. The inherent flexibility of computer-based systems allows for a great variety of possible configurations, combinations, and divisions of tasks and functionality between and among components. For instance, processes discussed herein can be implemented using a single device or component or multiple devices or
components working in combination. Databases and applications can be implemented on a single system or distributed across multiple systems. Distributed components can operate sequentially or in parallel.
[0156] While the present subject matter has been described in detail with respect to various specific example embodiments thereof, each example is provided by way of explanation, not limitation of the disclosure. Those skilled in the art, upon attaining an understanding of the foregoing, can readily produce alterations to, variations of, and equivalents to such embodiments. Accordingly, the subject disclosure does not preclude inclusion of such modifications, variations and/or additions to the present subject matter as would be readily apparent to one of ordinary skill in the art. For instance, features illustrated or described as part of one embodiment can be used with another embodiment to yield a still further embodiment. Thus, it is intended that the present disclosure cover such alterations, variations, and equivalents.
Claims
1. A computer-implemented method, the method comprising: receiving, by a computing system with one or more processors, a ballot request for a set of one or more issues for a security included in a fund, the ballot request including a user identifier for a user and an issue identifier for the set of one or more issues; generating, by the computing system, a ballot for the set of one or more issues; transmitting, by the computing system, the ballot to a user computing device associated with the user; receiving, by the computing system from the user computing device, a completed ballot; generating, by the computing system, a voting record for the completed ballot, the voting record including a link associated with the completed ballot; providing, by the computing system, the voting record to the user computing device, the voting record including a link value that enables the user to verify that the completed ballot has been recorded; and aggregating, by the computing system, a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
2. The computer-implemented method of claim 1, further comprising: validating, by the computing system, the ballot request prior to generating the ballot.
3. The computer-implemented method of claim 2, wherein validating, by the computing system, the ballot request prior to generating the ballot further comprises: determining, by the computing system, a date range in which the set of one or more issues are open for voting; and determining, by the computing system, whether a current data is within the date range.
4. The computer-implemented method of claim 3. wherein validating, by the computing system, the ballot request prior to generating the ballot further comprises: determining, by the computing system, that the user is authorized to vote on the set of one or more issues that are open for voting.
5. The computer-implemented method of claim 1, wherein generating, by the computing system, the ballot for the set of one or more issues further comprises: storing, by the computing system, a ballot record to associate the user with the generated ballot.
6. The computer-implemented method of claim 1 , wherein receiving, from the user computing device, a completed ballot further comprises: validating, by the computing system, the completed ballot.
7. The computer-implemented method of claim 1, wherein generating a voting record for the completed ballot further comprises: setting, by the computing system, the link to a previously received voting record.
8. The computer-implemented method of claim 1, wherein generating a voting record for the completed ballot further comprises: generating, by the computing system, a link value by applying a transformation algorithm to the voting record and the link, and storing, by the computing system, the link value in the voting record.
9. The computer-implemented method of claim 1, wherein aggregating, by the computing system, a vote in the voting record with a plurality of other votes to generate a vote total for the fund further comprises: determining, by the computing system for each user in a plurality of users associated with the fund, an ownership percentage of the fund; and storing, by the computing system, a plurality of weights associated with the plurality of users in a weight table, the plurality of weights being based on the ownership percentage for each user.
10. The computer-implemented method of claim 9. wherein aggregating, by the computing system, a vote in the voting record with a plurality of other votes to generate a vote total for the fund further comprises: iteratively accessing, by the computing system, each voting record in the set of voting records associated with the one or more issues;
identifying, by the computing system, a user associated with each voting record in the set of voting records; and for each respective voting record in the plurality voting records: accessing, by the computing system, a weight associated with the associated user; generating, by the computing system, a weighted vote based on the respective voting record and the weight associated with the associated user; and adding, by the computing system, the weighted to the total vote count.
11. The computer-implemented method of claim 1 , wherein providing the voting record to the user computing device, the voting record including a link value that enables the user to verify’ that the completed ballot has been recorded further comprises: providing, by the computing system, one or more policies associated with the fund to the user.
12. The computer-implemented method of claim 11, wherein the one or more policies associated with the fund include one or more details for performing a transformation algorithm.
13. The computer-implemented method of claim 12, wherein the transformation algorithm is a hash function.
14. The computer-implemented method of claim 13, wherein providing the voting record to the user computing device further comprises: providing, by the computing system, a link to a previous voting record to the user such that the user can, using the details of the transformation algorithm and a link to the previous voting record, generate a link value to compare to the link value in the voting record.
15. The computer-implemented method of claim 1, wherein generating a voting record for the completed ballot further comprises: determining, by the computing system, a number of voting records received in a predefined period; determining, by the computing system, whether the number of records received in the predefined period exceeds a predefined threshold; and
in response to determining, by the computing system, that the number of records received in the predefined period exceeds a predefined threshold, aggregating multiple ballots into a single voting record.
16. The computer-implemented method of claim 1, wherein the completed ballot is encrypted.
17. The computer-implemented method of claim 16, wherein aggregating a vote in the voting record with a plurality of other votes to generate a vote total for the fund comprising: aggregate data included in two or more encrypted ballots using homomorphic encryption techniques without decrypting either of the two or more encrypted ballots.
18. A computing system, the computing system comprising: one or more processors, anon-transitory computer-readable memory; wherein the non-transitory computer-readable memory stores instructions that, when executed by the one or more processors, cause the computing system to perform operations, the operations comprising: receiving a ballot request for a set of one or more issues for a security included in a fund, the ballot request including a user identifier for a user and an issue identifier for the set of one or more issues; generating a ballot for the set of one or more issues; transmitting the ballot to a user computing device associated with the user; receiving, from the user computing device, a completed ballot; generating a voting record for the completed ballot, the voting record including a link associated with the completed ballot; providing the voting record to the user computing device, the voting record including a link value that enables the user to verify that the completed ballot has been recorded; and aggregating a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
19. The computing system of claim 18, the operations further comprising: validating the ballot request prior to generating the ballot.
20. A non-transitory computer-readable medium storing instructions that, when executed by one or more computing devices, cause the one or more computing devices to perform operations, the operations comprising: receiving a ballot request for a set of one or more issues for a security included in a fund, the ballot request including a user identifier for a user and an issue identifier for the set of one or more issues; generating a ballot for the set of one or more issues; transmitting the ballot to a user computing device associated with the user; receiving, from the user computing device, a completed ballot; generating a voting record for the completed ballot, the voting record including a link associated with the completed ballot; providing the voting record to the user computing device, the voting record including a link value that enables the user to verify that the completed ballot has been recorded; and aggregating a vote in the voting record with a plurality of other votes to generate a vote total for the fund.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202363520470P | 2023-08-18 | 2023-08-18 | |
| US63/520,470 | 2023-08-18 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2025042748A2 true WO2025042748A2 (en) | 2025-02-27 |
| WO2025042748A3 WO2025042748A3 (en) | 2025-04-24 |
Family
ID=94732564
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2024/042705 Pending WO2025042748A2 (en) | 2023-08-18 | 2024-08-16 | System and method for enabling asset ownership rights in an investment fund |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025042748A2 (en) |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6782506B1 (en) * | 1998-02-12 | 2004-08-24 | Newriver, Inc. | Obtaining consent for electronic delivery of compliance information |
| WO2001020562A2 (en) * | 1999-03-25 | 2001-03-22 | Votehere, Inc. | Multiway election method and apparatus |
| US20010034641A1 (en) * | 2000-02-10 | 2001-10-25 | D'amico Gregory A. | Participant controlled mutual fund |
| JP2004348668A (en) * | 2003-05-26 | 2004-12-09 | Nri & Ncc Co Ltd | Portfolio return factor analysis system and method |
| US11049349B2 (en) * | 2004-06-01 | 2021-06-29 | Daniel William Onischuk | Computerized voting system |
| US20070256133A1 (en) * | 2006-04-27 | 2007-11-01 | Garbow Zachary A | Blocking processes from executing based on votes |
| US8047435B2 (en) * | 2007-01-31 | 2011-11-01 | N.P. Johnson Family Limited Partnership | System and method for secured voting transactions |
| US20090112705A1 (en) * | 2007-10-24 | 2009-04-30 | Eiben Lawrence S | System and method for proxy voting by individual investors |
| US9401059B2 (en) * | 2008-01-04 | 2016-07-26 | E-Government Consulting Group, Inc. | System and method for secure voting |
| US9237155B1 (en) * | 2010-12-06 | 2016-01-12 | Amazon Technologies, Inc. | Distributed policy enforcement with optimizing policy transformations |
-
2024
- 2024-08-16 WO PCT/US2024/042705 patent/WO2025042748A2/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2025042748A3 (en) | 2025-04-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12493862B2 (en) | Systems, methods, and apparatuses for implementing smart flow contracts using distributed ledger technologies in a cloud based computing environment | |
| US11552785B2 (en) | Methods and systems for a synchronized distributed data structure for federated machine learning | |
| US11588803B2 (en) | Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment | |
| US20220084013A1 (en) | Identity management, smart contract generator, and blockchain mediating system, and related methods | |
| US10554649B1 (en) | Systems and methods for blockchain validation of user identity and authority | |
| US12283382B2 (en) | Distributed medical testing framework | |
| US20190238316A1 (en) | Systems, methods, and apparatuses for implementing intelligent consensus, smart consensus, and weighted consensus models for distributed ledger technologies in a cloud based computing environment | |
| US20190236606A1 (en) | Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment | |
| US20190166133A1 (en) | Multicomputer processing for data authentication and event execution using a blockchain approach | |
| US20200005410A1 (en) | System and Method for Facilitating Legal Review for Commercial Loan Transactions | |
| CN109844783A (en) | The database that the ledger of immutable cryptoguard is supported | |
| CN109658273B (en) | Block chain-based rapid business insurance claim settlement method, storage medium and equipment | |
| US11354669B2 (en) | Collaborative analytics for fraud detection through a shared public ledger | |
| WO2019144156A1 (en) | Method and apparatus for a consumer controlled, decentralized financial profile | |
| US20210273780A1 (en) | Encrypted blockchain voting system | |
| US12062037B1 (en) | Systems, methods, and storage media for creating and implementing a secure state machine in a networked computing environment | |
| US20210407007A1 (en) | Trading proposal arrangement, system and method | |
| US20210398143A1 (en) | Systems and methods for public-facing accreditation using financial instituion data | |
| US12166821B2 (en) | Data exchange and computer-implemented crediting protocol | |
| CN111444416A (en) | Financial business promotion method, system and device | |
| CN112702410B (en) | Evaluation system, method and related equipment based on blockchain network | |
| WO2025042748A2 (en) | System and method for enabling asset ownership rights in an investment fund | |
| CN119379287A (en) | Asset processing method, system, device and storage medium based on blockchain | |
| US12483419B2 (en) | Apparatus and method for first value device verification | |
| US20200311818A1 (en) | Mitigating malicious use of public data for trading portfolios |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24857085 Country of ref document: EP Kind code of ref document: A2 |